DEV Community

Cover image for Agentes escrevem código. Engenharia decide se ele sobrevive.
Lucas Fogaça
Lucas Fogaça

Posted on Originally published at lucasfogaca.dev.br

Agentes escrevem código. Engenharia decide se ele sobrevive.

Agentes escrevem código. Engenharia decide se ele sobrevive.

Ferramentas de IA já atravessaram a pergunta mais simples: conseguem produzir software que roda? Conseguem. O problema começa logo depois: esse software cabe no sistema, explica seus próprios erros e continua mudando sem virar uma sala cheia de fios expostos?

No texto que inspira esta reflexão, Joseph Heck separa a demonstração de capacidade do trabalho de engenharia. Ele reconhece o ganho dos harnesses e modelos para construir e testar código, mas insiste que os pontos de junção — APIs, camadas, contratos e integração com o que já existe — continuam exigindo julgamento.[1]

Código funcionando não é a definição de pronto

Um agente pode gerar uma feature, passar nos testes que recebeu e ainda entregar uma mudança difícil de depurar. Isso acontece quando o pedido descreve o comportamento imediato, mas não explicita as decisões que mantêm o sistema habitável:

  • quais invariantes não podem ser quebradas;
  • onde a responsabilidade começa e termina;
  • que erro precisa aparecer para quem opera o serviço;
  • que teste protege uma decisão de negócio, e não só uma linha de código;
  • o que pode variar e o que precisa permanecer estável.

Essas perguntas não são burocracia de desenvolvimento. São o desenho da manutenção futura. Sem elas, a velocidade de gerar arquivos vira velocidade de transferir dívida técnica para a próxima pessoa.

O novo gargalo é escolher bem

A IA reduziu o custo de tentar uma implementação. Isso aumenta, em vez de diminuir, o valor de escolher a implementação certa.

Quando produzir código leva minutos, fica barato aceitar alternativas demais. Um time pode gerar três integrações, dois modelos de dados e uma camada de abstração antes de decidir qual problema estava resolvendo. O ganho real vem de encurtar esse ciclo: formular a hipótese, fixar limites, validar o resultado e descartar o que não serve.

É por isso que arquitetura continua sendo uma atividade concreta. Não é desenhar caixas antes de programar; é definir os contratos que permitem substituir uma parte sem quebrar as outras. É manter a carga cognitiva do sistema em um nível que uma pessoa consiga inspecionar durante um incidente.

Use agentes onde existe feedback confiável

O melhor cenário para agentes não é “faça o sistema inteiro”. É uma sequência curta e verificável:

  1. descreva o comportamento e as restrições;
  2. peça uma mudança pequena;
  3. rode testes, lint, análise estática e checks de segurança;
  4. entregue ao agente o resultado objetivo dessas ferramentas;
  5. revise o desenho e a mudança, não só o diff bonito.

Heck destaca justamente o valor de dados concisos no momento certo e de validações determinísticas com feedback em linguagem natural para que o agente consiga se corrigir.[1] Essa é uma orientação útil: se o único retorno é “parece bom”, o processo depende de sorte. Se há contratos, testes de integração, logs consultáveis e critérios de aceite claros, a ferramenta consegue iterar em cima de sinais reais.

As fronteiras merecem mais atenção

O custo de um erro raramente está no método que o agente acabou de escrever. Ele aparece nas fronteiras: na migração que não admite rollback, na API que expõe uma suposição interna, no job que não é idempotente, no tratamento de falha que apaga contexto, na permissão concedida para que uma automação leia ou publique mais do que deveria.

Isso também muda a revisão de código. Em vez de perguntar apenas “a implementação está correta?”, vale perguntar:

  • este contrato continua compreensível para quem não participou da mudança?
  • como o sistema falha e como alguém descobre a causa?
  • o que acontece quando a dependência externa responde duas vezes, demora ou não responde?
  • qual limite impede que a automação amplie seu próprio alcance?

São perguntas de engenharia de software antes de serem perguntas sobre IA.

A ferramenta aumenta a responsabilidade pelo resultado

A melhor consequência dos agentes pode ser devolver tempo para o trabalho que costuma ficar sem dono: ler o sistema, esclarecer uma interface, escrever uma migração reversível, melhorar uma mensagem de erro e remover uma abstração que só existe porque alguém a criou cedo demais.

Não precisamos escolher entre usar IA e respeitar fundamentos. Quanto mais fácil fica gerar código, mais importantes ficam os critérios que o tornam operável, legível e modificável. O diferencial não será quem pede mais arquivos ao modelo. Será quem constrói o ciclo de feedback e toma as decisões que o modelo não pode assumir por conta própria.

Sources

[1] https://rhonabwy.com/2026/08/15/software-engineering-fundamentals-matter-more-than-ever — Software Engineering fundamentals matter more than ever — Joseph Heck

Top comments (0)