Software 3.0: como a IA mudou a forma de desenvolver software
Desde 2020, estamos vivendo uma quebra de paradigma consolidada desde os anos 80 com o desenvolvimento com IA. Passamos por diferentes “eras”, em que a forma como entregamos software foi se alterando drasticamente.
Hoje iremos entender um pouco como o desenvolvimento de software, a escrita de código e a velocidade de entrega culminaram no que, hoje, Andrej Karpathy chama de Software 3.0.
Quem é Andrej Karpathy?
Andrej é pesquisador, educador e doutor com foco em redes neurais convolucionais e recorrentes, além de suas aplicações em visão computacional e processamento de linguagem. Foi sócio-fundador da OpenAI em 2015, entrou na Tesla em 2017 para liderar IA e voltou em 2023 para a OpenAI.
Andrej Karpathy se consolidou como uma das mentes mais relevantes dessa transformação. Em 2024, fundou a Eureka Labs, escola que busca ser “AI Native”.
Evolução do desenvolvimento
Em recente entrevista no evento AI Ascent, no mês passado, Andrej comentou um pouco sobre como vê essa evolução ao longo do tempo e como isso transformou o seu desenvolvimento, assim como o desenvolvimento de todos.
No contexto de desenvolvimento de software, ele comenta que passamos por diferentes eras. O Software 1.0, amplamente utilizado, foi como todos aprendemos a desenvolver.
Nesse cenário, o desenvolvedor é um ator ativo tanto na arquitetura quanto no desenvolvimento. Ele faz tudo de maneira manual, burocrática; é o cérebro da operação e também quem a implementa.
A era 2.0 tomou destaque por volta de 2020, quando os agentes de IA começaram a tomar forma. Ainda muito cedo, o desenvolvimento se dava de forma híbrida.
Os LLMs eram impressionantes, mas não tinham robustez suficiente para ter a autonomia necessária. Os desenvolvedores arquitetavam e, em par com os agentes, desenvolviam o software.
Com o avanço de modelos e funcionalidades cada vez mais integradas ao espaço de desenvolvimento, os agentes foram conseguindo cada vez mais espaço. Copilot, Cursor, Claude: uma nova era tem ficado cada vez mais evidente.
Os modelos cada vez mais têm entregado resultados impressionantes. Cada vez mais têm capacidade de tomar decisões, avaliar cenário, identificar edge cases e entregar feature completa. O agente passa a ter papel central no desenvolvimento, sendo guiado por humanos.
Software 3.0
De autocomplete para chat, de chat para agente planejador, de agente para uma stack inteira de agentes. O desenvolvimento mudou novamente. Os “editores de código”, se é que ainda podemos chamar assim, hoje têm se voltado para uma estrutura orquestradora de agentes.
O primeiro grande player que implementou essa lógica foi o Cursor, com o Cursor 3.0. O VS Code tem o modo Agent e, agora, recentemente, o Antigravity 2.0 também tem gerado rebuliço por essa escolha.
No Software 3.0, o desenvolvedor arquiteta, planeja, mas o agente desenvolve. O contato com código está muito mais distante. Muitas vezes, com o uso de CLI, nem vemos mais o resultado, confiando em critérios de aceite e testes.
Por conta disso, Karpathy diz que a janela de contexto dos agentes é um ponto fundamental na construção de software, pois é lá que todo o desenvolvimento de software se encontra.
Hoje, o desenvolvedor, através de um prompt bem estruturado, refina requisitos, descreve implementações e “programa” através do prompt. Logo, o trabalho atual é saber como conseguir otimizar cada vez mais a janela de contexto para que ela tenha a maior quantidade possível de informações relevantes, gastando a menor quantidade possível de tokens.
Ele comenta também como aplicações antes dessa era ficam rapidamente obsoletas pela forma com que foram construídas.
Com os agentes, a construção de novos sistemas deve ser mais sucinta, simples e direta, com menos boilerplate. Mas, mesmo assim, Andrej comenta sobre a inconsistência dos modelos.
Do vibe coding ao agentic engineering
Mesmo que modelos de ponta consigam entregar código de excelência, refatorando grandes módulos de sistemas, ainda falham às vezes em algo relacionado ao “bobo”.
Por conta dessa inconsistência, Karpathy comenta sobre a mudança de vibe coding para agentic engineering. O desenvolvedor passa a se preocupar mais com arquitetura para entregar resultados consistentes.
A definição das specs e o design do sistema possuem papel fundamental para manter o modelo nos eixos, visto que os agentes podem ter uma execução excelente, mas não possuem intenção própria.
E ele fecha com uma frase excelente que condensa bem nosso momento:
“Você pode terceirizar seu pensamento, mas não pode terceirizar seu entendimento.”

