← Todos os artigos

Blog DJC ·

Quando escrever código deixa de ser o principal gargalo

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.