Elton José logo
Elton José
SPDD

SPDD: A Camada Que Faltava Entre SDD e Harness Engineering

SPDD: A Camada Que Faltava Entre SDD e Harness Engineering
0 visualizações
11 minutos de leitura
#SPDD

SPDD: A Camada Que Faltava Entre SDD e Harness Engineering

Nos últimos dois posts, falei sobre SDD e Harness Engineering como camadas complementares do stack de desenvolvimento agêntico. SDD define o que construir. Harness define como o agente executa de forma confiável. Mas havia um gap óbvio entre os dois — e a Thoughtworks acabou de nomear e documentar esse gap.

O nome é SPDD: Structured Prompt-Driven Development. O artigo foi publicado no site do Martin Fowler esta semana, e é a continuação natural do Harness Engineering, escrita pela equipe interna de desenvolvimento da própria Thoughtworks.

A premissa central é incômoda, mas difícil de rebater: a maioria dos times que usa agentes IA hoje tem um problema de conhecimento efêmero. Cada dev constrói o contexto do agente do zero, na conversa, na hora. O que funciona para um não funciona para outro. O que o agente "aprendeu" sobre o projeto numa sessão desaparece na próxima. O conhecimento de domínio que você levou meses para construir não está em nenhum lugar que o agente consiga acessar de forma estruturada.

SPDD resolve exatamente isso — e faz parte de uma trilogia que, honestamente, precisava ser completada.


O Problema Que SPDD Nomeia

Para entender por que SPDD importa, pense em como o seu time usa agentes de IA hoje.

Provavelmente cada dev tem uma forma diferente de "chamar" o agente para uma tarefa. Uns são prolixos, dão muito contexto. Outros vão direto ao ponto. Uns lembram de mencionar as convenções do projeto, outros não. E quando a mesma tarefa aparece de novo — implementar autenticação, adicionar um novo endpoint, refatorar um módulo — o contexto precisa ser reconstruído do zero, na próxima sessão, da cabeça de quem está na cadeira.

É um modelo que escala mal. Não porque o agente seja ruim. Mas porque o input do agente depende da pessoa e do momento, não de um artefato de time.

A solução de SPDD é simples de enunciar e trabalhosa de implementar bem: tratar prompts como código. Versionar, revisar, reutilizar, melhorar ao longo do tempo. Transformar o contexto que hoje vive na cabeça de cada dev em um artefato compartilhado que o time inteiro pode usar, auditar e evoluir.


O REASONS Canvas: A Estrutura Do Prompt

O coração do SPDD é uma estrutura de prompt chamada REASONS Canvas. Cada letra corresponde a uma dimensão que o prompt precisa cobrir:

R — Requirements (Requisitos) O "por quê" do negócio. Não a tarefa técnica, mas o objetivo que a justifica. O que esta feature resolve para o usuário? Qual é o critério de sucesso do ponto de vista de produto?

E — Entities (Entidades) O modelo de domínio relevante para a tarefa. Quais são as entidades envolvidas? Como elas se relacionam? Qual é o vocabulário do domínio que o agente precisa conhecer para não inventar nomes e conceitos que não existem no sistema?

A — Approach (Abordagem) A estratégia de solução e os trade-offs conscientes. Por que essa abordagem e não outra? Quais alternativas foram consideradas e descartadas? Isso evita que o agente "re-descubra" uma abordagem que o time já avaliou e rejeitou.

S — Structure (Estrutura) A arquitetura do sistema onde a implementação vai viver. Dependências, padrões de organização de código, interfaces existentes. O agente precisa saber onde encaixar o código novo sem quebrar a coerência do que já existe.

O — Operations (Operações) As tarefas de implementação em sequência. Um breakdown concreto e ordenado do que precisa ser feito — não o código, mas o roteiro que o agente vai seguir.

N — Norms (Normas) Os padrões de código do time. Convenções de nomenclatura, padrões de erro, estilo de testes, regras de lint. Tudo que está implícito na cultura do time mas que o agente não consegue inferir sem ser informado.

S — Safeguards (Salvaguardas) Restrições explícitas. O que o agente não deve fazer. Onde não deve tocar. Quais decisões precisam de aprovação humana antes de serem implementadas.

Diagrama do REASONS Canvas: sete dimensões em formato de canvas — Requirements, Entities, Approach, Structure, Operations, Norms, Safeguards — cada uma com exemplos de conteúdo para uma feature de autenticação

Um REASONS Canvas bem preenchido para uma feature média tem entre 400 e 800 palavras. Parece muito — até você comparar com quanto tempo o time perde quando o agente implementa a coisa errada porque o contexto estava incompleto.


O Workflow Na Prática

O fluxo de trabalho do SPDD tem quatro momentos principais:

1. Análise (user story → contexto estruturado) O PO escreve a user story. O dev roda /spdd-analysis, que extrai os conceitos de domínio envolvidos, identifica riscos e ambiguidades, e produz uma lista de perguntas para clarificação antes de começar a implementar. Essa etapa sozinha já elimina uma quantidade significativa de retrabalho — você descobre o que está ambíguo antes de o agente implementar.

2. Geração do Canvas (contexto → REASONS Canvas) Com as ambiguidades resolvidas, /spdd-prompt gera o REASONS Canvas completo: modelo de domínio, abordagem de solução, breakdown de tarefas, constraints. Esse artefato fica no repositório, junto com o código.

3. Execução (REASONS Canvas → código) O agente recebe o REASONS Canvas como contexto estruturado e implementa. O output é mais previsível porque o input é mais completo e padronizado — não depende do estilo pessoal de quem está na cadeira.

4. Sincronização (código → canvas atualizado) Aqui está o insight mais importante do SPDD: quando o código é refatorado ou modificado, /spdd-sync atualiza o canvas para refletir as mudanças. O prompt não fica desatualizado. Esse loop fechado é o que transforma o canvas em um documento de design vivo, não em documentação que envelhece.


Onde SPDD Se Encaixa No Stack

Nos últimos dois posts, a conversa girou em torno de duas camadas: SDD na camada de intenção e Harness na camada de execução. SPDD é precisamente a camada de comunicação entre as duas.

┌─────────────────────────────────────────┐
│  SDD — Camada de Intenção               │
│  (o que construir: spec, critérios,     │
│   constraints de negócio)               │
└─────────────────────┬───────────────────┘

┌─────────────────────▼───────────────────┐
│  SPDD — Camada de Comunicação           │
│  (como passar intenção ao agente:       │
│   REASONS Canvas versionado,            │
│   revisável, reutilizável)              │
└─────────────────────┬───────────────────┘

┌─────────────────────▼───────────────────┐
│  Harness — Camada de Execução           │
│  (como o agente executa com segurança:  │
│   guides, sensors, feedback loops)      │
└─────────────────────────────────────────┘

SDD sem SPDD é como ter um contrato bem escrito mas sem nenhum briefing para quem vai executar — a intenção existe, mas chega fragmentada e dependente de interpretação.

SPDD sem SDD é como ter um briefing muito bem estruturado para uma tarefa que não foi bem especificada — formato impecável, direção errada.

Harness sem SPDD é como ter uma infraestrutura de execução excelente alimentada por input ad hoc — o ambiente está preparado, mas o contexto que entra no agente varia com quem está na cadeira.

Os três juntos formam um sistema coerente: a spec define o que, o canvas traduz isso em contexto estruturado para o agente, e o harness garante que a execução é confiável e autocorretiva.

Diagrama de três camadas sobrepostas: SDD no topo (camada de intenção), SPDD no meio (camada de comunicação com o REASONS Canvas), e Harness na base (camada de execução com guides e sensors). Setas mostrando o fluxo de informação entre as camadas.

O Insight Sobre Conhecimento de Time

O ponto que mais me chamou atenção no artigo do Fowler não é técnico — é organizacional.

SPDD muda fundamentalmente onde o conhecimento de domínio do time fica armazenado. Hoje, esse conhecimento está distribuído em: cabeças das pessoas (evapora quando alguém sai), commits (difícil de navegar), PRs (contexto fragmentado), Confluence/Notion (desatualizado por padrão), e sessões de chat com o agente (completamente efêmeras).

Com SPDD, o canvas de cada feature se torna um terceiro tipo de artefato de código — junto com o código de produção e os testes. Quando alguém entra no time, não precisa reverse-engineer a intenção a partir de commits e código. Lê o canvas e entende: por que essa feature existe, quais trade-offs foram feitos, quais eram as constraints, qual era a abordagem escolhida.

É documentação que o processo de desenvolvimento força a manter atualizada — não documentação que depende de disciplina para ser escrita e atualizada.

A Thoughtworks descreve isso como transformar AI assistance from personal efficiency into organizational capability. Um agente que você usa bem individualmente é produtividade pessoal. Um time que compartilha artefatos bem escritos, revisados e versionados é uma capacidade organizacional que escala, persiste e melhora com o tempo.


Três Habilidades Que SPDD Exige

O artigo identifica três habilidades que devs precisam desenvolver para trabalhar bem com SPDD:

Alignment (Alinhamento): a capacidade de extrair intenção do PO de forma estruturada antes de começar a implementar. Não é uma habilidade técnica — é uma habilidade de facilitação. Fazer as perguntas certas, trazer à tona as ambiguidades antes que elas virem retrabalho.

Abstraction-first (Abstração Primeiro): pensar em domínio, entidades e relações antes de pensar em código. Isso vai contra o instinto de muitos devs que querem ir direto para a implementação — mas é a habilidade que torna o canvas útil em vez de superficial.

Iterative Review (Revisão Iterativa): tratar o canvas como um artefato vivo que precisa de code review, assim como o código. Revisar artefatos de colegas, identificar quando estão incompletos ou ambíguos, e manter o /spdd-sync disciplinado para que canvas e código não divirjam.

Nenhuma dessas habilidades é nova para devs sêniors — são variações de habilidades que tech leads já exercitam. O que SPDD faz é torná-las parte do processo de trabalhar com agentes, não uma atividade separada e opcional.


Por Que Agora

O timing do artigo não é coincidência. A Thoughtworks está documentando o que os times internos deles foram descobrindo ao longo de meses usando agentes em produção — o mesmo processo que gerou o Harness Engineering e, agora, o SPDD.

O contexto importa: agentes de IA estão ficando mais capazes mais rápido do que os processos de time estão se adaptando. A maioria dos times que usa Claude, Cursor, Copilot ou Kiro hoje ainda opera no modelo ad hoc — cada dev, cada sessão, cada conversa. Esse modelo funciona para tarefas individuais e autocontidas. Começa a falhar em trabalho de time, em projetos maiores, em features com histórico.

SPDD é a resposta para esse scaling problem. Não é mais uma metodologia para substituir as anteriores — é a peça que completa o stack que SDD e Harness Engineering começaram a montar.


O Que Fazer Com Isso

Se você quiser experimentar SPDD sem virar o workflow do time de cabeça para baixo:

Comece com uma feature nova. Antes de começar a implementação, escreva um REASONS Canvas — mesmo que informal, mesmo que apenas R, E e O. Observe se o agente se comporta diferente. Observe se você consegue reusar o canvas numa feature similar duas semanas depois.

Coloque o canvas no repositório. Mesmo num diretório .agent/prompts/ ou similar. A disciplina de versionar força a manter atualizado.

Revise artefatos, não só código. Na próxima PR, inclua o canvas junto. Peça para alguém revisar. Perguntas sobre o canvas vão trazer à tona ambiguidades de design que o code review sozinho não captura.

Feche o loop. Quando refatorar, atualize o canvas. Essa disciplina é o que transforma o canvas em ativo de longo prazo, não em documentação que envelhece.


Conclusão

A trilogia está completa — pelo menos por enquanto.

SDD define o contrato do que construir. SPDD traduz esse contrato em contexto estruturado, versionável e reutilizável para o agente. Harness Engineering garante que o agente execute dentro desse contexto de forma confiável e autocorretiva.

Três camadas, três problemas distintos, três soluções que se reforçam. O stack de desenvolvimento agêntico maduro está começando a tomar forma — e o que a Thoughtworks publicou no site do Fowler esta semana é mais uma peça que encaixa.

A pergunta que fica: o seu time está tratando prompts como ativos ou como conversas descartáveis?


Fontes

Newsletter

Receba os melhores artigos toda semana

Sem spam. Só conteúdo de qualidade sobre IA & Dev.

Foto de Elton José

Escrito por

eltonjose

Engenheiro de software e estrategista de produtos digitais, focado em IA pragmática e em transformar experiências de trabalho remoto em aprendizados aplicáveis. Compartilho frameworks e decisões reais que uso em consultorias e projetos.

  • Principais temasSPDD, Structured Prompt-Driven Development
  • Formato do conteúdoGuia prático + insights de carreira