The trouble with vibe coding: Why AI-driven software needs discipline | Equal Experts
Conteudo
TLDR;
Vibe coding é o uso informal de IA para gerar código sem disciplina, adequado para protótipos pessoais mas arriscado em software comercial que exige legibilidade, testabilidade e manutenção por equipes. Isso gera problemas em produção porque modelos são não-determinísticos, introduzem padrões inconsistentes, testes frágeis e criam um "code wall" que dificulta depuração e continuidade do trabalho. A solução é "agentic engineering": disciplina com requisitos e prompts detalhados, dividir em pequenas tarefas, aplicar regras de estilo para IA, usar Git, revisões humanas e gerar testes e refatorações controladas antes de ir à produção.
Resumo
O artigo alerta contra o "vibe coding" — atitude relaxada de deixar agentes de IA gerarem código sem disciplina — e defende "agentic engineering", uma abordagem sistemática para construir software comercial robusto. O autor, que já criou software comercial com agentes, aponta riscos: perda de entendimento do código ('code wall'), não determinismo que gera padrões inconsistentes, e uma "blindspot" em testes, porque agentes geram mais do que verificam. Para mitigar, recomenda disciplina: instruções detalhadas, decomposição de tarefas em pequenos pedaços, criação de regras de estilo reutilizáveis para a IA, uso de Git e revisão humana em branches, além de "pairing" humano+IA. O fluxo prático inclui gerar código, verificar manualmente, alimentar logs ao agente, pedir geração de testes focados em comportamento, e refatorar com prompts específicos — um ciclo que o autor chama de "Gen Test Refactor". Ferramentas como Cursor, Claude Sonnet e modelos de raciocínio ajudam, mas não substituem supervisão. Provas de conceito saem rápido com IA, mas é preciso transformar protótipos em código de produção com rigor. Em suma: aproveite a velocidade dos agentes, mas imponha práticas de engenharia para manter qualidade, manutenibilidade e confiança, e documente decisões e limitações para garantir transparência no ciclo de vida do software.