- Pesquisas recentes indicam que, quando desenvolvedores de código aberto usam ferramentas de IA em codebases que conhecem bem, o tempo de trabalho na verdade aumenta 19%
- Os desenvolvedores acreditam que a IA os torna mais rápidos, mas na prática ficam mais lentos, mostrando uma lacuna entre percepção e realidade
- A causa principal está no modelo mental sofisticado (estrutura de compreensão) que o desenvolvedor possui e nas limitações de transferência de conhecimento entre ele e a IA
- Segundo a teoria de Peter Naur, o mais importante na programação é o "modelo mental" que existe na cabeça do desenvolvedor
- Pioneiro dinamarquês da ciência da computação e vencedor do Prêmio Turing de 2005. Contribuiu para a notação Backus-Naur Form (BNF), usada para descrever a sintaxe de linguagens de programação
- Em uma perspectiva de longo prazo, para entender profundamente um projeto, é importante construir o modelo mental escrevendo código diretamente
O fenômeno de a IA tornar desenvolvedores de código aberto mais lentos
- Segundo um estudo da Metr, usar ferramentas de IA levou a uma resolução de problemas 19% mais lenta
- Antes das tarefas, os desenvolvedores esperavam que a IA ajudasse a trabalhar 24% mais rápido e, mesmo depois, acreditavam ter sido 20% mais rápidos do que realmente foram
- O estudo foi conduzido com desenvolvedores experientes que mantêm diretamente projetos de código aberto que conhecem em profundidade
- O resultado não se generaliza necessariamente para todos os desenvolvedores, mas mostra que, nesse grupo, as ferramentas de IA tiveram efeito negativo na produtividade
- Em ambientes corporativos ou para desenvolvedores comuns que precisam se adaptar a uma nova codebase, as ferramentas de IA podem ter um papel mais positivo no aumento de produtividade
Por que a IA torna desenvolvedores experientes de código aberto mais lentos
- Segundo o artigo “Programming as Theory Building”, de Peter Naur, o verdadeiro produto da programação não é o código, mas o ‘modelo mental do desenvolvedor sobre o projeto’
- Esse modelo mental é central para entender o sistema, diagnosticar problemas e fazer melhorias de forma eficaz
- A IA baseada em LLM não consegue acessar diretamente o modelo mental do desenvolvedor e, mesmo quando parte da informação é fornecida, ocorre uma perda inerente no processo de transferência de conhecimento
- Como exemplo, ao pedir a alguém que faça um bebê dormir, mesmo explicando claramente, muitas vezes a pessoa age de forma diferente da intenção original
- A transferência de modelos mentais é extremamente complexa, e é quase impossível para a IA absorvê-la apenas por texto
- Portanto, delegar trabalho à IA em um projeto que você entende profundamente pode reduzir a produtividade
- O rico contexto e a compreensão intuitiva do desenvolvedor não podem ser facilmente substituídos pela IA
Devemos proibir ferramentas de IA no trabalho?
- Não necessariamente. Isso se aplica apenas a “quem trabalha em projetos que conhece e entende muito bem”
- Muitos desenvolvedores em empresas acabam mantendo código deixado por seniores que já saíram, ou trabalham sem entender profundamente a arquitetura completa do sistema
- Nesses ambientes, a IA pode contribuir para ganhos de produtividade no curto prazo ao entender rapidamente a codebase e gerar alterações automaticamente
- Se o foco for produzir valor de negócio no curto prazo e eficiência imediata, as ferramentas de IA podem ter um papel positivo na produtividade
Construção de modelo mental e IA
- Se você não tiver um modelo mental do projeto, um LLM pode ajudar a aumentar a produtividade
- Porém, se a essência do desenvolvimento de software estiver na ‘construção de modelos mentais’, depender demais da IA pode enfraquecer essa capacidade
- No longo prazo, se você quiser entender profundamente o projeto e transformá-lo de forma ativa, é necessário ter experiência escrevendo código diretamente
- Por outro lado, se o trabalho for apenas “fazer funcionar de qualquer jeito”, usar IA pode ser eficiente
Discussão adicional e conclusão
- No estágio atual, é difícil para ferramentas de IA aumentar a produtividade de desenvolvedores que já possuem um modelo mental suficientemente rico
- Ainda são necessários mais pesquisa e desenvolvimento para que a IA consiga realmente apoiar modelos mentais ou elevar radicalmente a produtividade de desenvolvedores experientes
- No futuro, com a evolução dos modelos, pode chegar o dia em que desenvolvedores humanos não precisem mais necessariamente ter um modelo mental, mas no estágio atual, compreensão e aprendizado diretos continuam sendo essenciais
- Em última análise, a IA pode atrapalhar em ambientes nos quais eu entendo profundamente o que estou fazendo, e pode virar uma ferramenta de produtividade em ambientes nos quais resultados rápidos são o mais importante
5 comentários
> Os desenvolvedores acreditam que a IA os tornou mais rápidos
Com a pesquisa usando IA ficando mais rápida, como também é possível elevar a qualidade, talvez até no mesmo trabalho o resultado acabe saindo com uma qualidade um pouco melhor. Será que os desenvolvedores não pensam que, para desenvolver de acordo com a qualidade esperada do resultado final, é mais rápido chegar lá com a ajuda da IA do que sozinhos?
Também fico pensando se, caso nem tivessem usado IA para começar, acabariam implementando só com o conhecimento que já dominam um pouco melhor, e seria por isso.
Não são só os desenvolvedores, mas como existem pessoas com perfis muito diversos, às vezes a pessoa acabou virando desenvolvedora e tem aversão ou medo de escrever ou olhar código; quanto mais a mentalidade for a de que basta funcionar, em vez de interpretar a partir de uma perspectiva de estrutura sistemática ou de manutenibilidade, mais forte me parece ser a dependência ou a fé cega na IA. Ou talvez não.
Medindo o "impacto da IA" na produtividade de desenvolvedores experientes de open source
Opinião no Hacker News
Acho que o post do blog abordou de forma interessante um fator específico que pode contribuir para a IA desacelerar o desenvolvimento.
Também há citações de desenvolvedores no artigo (seção C.1.5), então vale a pena conferir.
Muita gente lê o artigo, encontra um fator com o qual se identifica e acaba concluindo: “esse único problema é a razão da lentidão”.
Mas, na prática, há vários elementos envolvidos (pelo menos 5 são prováveis, e até 9 não podem ser descartados; veja a tabela de fatores na p.11).
Em vez de assumir uma única causa, faz mais sentido analisar causas múltiplas.
Se alguém aqui pretende fazer seu próprio experimento, eu adoraria que compartilhasse os resultados pelo e-mail indicado no artigo.
E, sobre o título do artigo ter sido escrito como “AI slows down open source developers. Peter Naur can teach us why”, acho que algo mais preciso seria “No início de 2025, a IA desacelera desenvolvedores experientes de open source. Peter Naur oferece mais contexto sobre um fator específico.”
Talvez seja menos chamativo, mas considero a precisão importante.
Mais uma vez, obrigado pelo ótimo texto — continuo lendo os comentários
Discussão relacionada anterior
Artigo completo
Quadrinho do xkcd sobre gestão do tempo
greedy algorithm)Joel on Software: Things you should never do, part I
Grande parte do código gerado por IA simplesmente é produzida, passa por alguns testes simples e pronto. Há cada vez mais código cujo próprio autor não entende suficientemente o contexto geral nem o motivo de ele existir
(Isso é discutido com mais detalhes na seção C.2.7 do artigo, “Uso abaixo da média de ferramentas de IA”)
Referência: um antigo problema de spam com IA
try:catch, o que dificulta rastrear a origem do problema. Eu prefiro que o problema apareça rápido e com força (fail fast) para poder corrigi-lo imediatamenteEu também tinha uma ideia parecida, mas era difícil expressá-la em palavras.
Modelo mental é um nome bem apropriado. Vou tentar usar isso com frequência.