Software 3.0: cómo la IA cambió la forma de desarrollar software
Desde 2020 estamos viviendo un cambio de paradigma consolidado desde los años 80 con el desarrollo impulsado por IA. Hemos pasado por diferentes “eras” en las que la forma en que entregamos software ha cambiado drásticamente.
Hoy entenderemos un poco cómo el desarrollo de software, la escritura de código y la velocidad de entrega culminaron en lo que hoy Andrej Karpathy llama Software 3.0.
¿Quién es Andrej Karpathy?
Andrej es investigador, educador y doctor con enfoque en redes neuronales convolucionales y recurrentes, además de sus aplicaciones en visión por computador y procesamiento del lenguaje. Fue cofundador de OpenAI en 2015, se unió a Tesla en 2017 para liderar IA y regresó a OpenAI en 2023.
Andrej Karpathy se ha consolidado como una de las mentes más relevantes de esta transformación. En 2024 fundó Eureka Labs, una escuela que busca ser “AI Native”.
Evolución del desarrollo
En una reciente entrevista en el evento AI Ascent, el mes pasado, Andrej comentó cómo ve esta evolución a lo largo del tiempo y cómo transformó su forma de desarrollar, así como la de todos.
En el contexto del desarrollo de software, comenta que hemos pasado por diferentes eras. El Software 1.0, ampliamente utilizado, fue como todos aprendimos a desarrollar.
En ese escenario, el desarrollador es un actor activo tanto en la arquitectura como en la implementación. Hace todo de forma manual y burocrática; es el cerebro de la operación y también quien la implementa.
La era 2.0 destacó alrededor de 2020, cuando los agentes de IA empezaron a tomar forma. Aún muy temprano, el desarrollo era híbrido.
Los LLMs eran impresionantes, pero no tenían la robustez suficiente para tener la autonomía necesaria. Los desarrolladores arquitectaban y, junto con los agentes, desarrollaban el software.
Con el avance de los modelos y las funcionalidades cada vez más integradas en el espacio de desarrollo, los agentes comenzaron a ganar terreno. Copilot, Cursor, Claude: una nueva era se ha vuelto cada vez más evidente.
Los modelos han entregado resultados cada vez más impresionantes. Cada vez más tienen la capacidad de tomar decisiones, evaluar escenarios, identificar casos límite y entregar funcionalidades completas. El agente pasa a tener un papel central en el desarrollo, guiado por humanos.
Software 3.0
De autocompletado a chat, de chat a agente planificador, de agente a una pila completa de agentes. El desarrollo cambió nuevamente. Los “editores de código”, si es que aún podemos llamarlos así, se han convertido en orquestadores de agentes.
El primer gran actor que implementó esta lógica fue Cursor, con Cursor 3.0. VS Code tiene el modo Agent y, más recientemente, Antigravity 2.0 también ha generado revuelo por esta elección.
En Software 3.0, el desarrollador diseña y planifica, pero el agente desarrolla. El contacto con el código es mucho más distante. A menudo, con el uso de la CLI, ni siquiera vemos el resultado, confiando en criterios de aceptación y pruebas.
Por eso, Karpathy dice que la ventana de contexto de los agentes es un punto fundamental en la construcción de software, porque es ahí donde reside todo el desarrollo.
Hoy, el desarrollador, a través de un prompt bien estructurado, refina requisitos, describe implementaciones y “programa” mediante el prompt. Por lo tanto, el trabajo actual es aprender a optimizar cada vez más la ventana de contexto para que contenga la mayor cantidad posible de información relevante gastando la menor cantidad posible de tokens.
También comenta cómo las aplicaciones anteriores a esta era quedan rápidamente obsoletas por la forma en que fueron construidas.
Con los agentes, la construcción de nuevos sistemas debería ser más concisa, simple y directa, con menos boilerplate. Pero aun así, Andrej comenta sobre la inconsistencia de los modelos.
Del vibe coding al agentic engineering
Aunque los modelos de vanguardia pueden entregar código excelente y refactorizar grandes módulos de sistemas, todavía a veces fallan en cosas triviales.
Por esta inconsistencia, Karpathy habla del cambio de vibe coding a agentic engineering. El desarrollador pasa a preocuparse más por la arquitectura para entregar resultados consistentes.
La definición de las specs y el diseño del sistema juegan un papel fundamental para mantener al modelo en la dirección correcta, ya que los agentes pueden ejecutar de forma excelente pero no poseen intención propia.
Y cierra con una frase excelente que resume nuestro momento:
“You can outsource your thinking, but you cannot outsource your understanding.”



