Cover image for Por que software factories com IA falham sem contexto e governança

Lucas Fogaça

A promessa das “software factories” com agentes de IA é sedutora: colocar tarefas em uma fila, deixar os agentes implementarem, automatizar revisão e testes — e remover pessoas do caminho.
O ensaio Why Software Factories Fail, do repositório Advanced Context Engineering for Coding Agents, propõe um contraponto importante: aumentar o número de loops e o volume de código gerado não resolve, por si só, o problema de manter um sistema saudável ao longo do tempo.

Velocidade não é a mesma coisa que qualidade sustentável

Agentes reduzem o tempo de implementação de dias para horas. Mas revisão, validação de produto e entendimento do impacto arquitetural continuam exigindo tempo.
O risco aparece quando a organização tenta eliminar essa etapa e confia apenas em testes, linters, agentes revisores e monitoramento. Esses mecanismos são necessários, mas não capturam tudo.
Um teste pode dizer em segundos que um fluxo passou. Já o custo de uma decisão arquitetural ruim pode surgir semanas ou meses depois: acoplamento excessivo, duplicação, fronteiras confusas e mudanças simples que passam a quebrar partes distantes do sistema.

O problema central: não há um oráculo rápido para manutenibilidade

Modelos podem ser treinados e avaliados em tarefas com respostas verificáveis. Em código, isso favorece critérios como “compila”, “os testes passam” ou “a issue foi fechada”.
Mas um sistema pode satisfazer todos esses critérios e ainda estar se tornando mais difícil de evoluir. A manutenibilidade não é um sinal imediato nem uma métrica simples; ela se revela quando novas mudanças chegam e o time precisa entender, modificar e operar o software.
Por isso, automatizar a geração sem preservar julgamento técnico pode transferir o custo para o futuro — e elevar bastante o preço de incidentes e reescritas.

O que fazer em vez de apagar as luzes

A alternativa não é abandonar agentes de código. É usá-los dentro de um processo que aumente a qualidade da decisão antes de aumentar a velocidade de implementação.

  • Alinhar produto e arquitetura antes de abrir uma tarefa grande.- Definir limites claros de responsabilidade entre componentes.- Planejar em fatias verticais pequenas e verificáveis.- Usar agentes para pesquisa, implementação, testes e revisão, sem terceirizar o entendimento do sistema.- Concentrar revisão humana nos pontos que exigem contexto de negócio, arquitetura e consequências de longo prazo.Planejamento não é burocracia quando evita retrabalho. Uma boa conversa de produto e tecnologia antes do código pode economizar mais tempo do que dezenas de PRs gerados e revisados depois. ## O papel do engenheiro muda — não desaparece Com agentes, o gargalo deixa de ser digitar código. Passa a ser escolher o problema certo, fornecer o contexto adequado, restringir o escopo, avaliar os resultados e manter coerência entre as decisões. A métrica relevante não deveria ser apenas “quantas tarefas entraram na fila?”. Deveria ser: o sistema está ficando mais fácil ou mais difícil de mudar? Essa pergunta é especialmente importante em bases de código existentes, onde velocidade sem governança pode transformar ganhos de curto prazo em dívida técnica difícil de pagar. Fonte: https://github.com/humanlayer/advanced-context-engineering-for-coding-agents/blob/main/wsff.md