Agentes de IA e Programação em Par: Por Que Funcionam para Alguns Desenvolvedores e Falham para Outros

Agentes de IA e Programação em Par: Por Que Funcionam para Alguns Desenvolvedores e Falham para Outros

Compartilho minha opinião com base na minha própria experiência sobre por que desenvolvedores falham ao usar Agentes de IA.

Quiz starten Präsentation herunterladen

🍝 Antes da Era da IA Generativa: Por Que Alguns Desenvolvedores Tiveram Sucesso e Outros Falharam

Muitos desenvolvedores e empresas desistiam dos projetos, reescreviam várias vezes, nunca obtinham resultados ou viviam um pesadelo mantendo software onde cada mudança causava bugs.

Por que isso acontecia? Veja estes cenários.

Porque eles ou faziam engenharia excessiva ou escreviam código espaguete.

🛠️ Antes da Era da IA Generativa: Como Desenvolvedores Criavam Projetos Manteníveis

Eles seguiam boas práticas de engenharia:

  • Classes pequenas seguindo SRP e SOLID em geral
  • Métodos pequenos seguindo Código Limpo
  • Nomes legíveis para métodos, variáveis e colunas de tabelas
  • Variáveis fortemente tipadas
  • Sem código repetido
  • Resumos e comentários que realmente dão contexto em vez de afirmar o óbvio
  • Implementações simples vindas de uma mentalidade KISS
  • Um botão de "executar testes" ao lado do método no IDE, para saber imediatamente se algo quebrou após uma mudança
  • Linguagem Ubíqua do DDD, mantendo a terminologia consistente em todas as camadas do projeto e também com as pessoas de negócio
  • Documentação concisa e clara que é realmente explicada
  • Testes E2E para a interface do usuário
  • Testes de unidade para o domínio
  • Testcontainers para repositórios
  • YAGNI
  • Uma camada de domínio bem projetada, com regras de negócio difíceis devidamente explicadas, codificadas e testadas
  • Acesso a dados separado com o padrão de repositório, o que também facilita os testes

O verdadeiro desafio no software é mudá-lo e mantê-lo a longo prazo. Contribuímos para sistemas que podem viver 20 anos ou mais.

🤖 Agora o novo espaguete é o vibe coding

Vamos relacionar essa experiência pré-agentes com a era dos agentes de IA, ferramentas como Codex e Claude.

Fabio Akita disse algo que gostei muito:

"A IA revelará quem você é."

E o que isso significa?

Se sua mentalidade sempre foi:

"Apenas faça funcionar e siga em frente."

Sem se importar com a estrutura do código, legibilidade, design do banco de dados, experiência do usuário, testes ou mantenibilidade, a IA amplificará isso 10x.

Mas se você realmente acredita em boas práticas, a IA se torna um multiplicador na direção certa.

Você:

  • ✅ Escreva arquivos .md com seus padrões
  • ✅ Aprenda engenharia de prompt
  • ✅ Forneça contexto e aponte os agentes para a documentação
  • ✅ Use o modo de planejamento
  • ✅ Analise o código gerado em vez de aceitá-lo cegamente
  • ✅ Continue iterando prompts para refatorar o código
  • ✅ Mantenha a revisão de pull requests, o fluxo Git e a cultura de testes
  • ✅ Garanta que a IA siga sua estrutura de código, incluindo terminologia e design de sistema
  • ✅ Traga profissionais de QA para testar

Então a qualidade permanece a mesma, mas apenas muito mais rápida.

Construí um projeto com agentes de IA e percebi algo: tudo em que acredito que é certo foi aplicado nele.

💸 Por que as empresas estão contratando desenvolvedores juniores novamente e falhando com IA?

Porque sistemas com código espaguete carecem de limites claros, terminologia correta, cobertura de testes e boa documentação.

💡 E se o código é confuso para nós, é confuso para o agente também.
Ele continuará tentando e falhando até que você fique sem tokens.

Ano passado fiz uma entrevista e o tech lead me perguntou:

"Qual é sua capacidade de trabalhar em um projeto muito complexo onde uma única classe pode ter 6 mil linhas ou mais?"

Então ele quis saber se eu tinha estratégias para economizar tokens, e me disse que os agentes de IA eram fracos porque não funcionavam bem.

O primeiro pensamento que me veio à mente foi:

"6 mil linhas em uma única classe? Então esses caras não seguem o princípio mais básico da engenharia de software, Responsabilidade Única. Provavelmente não seguem nada. É por isso que têm problema com tokens. O agente fica repetindo para corrigir erros, mas não há lógica clara no código deles para começar."

⚙️ Como estou obtendo bons resultados com agentes de IA enquanto mantenho minhas boas práticas

Escrevo alguns arquivos .md, por exemplo:

  • 📄 CLAUDE.md ou copilot-instructions.md. Define as instruções gerais de engenharia e diz ao agente quais outros arquivos .md ele deve ler.
  • 💬 Communication.md. Instruções para comunicação, como não tornar as mensagens muito complicadas e usar bullets e linguagem concisa.
  • 🏗️ Architecture.md. Define a estrutura de alto nível, por exemplo, a estratégia de testes com Cypress.
  • 🧩 SystemDesign.md. Define padrões de design e princípios como SRP, Código Limpo e DRY.
  • 🚫 Limits.md. Define restrições, como nunca excluir recursos do Azure ou fazer push para master.
  • 📌 Stories/FeatureX.md. Um arquivo por funcionalidade, onde especifico todos os requisitos e contexto, para evitar colar um texto enorme no prompt.

Então meu fluxo de trabalho é:

  1. Uso plan mode com contexto, o esforço e o modelo corretos para garantir que o código gerado siga as diretrizes.
  2. Faço tudo em um ambiente local, em um branch para essa funcionalidade ou mudança, e ele será testado localmente bastante antes do PR.
  3. Após aceitar as mudanças, executo os testes, testo manualmente, reviso e abro o pull request.

Dicas pessoais extras:

  • 🎯 Use o melhor modelo para a tarefa. Por exemplo, Opus para trabalhos complexos e Sonnet para trabalhos mais simples.
  • 🧠 Aprenda sua ferramenta de escolha. A minha é Claude, então uso /effort para tarefas críticas, /clear entre tarefas, /compact em sessões longas e plan mode para discutir antes de codificar.
  • 🔁 Tenha uma ferramenta reserva. Também mantenho o Copilot.
  • 📝 Para planejamento de alto nível, use ChatGPT Pro. É muito melhor para escrever arquivos .md para desenvolvimento orientado a especificação.
  • 🧠 Use combinações de alguns aspectos do Desenvolvimento Orientado a Especificação pelo menos com alguns arquivos .md nessa estratégia, com um processo de revisão forte.

🏁 Consideração final

Concordo com Fabio Akita. A IA nos amplificará dependendo de quem somos.

As empresas que estão ganhando com IA geralmente são as que já tinham maturidade, mantendo boas práticas e processos de QA.

O que fazemos é organizar instruções para máquinas de forma inteligente. Não importa se a linguagem é assembly ou inglês.

Kommentare (0)

Kommentar hinterlassen

Schreiben Sie den ersten Kommentar!