14 pontos por davespark 2025-10-27 | 1 comentários | Compartilhar no WhatsApp

Este post argumenta que o desenvolvimento guiado por especificações (desenvolvimento baseado em documentos de requisitos) é promissor para tarefas de programação com agentes de IA, mas falha ao ser ampliado em escala no contexto de produtos globais por causa da ambiguidade das especificações em linguagem natural. Para resolver isso, o autor propõe um sistema hierárquico e evolutivo de "especificações vivas (living specifications)" que integra código e IA conversacional, formando um loop de feedback para decisões de produto, reduzindo inconsistências e viabilizando um desenvolvimento assistido por IA eficaz em grande escala.

Principais motivos pelos quais o desenvolvimento guiado por especificações falha em grande escala

O desenvolvimento guiado por especificações tradicional enfrenta problemas em especificações de produtos globais pelos seguintes motivos:

  • Ambiguidade das especificações em linguagem natural: especificações em grande escala são escritas em linguagem natural, o que as torna imprecisas e ambíguas. A IA pode gerar código de forma consistente a partir da especificação, mas ainda assim divergir da intenção do desenvolvedor. Por exemplo, se alguém escrever a especificação de um site inteiro e um agente de IA o construir em dois dias, o resultado pode estar de acordo com a especificação, mas desalinhado com a intenção real. Se, para resolver isso, forem adicionadas infinitas seções detalhadas para eliminar ambiguidades, o documento se torna excessivamente prolixo, perde as vantagens de escrever especificações e acaba virando uma linguagem formalizada que pouco difere de código.

  • Falta de contexto compartilhado e compreensão do mundo: embora a IA tenha amplo conhecimento com base em dados públicos, ela não entende práticas específicas da empresa, convenções da base de código e a "forma de trabalhar" interna. Já os humanos acumulam isso por tentativa e erro, revisões de PR, reuniões e conversas informais. Um único documento de contexto não consegue capturar tudo isso.

  • Ineficiência no tratamento de esclarecimentos: humanos resolvem apenas ambiguidades relevantes com eficiência graças ao contexto compartilhado (por exemplo, não perguntam sobre pontos já óbvios, como a escolha de biblioteca), enquanto a IA, por não captar as sutilezas do contexto, faz perguntas desnecessárias ou ainda está em estágio inicial na capacidade de pedir esclarecimentos. Isso faz com que a IA se comporte como um "estagiário ambicioso demais", exigindo orientação constante.

Por causa desses problemas, o desenvolvimento guiado por especificações em escala global é irrealista sem mecanismos adicionais e ainda não alcança a fluidez da colaboração humana.

Exemplos concretos
  • Cenário extremo de desenvolvimento guiado por especificações: o desenvolvedor escreve a especificação de um site inteiro e a IA gera o produto completo em dois dias, mas o resultado difere da intenção por causa das ambiguidades.
  • Processo de aprendizado humano: desenvolvedores aprendem as normas da empresa por meio de mudanças iniciais no código, revisões de PR, reuniões e conversas de corredor, enquanto a IA não consegue acumular esse conhecimento tácito.
  • Base de código envelhecida: em fluxos de trabalho tradicionais, como os desenvolvedores leem e alteram código sem especificações, o sistema acaba virando uma "colcha de retalhos (patchwork quilts)" inconsistente, e decisões de produto perdidas acabam sendo "pisoteadas (trammeling over)".

O texto menciona um post anterior (sobre roaming RAG) para destacar que a IA é boa em navegar estruturas hierárquicas de links. Não há estudo de caso formal; os exemplos são hipotéticos e explicativos.

Solução proposta

O post propõe uma solução conectada, com foco em tratamento de ambiguidade, construção de contexto e integração com o código:

Ativação de esclarecimentos por meio de clarificação conversacional
  • Implementar interações de ida e volta entre IA e desenvolvedor (por exemplo, uma experiência de chat) para identificar e esclarecer ambiguidades da especificação. Em tarefas pequenas, a IA pode gerar várias versões de implementação a partir da especificação para expor ambiguidades, que depois são comparadas e discutidas com o desenvolvedor.
Construção da visão de mundo do agente por meio de especificações hierárquicas
  • Usar uma especificação global com estrutura hierárquica para entender normas da empresa e da base de código. Em vez de um único documento gigante, a especificação principal aponta para documentos de subespecificação:
    • Estritamente vinculados à estrutura do código, como especificações por arquivo (ou versões agregadas por diretório).
    • Em estilo wiki de formato livre (mas com cuidado para não gerar complexidade excessiva).
  • Aproveitar a capacidade da IA de navegar por links (como citado no post anterior).
O papel do código como especificação última
  • Tratar o código existente como uma especificação clara de nível folha para pressupostos de baixo nível. Em vez de buscar regeneração completa a partir de uma especificação mestra, a proposta é orientar mudanças com base na base de código atual. Isso reconhece que a linguagem natural não pode garantir o mesmo resultado sempre e evita exigir um nível de precisão impossível.
Especificações vivas: uso e evolução
  • Transformar as especificações em "documentos vivos" que evoluem junto com a base de código:
    • A IA navega pela especificação global para alinhar a implementação, preservando decisões de produto melhor do que fluxos de trabalho humanos.
    • Desenvolvedores extraem, em conversa com a IA, apenas as informações relevantes da especificação (sem precisar ler tudo); inconsistências são sinalizadas durante o escopo.
    • Alterações no código disparam atualizações da especificação: a mudança é comparada com a especificação existente e editada, e o PR passa a incluir também alterações na especificação.
  • Benefícios: facilita para engenheiros entender o impacto das mudanças, aumenta a participação de gerentes de produto (que podem editar especificações mais legíveis) e permite que executivos consultem a evolução do produto. O problema clássico de documentação desatualizada é automatizado pela IA.
Conclusão e recomendação

O futuro do desenvolvimento guiado por especificações não está em aperfeiçoar especificações em linguagem natural, mas em sistemas que lidem com a ambiguidade com base em conversa, contexto hierárquico e código. O verdadeiro avanço está em especificações vivas mantidas por IA, que criam um loop de feedback para preservar decisões de produto, manter contexto e eliminar a lacuna entre especificação e implementação. Recomendação: adotar especificações hierárquicas e evolutivas integradas ao código e à IA conversacional para viabilizar fluxos de trabalho escaláveis com IA, capazes de superar o desenvolvimento humano tradicional.

1 comentários

 
raykim 2025-10-28

Parece muito um post jogado ali depois de rodar no GPT.