Estoy preparando mi matcha matutino mientras me siento frente al portátil. La IA ha estado trabajando toda la noche, ejecutándose en un bucle continuo de Ralph codificando sin parar a través de una larga lista de tareas.
Las funcionalidades se han decidido automáticamente, infiriendo a partir de una IA lo que los usuarios realmente necesitan.
Los bugs se evalúan automáticamente en función de las incidencias de los usuarios, al menos de aquellos que se negaron a dejar que grabáramos su pantalla.
Cada vez que un usuario pide una nueva funcionalidad para la aplicación, no hay razón para decir no.
Hay 42 pull requests. Una noche de código exitosa, los stakeholders van a estar encantados con nuestros avances en desarrollo.
Cada pull request viene con un título descriptivo y una descripción técnica tan larga que ya nadie las lee. Hemos decidido añadir una sección para resumir las descripciones. Usando IA.
Mientras empiezo a leer el código, hay demasiadas líneas para revisar a mano.
Abro una nueva pestaña de terminal, intentando encajarla junto a las otras 10 sesiones abiertas para este proyecto, y escribo:
ai-agent --dangerously-skip-permissions
I have 42 pending Pull requests to review.
Go one by one, review that the code follows best practices, good architecture patterns and has no missing tests.
Add comments and suggestions where needed.
¿Buenas prácticas? ¿Buena arquitectura? Ni siquiera sé qué aspecto debería tener ese tipo de código —supongo que el agente de IA lo sabe mejor.
Genial. Ahora, mientras espero a que lo revise, puedo revisar los otros 231 pull requests de los otros 5 proyectos distintos que se estaban codificando mientras dormía.
El equipo directivo ha empezado a medir el rendimiento según la cantidad de tokens que consumimos. Seguro que me suben el sueldo.
Doy un sorbo al matcha que he preparado con tanto cuidado y atención —me he distraído— ya está frío.
#¿Ya estamos en el futuro?
¿Te suena familiar?
¿Es esto a lo que aspiramos como Arquitectos de Software?
Yo no, no por desprecio a esta nueva era —abrazo el cambio— sino porque este enfoque nunca va a funcionar.
Espera, ¿acabo de ver a César usar una raya (—) por tercera vez? ¿Significa eso que esta newsletter está escrita por IA? No te preocupes, me gusta mucho cómo quedan visualmente, y estoy intentando incorporarlas en mi escritura siempre que tienen sentido. Sé que muchos modelos de IA las usan, pero sigo siendo yo. Tengo una política sobre IA, y te prometo que esta newsletter es un espacio libre de IA. Lee más sobre mi política de IA.
Una vez que los agentes de IA han aumentado el output más allá de lo que podemos revisar como humanos en un proyecto determinado, los humanos han perdido el control sobre ese proyecto.
A esto he decidido llamarlo: laigacy code.
#¿Qué es el laigacy code?
El laigacy code, en pocas palabras, es cuando un proyecto ha adoptado la programación agéntica completa de una forma que no es sostenible. Donde la cantidad de código escrito (sin guardarraíles, una base sólida ni skills de IA) es tan vasta que no hay forma humana de revisarlo.
Esto significa efectivamente que necesitaremos usar IA para revisar lo que la IA ha escrito, perdiendo el control total sobre el proyecto y matándolo más rápido de lo que podemos arreglarlo.
La IA acelera el desarrollo. Si tenemos una base sólida, acelerará la innovación y la competitividad; si no la tenemos, solo acelerará la muerte del producto.
#¿Cuál es la solución para el laigacy code?
La solución para el laigacy code no es sencilla. Todavía lo estamos descubriendo. Sin embargo, podemos mirar al pasado para aprender de lecciones antiguas.
En proyectos pre-IA, cuando encontrabas un proyecto legacy, primero intentabas entender el sistema, documentarlo, crear un arnés de tests alrededor de las partes existentes para que, cuando refactorizaras más adelante, pudieras validar que el proyecto funcionaba como se esperaba.
Aunque podemos trazar ciertos paralelismos, hay una gran diferencia. En los proyectos laigacy encuentras documentación excesiva, una cantidad sin precedentes de tests y, aun así, la sensación de que no entiendes el proyecto. Lo que es aún peor: una vez que empiezas a comprenderlo, aparece un montón de PRs generadas por IA de la noche a la mañana que tiran por tierra todas las nuevas suposiciones.
Lo que subyace a todo esto es... Falta de confianza.
Con la IA, ¿cómo sabemos si los cambios son intencionados... o no?
Así que la solución para el laigacy code no puede ser otra que ser intencional.
#¿Cómo podemos ser más intencionales?
Podemos ser más intencionales reduciendo el uso de la IA al comunicarnos. Por ejemplo, al describir los PRs, tomarse un tiempo para explicar el razonamiento (¡con erratas incluidas si hace falt!) es una buena forma de ser más intencional.
“”Si yo no me esfuerzo en comunicar, ¿por qué el receptor debería esforzarse en consumir el contenido?
Añadir skills de alta calidad, que creo que son una forma estupenda de mantener documentación viva en el proyecto.
Definir una arquitectura validada por humanos, con use cases, patrón repositorio, separando la lógica de dominio, aplicando capas, etc.
Guiar activamente a la IA, a través del modo plan, revisando el plan si es necesario y revisando el código generado. Ser un actor activo, no pasivo.
Sincronizarse con el equipo en este nuevo enfoque de uso de la IA, creando convenciones sobre cómo utilizarla de forma sostenible y efectiva.
#Reflexiones finales
Es fácil caer en la trampa de dejar de importarse. De dejar pasar las cosas. De ser menos intencional. Este no es el camino. La IA es una REVOLUCIÓN, nosotros, como con todo en la vida, necesitamos ser conscientes de nuestro oficio, el resto caerá en su lugar.
P.D: Es un honor compartir contigo que voy a dar una charla en un evento en el que, hace un par de años, jamás habría soñado hablar. JSNation. Y no solo eso, también en React Summit. Y estamos haciendo una colaboración, quizás te interese asistir al evento en persona o en línea. En cualquier caso, tengo un código de descuento del 15% para ambos. JSNationSe abre en una nueva pestaña. React SummitSe abre en una nueva pestaña. Eso es todo, ¡gracias!
P.D 2: Escribí la mayor parte de esta edición en un autobús de camino a la ciudad de Málaga, España.