Spec-Driven Development: O Método que Faz IA Codar CERTO de Primeira (SDD)

Spec-Driven Development: O Método que Faz IA Codar CERTO de Primeira (SDD)

Introdução ao Spec Driven Development (SDD)

O que é SDD e sua importância

  • O vídeo aborda o conceito de Spec Driven Development (SDD), enfatizando que não é uma novidade, mas um método essencial para projetos com Vibe Coding.
  • O termo surgiu devido a problemas enfrentados por desenvolvedores que utilizam Vibe Code, especialmente aqueles sem formação técnica, resultando em dificuldades na escalabilidade e no consumo excessivo de tokens.
  • A falta de estrutura no desenvolvimento pode levar a um projeto "sem cabeça", onde boas ideias não são bem executadas. O SDD atua como uma baliza para guiar o desenvolvimento.

Benefícios do SDD

  • Com o uso do SDD, os projetos se tornam mais robustos e seguros, permitindo escalar e suportar um maior número de usuários.
  • A popularidade do SDD aumentou à medida que muitos projetos de Vibe Code falharam devido à ausência desse planejamento estruturado.

Planejamento Estrutural no Desenvolvimento

Etapas do Processo

  • Mateus Batista introduz um infográfico explicativo sobre as etapas necessárias para criar um aplicativo, utilizando como exemplo um app de QR code.
  • Ele destaca a importância da escolha correta da stack tecnológica e das features planejadas para evitar resultados indesejados durante o desenvolvimento.

Problemas com Desenvolvimento Sem Planejamento

  • Projetos pessoais podem funcionar sem planejamento rigoroso, mas quando se busca comercializar ou crescer, a falta de estrutura leva a dificuldades significativas.
  • O SDD propõe uma base sólida de planejamento inicial com requisitos claros e design definido antes da programação efetiva.

Documentação Necessária no SDD

Tipos de Documentos

  • No processo tradicional sugerido pelo SDD, três documentos principais são necessários:
  • Requirements: descreve as funcionalidades do aplicativo.
  • Design Doc: detalha como será construído o sistema (tecnologias utilizadas).
  • Task List: lista as tarefas concretas a serem executadas durante o desenvolvimento.

Importância da Definição Técnica

  • Para quem não tem experiência em programação, definir a stack técnica pode ser desafiador. Contudo, ferramentas de IA podem auxiliar nesse processo.
  • Embora seja possível obter ajuda das IAs para decisões técnicas básicas, ainda é importante ter algum conhecimento prévio para garantir melhores resultados.

Estratégias para Projetos com Múltiplas Funcionalidades

Importância do SDD em Projetos Complexos

  • A necessidade de um SDD (Software Design Document) é destacada quando o projeto possui mais de três prompts e funcionalidades como autenticação, pagamento e diferentes tipos de usuários.
  • Projetos que envolvem múltiplas features, como autenticação e banco de dados, são propensos a crescer além do uso pessoal, tornando essencial a aplicação da estratégia SDD.

Formação VB Code

  • O apresentador menciona seu treinamento em VB Code, onde ensina estratégias como SDD e cloud code para criar projetos reais seguindo boas práticas.
  • Um link para o curso é disponibilizado nos comentários, com acesso vitalício e uma grade curricular que pode ser baixada.

Exemplo Prático: Gerador de QR Code

  • O projeto prático apresentado é um gerador de QR code que permite geração sem login e gerenciamento com login.
  • A stack escolhida inclui Next.js, TypeScript e Prisma, visando facilitar o setup do banco de dados.

Estruturação do Projeto

  • O apresentador sugere criar três arquivos iniciais baseados no mapa discutido anteriormente. Ele recomenda cocriação com IA para definir as funcionalidades do app.
  • O primeiro documento deve conter uma visão geral do projeto, detalhando suas funcionalidades principais e limitações.

Detalhamento das Funcionalidades

  • É importante listar tanto as funcionalidades que o aplicativo terá quanto aquelas que não serão implementadas para evitar confusões futuras.
  • Requisitos não funcionais também devem ser considerados; eles ajudam a definir expectativas sobre o desempenho do aplicativo.

Planejamento Técnico

  • Um documento de design técnico deve descrever a stack utilizada e as funções específicas em cada página. Quanto mais detalhado for esse documento, melhor será sua utilidade.
  • Decisões técnicas sobre os tipos de dados a serem salvos no banco devem ser registradas; isso inclui informações básicas como nome e email dos usuários.

Ordem das Tarefas no Desenvolvimento

  • Um documento final deve listar as tarefas na ordem lógica da execução do projeto, começando pelo setup inicial até a implementação das funcionalidades principais.
  • A autenticação é considerada uma parte complexa mas crucial; portanto, deve ser priorizada nas etapas iniciais do desenvolvimento.

Conclusão sobre SDD

  • Os documentos criados fazem parte de um SDD personalizado pelo desenvolvedor. Uma abordagem alternativa será apresentada posteriormente para agilizar essa fase.

Início do Agente de Programação com Cloud Code

Preparação e Criação do Cloud MD

  • O apresentador menciona que possui toda a documentação do SDD e inicia o agente de programação, optando pelo Cloud Code.
  • Ele explica que arquivos MD são essenciais para o sistema entender o projeto, criando um cloud MD que condensa três documentos: Requirements MD, Design MD e Testes MD.
  • O prompt é estruturado para garantir que não sejam adicionadas funcionalidades fora dos requisitos e que as tarefas sejam executadas uma por vez.

Importância do Cloud MD

  • O cloud MD é crucial para manter os conhecimentos adquiridos durante a sessão, evitando perda de informações após o fechamento da sessão.
  • Com o cloud MD criado, ele pode seguir as tarefas planejadas no Testes MD, facilitando a execução sequencial das atividades.

Execução das Tarefas Planejadas

Estruturação das Tarefas

  • O apresentador utiliza prompts claros para executar as tarefas em ordem definida nos documentos, começando pela configuração do projeto.
  • A metodologia permite uma execução mais previsível e sequencial das tarefas, reduzindo a necessidade de criar novos prompts complexos.

Eficiência na Execução

  • A filosofia do Spect Driven Development (SDD) enfatiza um planejamento robusto para facilitar etapas subsequentes mais rápidas e eficientes.
  • Ele observa que a autenticação foi realizada em apenas 2 minutos, destacando como um bom planejamento acelera o processo.

Testes e Validação da Aplicação

Realização dos Testes

  • Após completar as etapas iniciais com sucesso, ele inicia os testes da aplicação gerada em tempo real.
  • Os testes incluem a geração de QR codes e autenticação de usuários, ambos realizados sem problemas.

Conclusão das Tarefas Finais

  • O apresentador menciona um guia gratuito sobre escrita de prompts disponível na descrição do vídeo para ajudar outros programadores.
  • Ele finaliza comentando sobre a conclusão das tarefas quatro (salvar QR code na conta do usuário logado) e cinco (criação da dashboard), ressaltando a funcionalidade agora disponível.

Criação e Gerenciamento de QR Codes

Funcionalidades do Sistema

  • O sistema permite a criação automática de QR codes, que são salvos diretamente na dashboard.
  • Os usuários podem visualizar todos os QR codes gerados e têm a opção de deletá-los conforme necessário.
  • A dashboard exibe informações relevantes sobre os QR codes, mas sugere-se adicionar URLs para maior funcionalidade.

Introdução ao Framework GSD

  • O apresentador menciona o framework GSD (Get Software Development), que facilita a criação de arquivos através de uma dinâmica de perguntas.
  • Este framework gera automaticamente toda a estrutura necessária para o desenvolvimento, permitindo que os programadores se concentrem na programação em si.

Execução do Framework

  • O funcionamento do GSD é explicado como um processo em fases, onde cada etapa contribui para o resultado final desejado.
  • Recomenda-se a leitura do repositório do GSD, que possui versões 1 e 2, com explicações sobre as melhorias implementadas na nova versão.

Importância do Spect Driven Development

  • O Spect Driven Development é destacado como essencial para criar projetos robustos e escaláveis, evitando práticas inadequadas como "vibe coding".
  • O apresentador incentiva os espectadores a dominarem essa técnica e compartilharem suas experiências após aplicá-la em seus projetos.
Video description

A maioria das pessoas abre o Claude Code e manda "faz um app pra mim". E o agente entrega algo. Às vezes bom, às vezes lixo. Você não sabe o que vai sair. Spec-Driven Development é o contrário: você planeja antes, documenta o que quer, e só depois manda o agente implementar. O resultado é que o agente erra muito menos e quando erra você sabe exatamente onde corrigir. E o melhor: funciona com qualquer ferramenta, não só Claude Code. 🔴 Formação Vibe Coding (Antigravity, Claude Code e +): https://app.horadecodar.com.br/lp/formacao-vibe-coding?utm_source=yt_sdd 🟪 Hospedagem que eu indico: https://hostinger.com.br/matheusbattisti (use o cupom HORADECODAR para ter +10% de desconto) 📘 Guia Engenharia de Prompt: https://app.horadecodar.com.br/ebookpages/guia-engenharia-de-prompt O método SDD é simples: antes de escrever código, você escreve 3 documentos. O primeiro é o Requirements que define O QUE você quer. Lista de funcionalidades, regras de negócio, o que o app faz e principalmente o que NÃO faz. Essa seção negativa é tão importante quanto a positiva porque previne o agente de adicionar features que você não pediu. É o contrato do projeto. O segundo documento é o Design Doc que define COMO você vai construir. Stack, estrutura de pastas, schema do banco, rotas, componentes, decisões técnicas. Quando o agente lê esse documento ele não precisa escolher a stack, não inventa o schema, não decide o layout. Está tudo definido. E se daqui 3 meses você voltar no projeto, lê o Design Doc e sabe exatamente como tudo funciona sem precisar ler código. O terceiro é o Task List que define EM QUE ORDEM você vai construir. Cada tarefa é um prompt pro agente com escopo claro e limite explícito. Sequencial, sem ambiguidade. Se a tarefa 3 der errado você sabe que é na tarefa 3. Não precisa revisar o projeto inteiro. Cada tarefa termina com "PARA AQUI" pra impedir o agente de avançar pro próximo passo sem você verificar. No vídeo mostro a escrita completa dos 3 documentos e depois abro o Claude Code e mando executar task por task. O agente lê os 3 docs antes de escrever uma linha de código. A diferença é visível: ele não inventa features que você não pediu porque o Requirements impediu, não muda a stack porque o Design Doc definiu, não faz tudo de uma vez porque o Task List quebrou em etapas, e não toma decisões inconsistentes porque tudo está documentado. A diferença entre mandar "faz um app" e usar SDD é a mesma entre pedir pra alguém construir uma casa descrevendo por cima e entregar a planta completa. O resultado com planta é previsível. Sem planta é loteria. Spec-Driven Development transforma vibe coding em engenharia de software com IA. SDD não é burocracia. É economia de tempo. Você gasta 15 minutos escrevendo docs e economiza horas de retrabalho. Funciona com Claude Code, Codex, Antigravity, Cursor e qualquer agente de IA que leia markdown. O método é universal. A regra prática é simples: se o projeto tem mais de 3 prompts, faz SDD. Se é um script de uma função ou correção de bug pontual, não precisa. Entre no nosso servidor de Discord e me siga nas redes: 🟣 Discord Hora de Codar: https://discord.gg/Veq4mvsWwk 🔴 Instagram: https://www.instagram.com/horadecodar/ 🔷 Telegram: https://t.me/horadecodar TIMESTAMPS 00:00 Vibe coding com Spec-Driven Development (SDD) 02:05 Entendendo como aplicar Spec-Driven Development ao seu projeto 06:37 Criando projeto com SDD (Spec-Driven Development) 12:00 Iniciando CLAUDE.md seguindo o Spec-Driven Development 14:09 Desenvolvimento do projeto SDD com Claude Code 19:40 GSD: Framework de Spec-Driven Development 20:40 Considerações sobre o Spec-Driven Development (SDD)