- A realidade em que o custo de escrever código caiu drasticamente está abalando os hábitos de engenharia como um todo
- No passado, como produzir código tinha alto custo, formou-se uma cultura de desenvolvimento eficiente centrada em design, estimativas e planejamento
- Com o surgimento dos agentes de codificação, um único desenvolvedor passou a conseguir executar várias tarefas ao mesmo tempo, como implementação, refatoração, testes e documentação
- Porém, criar “bom código” ainda exige padrões elevados de qualidade e o julgamento do desenvolvedor
- Com isso, surge o desafio de construir novos hábitos de desenvolvimento, tanto individuais quanto organizacionais
Mudança no custo de escrever código
- No passado, escrever algumas centenas de linhas de código limpo e testado levava mais de um dia
- Por causa disso, os desenvolvedores avaliavam o valor e a prioridade das funcionalidades com base no tempo e no custo limitados
- Design de projeto, estimativas de cronograma e planejamento de funcionalidades eram todos orientados pelo “uso eficiente do tempo de codificação”
- Com a introdução dos agentes de codificação, o custo de digitar código caiu abruptamente, abalando os critérios de decisão existentes
- Um único engenheiro pode executar vários agentes em paralelo para realizar trabalho de desenvolvimento simultâneo em várias frentes
- Essa mudança leva à revisão da estrutura tradicional de avaliação de valor em relação ao tempo
O “bom código” continua caro
- A produção de código novo ficou praticamente próxima de gratuita, mas criar “bom código” ainda continua custando caro
- As condições para um bom código são as seguintes
- Funcionar corretamente e cumprir seu objetivo sem bugs
- Passar por procedimentos de verificação para comprovar que o código é confiável
- Focar em resolver o problema adequado, tratando situações de erro de forma previsível
- Manter uma estrutura simples e mínima para aumentar a manutenção e a compreensão
- Testes e documentação devem permanecer atualizados
- Considerar a possibilidade de mudanças futuras, sem adicionar complexidade desnecessária
- Atender a atributos de qualidade não funcionais, como acessibilidade, segurança, escalabilidade e manutenibilidade
- Os agentes de codificação ajudam em parte desse processo, mas a responsabilidade final pela garantia de qualidade continua sendo do desenvolvedor
A necessidade de novos hábitos de desenvolvimento
- Em um ambiente de engenharia baseada em agentes (agentic engineering), os hábitos tradicionais de desenvolvimento já não são mais válidos
- Tanto indivíduos quanto organizações precisam formar novas formas de trabalho e novos critérios de julgamento
- Em toda a indústria, essas melhores práticas (best practices) ainda estão sendo estabelecidas
- A abordagem proposta é experimentar executando sessões assíncronas de agentes mesmo no momento em que se pensa “isso vai tomar tempo demais”
- No pior caso, você verifica depois de 10 minutos e conclui que foi apenas um desperdício de tokens
Lugar no guia Agentic Engineering Patterns
- Este texto faz parte de “Principles”, o primeiro capítulo do guia Agentic Engineering Patterns
- No próximo capítulo, sobre entendimento de código (Understanding code), a sequência continua com Linear walkthroughs
- Depois, na seção Testing and QA, são abordados temas como Red/green TDD e First run the tests
- Está previsto adicionar 1 ou 2 capítulos por semana, em um formato parecido com um livro, mas organizado como um “guia”
1 comentários
Opiniões do Hacker News
Não sei se a expressão “código sempre foi caro” está correta
Na prática, o que era caro não era o código em si, mas tudo ao redor dele — garantir correção, manutenção, coordenação entre equipes, suporte de longo prazo etc. eram os verdadeiros fatores de custo
Se houver excesso de testes ou etapas de aprovação, o processo acaba representando a maior parte do custo
Os LLMs reduziram bastante, no curto prazo, o custo de gerar código que funciona, mas no longo prazo podem aumentar a carga de manutenção, segurança e testes
No fim, só olhando dados de longo prazo dá para saber se houve uma mudança real
Antigamente, até escrever algumas centenas de linhas de código tinha custo alto
Coloquei 256 linhas de JavaScript na ferramenta SLOCount dos anos 2000 (versão WebAssembly) e a estimativa deu cerca de US$ 6.461 nos parâmetros da época
Claro, esse número é só por curiosidade
Hoje eu pareço mais um gerente de mim mesmo, administrando meu trabalho em vez de executá-lo diretamente
A sensação é de que minha produtividade aumentou cerca de 2,5 vezes em relação a antes
Levantamento de requisitos, design, testes, deploy e manutenção continuam sendo necessários, e a maior parte do custo ainda acontece na fase de manutenção
Como na lei de Amdahl, mesmo que o custo de codificar chegue perto de zero, o limite passa a ser o custo das outras etapas
O problema é que, por natureza humana, isso é difícil
Elementos de qualidade como correção, manutenibilidade e desempenho são custos ocultos que só se aprendem com experiência
Não concordo com a afirmação de que “código sempre foi caro”
Na verdade, código ficou caro porque tentamos escrever ‘bom código’
Se você baixar o padrão, o código gerado sai rápido e barato, mas o esforço para trazê-lo de volta ao nível de um bom código continua o mesmo
Para defender agent coding, é preciso usar outra lógica
Quando eu mesmo escrevo, entendo a razão de cada linha, mas no código gerado por IA preciso validar cada instrução
No último mês fiz a maior parte do trabalho com agentes, e continuam aparecendo bugs de casos de borda que um humano não criaria
No fim, o custo de revisão cresce e o ganho de curto prazo desaparece
Mas, graças aos agentes de codificação, esse custo cai bastante
Como eles cuidam de ajustes minuciosos, dá para produzir código de melhor qualidade mais rápido
Complexidade se acumula, então o jeito mais barato é tratá-la com cuidado já na primeira implementação
Agora o ganho de curto prazo é grande, mas no longo prazo o ruído pode aumentar 10 vezes
Os LLMs são especializados em programação tática, isto é, implementar funcionalidades rapidamente
Por isso, gerenciar a complexidade no nível do sistema fica ainda mais importante
Gerar código é tão barato quanto se diz, mas a habilidade de transformá-lo em um resultado valioso é o verdadeiro diferencial
Agentic engineering é, no fim, a técnica de conduzir insumos baratos até resultados valiosos
Agentic engineering não é simplesmente escrever software, mas criar ferramentas para resolver rapidamente um problema específico
Mas, quando a resolução do problema termina, a IA em si deixa de ser interessante
Muita gente toma a própria IA como objetivo, quando o valor real está em resolver problemas
Como dizia Alan Watts, depois que você recebeu a mensagem, deve desligar o telefone
O fato de uma ferramenta ficar barata não cria valor automaticamente
Capacidade de projetar e estruturar é o que tem valor de verdade
No fim, o essencial é a qualidade da decisão
Captação de recursos não é prova de valor
Tenho dúvidas sobre a afirmação de que “código sempre foi caro”
A própria definição de código limpo e testado já é ambígua
Se você exagera nos testes, o custo explode, e processos organizacionais de aprovação também são um grande fator de custo
LLMs reduzem o custo de curto prazo, mas podem aumentar o custo de manutenção no longo prazo
Quando eu era estagiário, trabalhei barato em uma startup, mas incidentes, corrupção de dados e dívida técnica se acumularam
Na aparência parecia barato, mas havia muito custo escondido
Com os LLMs, hoje parece possível obter código de boa qualidade de forma barata, mas ainda estou me adaptando
Hoje fazer um v1 é barato, mas as decisões complexas de um produto maduro continuam caras
O valor econômico do software está na informação contida no código
Escrever código é apenas o processo de mapear essa informação, e é a qualidade da informação que determina o valor real
Escrever código mais rápido não melhora a qualidade da informação
É como consultoria: fazer slides mais rápido não cria valor por si só
Quando a velocidade de implementação aumenta demais, o modelo mental do desenvolvedor se desalinha do código
Texto relacionado: Cognitive Debt by Simon Willison
Isso porque consegui repetir refatorações rapidamente
A IA vai entender cada vez mais contexto, mas, em troca, teremos de abrir mão de parte do julgamento humano
Quando um dia a máquina passar a compreender totalmente a intenção, o humano será empurrado para fora do loop
O cerne de toda metodologia de desenvolvimento é o fato de que os requisitos sempre mudam
Por isso, bom código é “código fácil de modificar”
Fico em dúvida se os agentes LLM de hoje produzem esse tipo de código
Até que sejam completamente confiáveis, parece que vão continuar no nível de protótipo
Se a especificação é vaga, tanto testes quanto validação de valor ficam difíceis
Mesmo com testes, há algo como 70% de confiança
É mais rápido do que codificar diretamente, e o resultado sai como código manutenível
Se você explicitar código limpo e boas práticas, o resultado pode ser perfeitamente manutenível
No fim, é Garbage in, garbage out
Como eu disse no texto que escrevi (The Final Bottleneck),
a velocidade de escrever código aumentou, mas as etapas seguintes não conseguiram acompanhar
Não é apenas uma questão de hábito; a estrutura de responsabilidade, o design das linguagens e toda a arquitetura dos sistemas precisam mudar
Se a produtividade realmente tivesse aumentado 10 vezes, as startups já teriam virado o mercado de cabeça para baixo
Só porque é possível, não quer dizer que seja necessário
Abordagens como AI evals(measure-first-optimize-last, ai-evals.io) apontam nessa direção
Explosão de funcionalidades não é algo que ninguém deseja
Cada linha de código é uma responsabilidade (liability)
Na era em que LLMs despejam código, essa responsabilidade explode
A ferramenta em si não é ruim, mas é perigoso ter uma estrutura em que programas sem responsabilidade reescrevem a base de código
Dizer que “código é barato” significa que gerar ficou barato, não que o custo de aprovar o deploy tenha diminuído
Se você elimina a etapa de julgamento, não ganha produtividade; cria um control gap
Dar uma chave mestra só porque algo é rápido é perigoso
Nenhum dos dois ficou barato
Eu também concordo quase integralmente com essa opinião
Escrever código ficou mais barato, mas o custo de review e validação continua alto
Especialmente em monorepos com milhões de linhas, o essencial é aumentar a testabilidade
Sou grato por esse tipo de discussão trazer equilíbrio em meio ao clima superaquececido do Twitter
Code churn ficou mais fácil, mas validar qualidade virou o novo desafio
As mudanças em massa criadas por LLMs produzem falhas sutis, e esse fluxo não para
Código não é barato
Existe também o custo de tokens, e a estrutura real de custos ainda é incerta
Como startups sem receita estão monopolizando a cadeia de suprimentos de GPU, faltam dados
Quanto mais LOC, maior a dívida
A distância entre pensar e executar encurtou, mas o código em si continua sendo uma responsabilidade
Agora está barato graças a subsídios, mas pode ficar ainda mais barato se caírem os custos de hardware, energia e mão de obra