El código es (sigue siendo) para humanos. El código limpio no tiene por qué desaparecer con los agentes de IA y crear una buena base, reglas claras y al menos algo de revisión manual siguen siendo esenciales para evitar caer en el slop.
Todo programador conoce la sensación de abrir un archivo y preguntarse quién pudo el bruto que lo escribió, solo para recordar que fue uno mismo meses atrás. Escribir código limpio siempre fue un acto de consideración hacia la próxima persona que tendrá que leerlo, incluso cuando sea nuestro yo del futuro.
Antes de los agentes de IA, las bases eran sencillas, aunque difíciles de sostener: Usar nombres claros, dividir en partes específicas y comprensibles, evitar repetir lógica, mantener una estructura y un estilo consistentes, y dejar pruebas unitarias, al menos del comportamiento importante. No se trataba de producir código elegante solo por estética, sino de que otra persona pudiera seguir una regla de negocio, encontrar un error o cambiar una función sin morir en el intento.
Aunque muchos vibecoders no lo entiendan (o sepan), creo que IA no volvió obsoletas esas prácticas. Al contrario, aunque estudios indiquen que la IA necesita una estructura algo distinta, el resto de las buenas prácticas siguen vigentes y permite generar piezas de código que funcionan con más facilidad. La ausencia de este criterio, más tarde que temprano, resulta en se lo suele llamar slop: Generación rápida, unidades que funcionan y convencen, pero que por su desorden se vuelven costosos de mantener, inestables e imposibles de escalar.
Pero la inestabilidad, irregularidad o desprolijidad no son una consecuencia inevitable de programar con IA. Solo aparecen al delegar sin reglas y aceptar sin revisar.
La forma de trabajar cambió, pero no tanto. Primero, hace falta una base de código prolija, vale la pena todavía hacer algo de trabajo mental y manual al comienzo, porque el agente aprende del contexto y tiende a repetir sus patrones, sean buenos o malos.
Luego, hay que definir un contrato para la IA. Esto es un listado de reglas no negociables en un archivo AGENTS.md, seguido de explicaciones más detalladas, incluyendo cómo se organiza el proyecto, qué convenciones debe respetar, descripciones de componentes o patrones reutilizables, qué decisiones no debe tomar sin consultar y qué pruebas tiene que ejecutar. Esas instrucciones solo convierten criterios que antes teníamos en la cabeza en reglas que la IA tendrá en cuenta en cada tarea.
Un tip de oro: No escribas las instrucciones (ni los prompts) vos mismo. Pedile al mismo modelo que lo redacte en base a los requerimientos escritos con tus palabras, luego los implementás o guardás en AGENTS.md según corresponda.
Otra paga sigue siendo la revisión manual. Quizás ya no línea por línea. Pero debemos mantener los cambios en un volumen manejable y, por lo menos, comprobar que tiene sentido y confirmar que la IA entendió el problema real.
El código legible sigue importando cuando hay que depurar una falla urgente, revisar un cálculo de impuestos, verificar permisos, explicar por qué se aplicó un descuento o reconstruir una decisión tomada años atrás.
También funciona como seguro frente a una dependencia menos evidente. El mercado de IA está concentrado en pocos proveedores. Sin querer ser catastrófico, no es imposible imaginar que el acceso puede encarecerse, restringirse o dejar de existir. Incluso sin una catástrofe, voluntades de los gobiernos y distintos poderes pueden excluirnos, como lo que pasó con Mythos. Si ese día llega, quizás necesitemos volver a programar a mano. Aquí en Foxtrot ya estamos probando modelos locales.
Bien utilizada, la IA aumenta nuestras capacidades. Puede detectar inconsistencias, proponer nombres mejores, simplificar partes confusas y hacer revisiones adicionales. Pero la velocidad no reemplaza al criterio, lo amplifica. Con una buena base, reglas sólidas y personas dispuestas a leer lo que reciben, programar con agentes no tiene por qué producir slop. Todavía podemos escribir código que nuestro yo del futuro abra sin insultarnos demasiado.
