Menu
Tecnologia

O que é Spec-Driven Development (SDD)?

Spec-Driven Development é uma abordagem de desenvolvimento onde a especificação detalhada do comportamento esperado vem antes da escrita do código — e serve como fonte de verdade para implementação, testes e validação.

🎓 Resumo para Iniciantes

Em vez de sair programando e depois ver o que acontece, você escreve primeiro um documento detalhado dizendo exatamente o que o sistema deve fazer em cada situação. Só depois de todo mundo concordar com o documento é que o código começa.

O que é?

Spec-Driven Development (SDD) é uma abordagem onde o desenvolvimento começa pela criação de uma especificação completa e precisa do comportamento esperado do sistema — antes de qualquer linha de código ser escrita.

A spec não é um documento de requisitos vago. É uma descrição executável, testável e verificável do que o sistema deve fazer: inputs, outputs, estados, regras de negócio, casos de borda e comportamentos esperados em cada cenário.

Como funciona na prática

  1. Escrever a spec: Definir em detalhe o comportamento do sistema, idealmente em formato que possa ser validado (Gherkin, OpenAPI, JSON Schema, markdown estruturado)
  2. Revisar e alinhar: Produto, engenharia e QA concordam com a spec antes de qualquer implementação
  3. Implementar contra a spec: O código é escrito para satisfazer a especificação, não para explorar
  4. Validar: Testes verificam aderência à spec — qualquer desvio é um bug, não uma interpretação

SDD e desenvolvimento com IA

Com o uso crescente de LLMs para geração de código, o SDD ganhou nova relevância. Modelos como Claude, GPT e Gemini produzem código muito mais preciso quando recebem uma spec clara do que quando recebem uma instrução vaga.

O fluxo moderno é:

Spec detalhada → LLM gera implementação → Testes validam contra a spec

Nesse contexto, escrever boas specs se tornou uma das competências mais valiosas de um engenheiro sênior ou arquiteto — a habilidade de “especificar” passou a valer tanto quanto a habilidade de “implementar”.

Formatos de spec comuns

FormatoUso
OpenAPI / SwaggerEspecificação de APIs REST
JSON SchemaEstrutura e validação de payloads
Gherkin (BDD)Comportamento em linguagem natural executável
Markdown estruturadoSpecs funcionais para uso com LLMs
PRD (Product Requirements Doc)Requisitos de produto em nível funcional

SDD vs. TDD

TDD (Test-Driven Development) começa pelos testes — você escreve o teste antes do código. SDD começa pela especificação — a spec define o contrato, os testes são uma consequência dela.

Na prática, os dois se complementam: a spec define o “o quê”, o TDD garante que o código implementa o “o quê” corretamente.

Aplicação no e-commerce

  • Especificar regras de promoção antes de implementar no engine de pricing
  • Definir contratos de API entre sistemas (ERP, WMS, plataforma) antes do desenvolvimento
  • Documentar fluxos de checkout com todas as variações (parcelamento, endereço, frete) antes de codificar
  • Usar specs como input para geração de código com IA — reduzindo retrabalho e ambiguidade
📚

Biblioteca do Arquiteto

Archibald Tech
Archie (O Bibliotecário)
CURADOR

"Eu li todos eles. A maioria é lixo. Estes aqui são os que sobraram na minha prateleira depois de 30 anos codando."