10

A IA acelerou a produção de código, mas está destruindo a memória do programador

Com a chegada das IAs no mundo da programação, muita coisa mudou — e nem tudo pra melhor.

A gente está vendo muito mais bugs subindo em produção. O GitHub caindo com uma frequência que antes era rara. iFood com problema quase toda semana. Erros de estilização pipocando em todo lugar. A frequência de incidentes aumentou de um jeito que não dá pra ignorar.

Por outro lado, a velocidade de produção de código explodiu. O problema é que junto com ela veio um volume absurdo de código que ninguém consegue revisar direito. É difícil entender a lógica que a IA programou — especialmente em fluxos mais complexos — e mesmo que você tente usar outra IA pra fazer o code review, ela alucina, aponta falso positivo, confunde decisão de produto com erro de implementação. Não é solução.

Mas a maior perda, pelo menos pra mim, é outra: a memória do programador.

Antigamente eu tinha a codebase inteira na cabeça. Sabia onde cada coisa estava, lembrava de cada decisão que tomei, de cada linha que escrevi. Quando aparecia um bug, eu sabia exatamente onde olhar.

Hoje em dia eu mal consigo lembrar o conteúdo de uma tabela que eu mesmo criei há um mês.

A IA virou uma extensão da nossa capacidade de produzir — mas parece que no processo a gente perdeu o ownership cognitivo do próprio código. A gente produz mais, entende menos, e lembra de quase nada.

O que vocês estão fazendo pra lidar com isso?

Carregando publicação patrocinada...
6

Esse sentimento eu tive um pouco antes da IA, quando eu passei de Desenvolvedor Senior para Tech Lead.

No dia em que você para de escrever todo o código e passa a distribuir a responsabilidade entre outros devs, aquela memória enciclopédica da codebase evapora.

Você deixa de saber onde cada coisa mora, deixa de lembrar cada linha, e quando cai um bug você não sabe mais exatamente onde olhar. É luto mesmo, e é desconfortável.

O que você não pode perder é outra coisa, e essa lista é bem específica:

  • as regras de negócio;
  • as decisões que já foram tomadas e o porquê delas;
  • as decisões que ainda estão em aberto;
  • os trade-offs que foram aceitos conscientemente;
  • os limites do sistema (o que ele não faz de propósito).

Isso é o ownership que importa. Detalhe de implementação é recuperável em cinco minutos lendo o código. Contexto de decisão, se ninguém registrou, morre.

E é exatamente aqui que a resposta pro seu problema com IA já existe: são as mesmas técnicas de gestão de projeto que a gente usa com time humano. Só que agora aplicadas a um "dev" que produz dez vezes mais rápido e tem amnésia a cada sessão.

Na prática, o que funciona:

  1. ADR (Architecture Decision Record). Um arquivo curto por decisão relevante: contexto, opções consideradas, decisão, consequência. Isso substitui a sua memória e, de quebra, vira contexto que você joga direto pro agente. Quando você não lembra por que a tabela X tem aquela coluna estranha, a resposta não está no seu cérebro nem no código, está no ADR.

  2. Especificação antes de código. Com dev júnior você não manda "faz o checkout". Você escreve o critério de aceite. Com IA é igual, e por um motivo mais duro: se você não sabe descrever o comportamento esperado, você também não vai saber revisar o que voltou. A spec é o que transforma review de "ler código" em "conferir contrato".

  3. Lote pequeno e revisável. O volume de código irrevisável que você citou não é culpa da IA, é falta de limite de WIP. Se o PR não cabe na cabeça, ele não sobe. Vale igual pra humano e pra agente. Eu prefiro cinco PRs de 200 linhas que eu entendo a um de 2000 que eu aprovo no chute.

  4. Convenção forte no lugar de vigilância. Framework opinativo, camadas definidas, lint, tipos, teste. Quanto mais o "certo" for estruturalmente óbvio, menos você precisa reler cada linha pra confiar nela. Review vira exceção, não rotina.

  5. Documentação viva no repo. CLAUDE.md, README de módulo, glossário de domínio. Duas funções ao mesmo tempo: onboarding de gente nova e contexto do agente. Documentação parou de ser custo puro no momento em que virou input executável.

  6. Observabilidade como memória externa. Você não vai lembrar onde olhar quando der problema. Log estruturado, trace e alerta bom te dizem onde olhar. Isso resolve a parte do seu desconforto que é operacional, não cognitiva.

Sobre o "usar IA pra revisar IA": concordo que sozinho não resolve, mas o diagnóstico merece um ajuste. Ela confunde decisão de produto com erro de implementação porque ela não tem acesso à decisão de produto. Ninguém escreveu em lugar nenhum. Quando o repositório carrega as regras e os ADRs, a taxa de falso positivo despenca bastante. O problema não é o revisor, é o briefing, exatamente como acontece com um dev novo no time.

Resumindo o que eu faria no seu lugar: pare de tentar recuperar a memória, ela não volta e não deveria voltar. Troque memória por sistema. Sua função deixou de ser lembrar do código e passou a ser garantir que o código continue obedecendo a um conjunto de decisões que estão escritas, versionadas e verificáveis.

Você não virou um programador pior. Você virou tech lead de um time que trabalha rápido demais pra caber na sua cabeça. O ferramental pra isso existe há décadas, só nunca tinha sido tão obrigatório.

2

Perfeita a colocação, meu ponto de vista é exatamente esse.

Tenho visto devs com ciúmes do código feito por IA, e até lutando contra sob o argumento "erra muito, alucina, vai subir bug, etc", o que não faz nenhum sentido. Se IA errou, de duas uma: Ou você está usando um modelo antigo e pouco capacitado ou não foi especificado corretamente o que ela deveria fazer, incluindo aí etapas de testes e validações.

3

Jhonny eu relaxei um pouco em relação a isso. Como a produtividade aumentou, hoje me preocupo muito mais em garantir que o Claude siga a estrutura da aplicação, que vez por outra, não interessa o detalhamento da spec, ele vai fugir e assumir que fugiu.

Na minha lógica de tentar deixar meu desenvolvimento o mais deterministico possível, na minha validação eu também incluo "linters" para que ele se mantenha dentro da estrtutura e não invente muito.

Mas se você quer ter mais controle e saber de tudo, terá que colocar na sua rotina, code review, mas ai o gargalo do seu processo passará a ser você.

Apesar de não concordar com tudo que ele fala e/ou escreve, Uncle Bob postou sobre isso no X: https://x.com/unclebobmartin/status/2044114698451476492?s=20

1

O maior problema pra mim continua sendo a memória: lembrar das tabelas, regras de negócio, etc... Ainda não consigo ficar muito bem em relaçao a isso. A minha sensação é que antes por escrever o código na mao, a gente passava muito mais tempo vendo, lendo, escrevendo, convivendo com as coisas ali no coddigo (tabelas, regras de negócio, etc...) e isso ficava tudo mais fixo na memória... Hoje em dia quando recebo alguma pergunta de algo de 2 meses atras ou coisa do tipo, fica dificil responder com certeza sem ter que ir dar uma pesquisada

2
2

Faz uns 4 anos que eu sou Dev, e lembro que no começo antes da IA eu tinha até mais vontade de programar, no meu ponto de vista a IA não está tirarando só nossa memória, mas tambem nossa vontade de pensar e agir.

Eu desativei todos os recursos de IA do Vs Code, uso a IA mais para me ajudar com arquitetura e organização do código, sinto que evolui como Dev fazendo isso, é bem melhor que só colocar um prompt falando para a IA fazer o projeto de ponta a ponta ou falar para ele me dar um código pronto onde eu só copio e colo, isso me tirar a vontade de programar e me faz sentir que não sou dono, não me sinto em posição de chamar o que a IA gerou de MEU projeto ou MEU código, mesmo que eu entenda o que está acontecendo com base nas regras de negócio.

Recentemente deu um problema em um projeto meu onde 80% dele foi feito com Vibe Code, eu lembro que até paguei o Github Copilot pois eu tinha pouco tempo para desenvolver ele, e eu simplismente não entendia o código, tive que pedir para outra IA me explicar como funciona o meu próprio projeto, e no final pedi para outra IA resolver o problema...

Eu lembro que antes quando eu desenvolvia um projeto (sem IA), eu tinha na minha cabeça cada linha de código, tinha correndo nas minhas veias cada input e output, agora eu simplesmente não sei o que está acontecendo, da vontade de refazer tudo, percebi que é melhor demorar 30 min para fazer um código que eu entenda e consiga fazer manutenção no fututo do que demorar 2 min para para um código que vai me causar dias de dor de cabeça.

Por outro lado, desde que comecei a usar a IA como fonte de apoio para aprender coisas novas, desde outros idiomas e até mesmo circuitos elétricos, eu sinto que posso aprender qualquer coisa, é claro que não é um milagre da IA, mas ela é muito boa para dar o caminha das pedras, então me aprofundo vendo videos e etc...

Tenho uma relação de amor e ódio com a IA 🥲

1

Meus 2 cents,

No meu caso, documentacao e SPECs.

Ja trabalhei em fabrica de software com ISO 9000 (anos 90) e equipes de desenvolvimento bem grandes - e tinha documentacao para tudo.

Era chato ? Para c*ralho, mas quando entrava um DEV novo no time, era razoavelmente simples indicar para ele onde ele tinha de procurar a informacao que precisava.

Entidades, atributos, determinacao de UX/UI: tudo estava escrito e descrito - nao era tao facil dizer "eu nao sabia" para certo tipo de c*gada.

Ja o DEV solo por padrao nao tem muito o habito de escrever documentacao, e isto eh muito ruim: tai um ponto que o uso de IA/LLMs/Agentes esta obrigando o pessoal a (re)descobrir, e confesso que vejo isso como um efeito colateral positivo.

Como um bom harness passa por documentacao, SPECs e testes bem definidos, eh um empurrao a mais para construir este "ownership cognitivo".

Nao compro a ideia que IA/LLM/Agente estao "deixando os DEVs mais burros": os DEVs ja eram mediocres antes dos LLMs.

Agora como a regua subiu, muito DEV meia boca tem de sair correndo atras para se atualizar e mostrar que nao eh apenas um digitador de codigo e que realmente entende o que vinha fazendo.

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS

Tem curiosidade sobre IA ? Da uma olhada no meu LIVRO: IA PARA ENGENHEIROS

2

Concordo que nao está deixando mais burro. Também tenho o costume de documentar tudo e uso ajuda da IA. Tenho como padrao no fluxo de trabalho sempre gastar uns 2 dias so fazendo doc de spec, planejando tudo certinho, etc... Porém mesmo assim sinto que hoje em dia eu esqueço com muito mais facilidade e frequência o que foi construido

1
1

EXATO, aí esta talvez uns dos maiores problemas atuais de desenvolvimento com I.A. o débito cognitivo... Antes havia débito técnico e nós sabiamos exatamente onde ele estava, mas seguiamos por conta de deadlines. Agora piorou, sequer sabemos oq esta de fato de baixo do capô, muito menos o grau de debito técnico real no código...