Durante muito tempo, boa parte do custo do desenvolvimento de software esteve na implementação. Transformar uma regra de negócio em código exigia horas — às vezes dias — de trabalho. Com agentes de IA cada vez mais capazes, essa equação começa a mudar.
A IA já consegue implementar funcionalidades, criar testes, refatorar código e executar tarefas relativamente longas com bastante autonomia. Isso não significa que engenharia de software ficou mais simples.
Na verdade, acho que aconteceu algo diferente: o gargalo começou a mudar de lugar.
De implementação para intenção
Se produzir código ficou mais barato, passa a importar ainda mais responder perguntas como:
- O que exatamente precisa ser construído?
- Quais são as responsabilidades de cada módulo?
- Quais decisões arquiteturais precisam ser respeitadas?
- Como um agente sabe quando terminou uma tarefa?
- Como verificamos que o resultado está correto?
- Qual contexto o agente realmente precisa para executar aquilo?
Um agente extremamente rápido, trabalhando com uma especificação ruim, simplesmente consegue produzir a coisa errada mais rápido. Por isso tenho me interessado cada vez mais por uma abordagem de desenvolvimento orientada por especificações, contexto e validação.
Em vez de simplesmente pedir:
“Implemente essa funcionalidade.”
podemos definir milestones, criar specs menores, registrar decisões arquiteturais, fornecer skills especializadas e estabelecer critérios objetivos de validação.
A IA continua escrevendo grande parte do código. Mas passa a trabalhar dentro de um sistema de engenharia.
O desenvolvedor começa a construir “o que constrói”
Essa talvez seja a mudança de mentalidade que mais me chamou atenção. Nosso trabalho não precisa estar apenas no software final. Podemos construir também a infraestrutura que permite aos agentes construírem esse software de maneira consistente:
Specs descrevem o que deve ser entregue.
Skills ensinam como determinadas tarefas devem ser executadas.
Rules e guardrails estabelecem limites que não deveriam ser violados.
ADRs preservam decisões arquiteturais importantes.
Testes e verificações fornecem evidências de que o resultado realmente atende ao esperado.
MCPs e outras ferramentas fornecem aos agentes acesso controlado aos sistemas e informações necessários.
Isso começa a transformar o repositório em algo maior do que uma coleção de código-fonte. Ele passa a carregar também parte do conhecimento necessário para continuar construindo o próprio sistema.
Talvez o diferencial não seja programar mais rápido
Tenho usado IA diariamente no desenvolvimento e minha percepção está mudando. No começo, é natural medir o ganho pela quantidade de código que conseguimos produzir. Hoje acho essa uma medida pequena. O ganho mais interessante aparece quando conseguimos transformar conhecimento, decisões e padrões de engenharia em estruturas reutilizáveis que diferentes agentes conseguem seguir.
Nesse cenário, o papel do desenvolvedor não desaparece. Ele sobe um nível de abstração. Menos energia é gasta dizendo exatamente como escrever cada linha. Mais energia passa a ser investida em arquitetura, contexto, especificação, validação e nas ferramentas que permitem que agentes trabalhem dentro dessas decisões.
A IA reduz drasticamente o custo da implementação. Mas isso torna uma boa engenharia ainda mais valiosa.