La aparición de modelos de lenguaje grandes (LLMs) como Codex, Claude Code y Pi ha revolucionado la forma en que escribimos código, dando lugar a lo que se conoce como 'agente coding'. Este enfoque, donde la IA genera y modifica código, abre un abanico de posibilidades, pero también exige una nueva mentalidad y un conjunto de prácticas específicas. El artículo de Drew Breunig destila 10 lecciones clave para dominar esta nueva forma de programación.
La premisa fundamental es que, dado que el código es ahora relativamente 'barato' (fácil y rápido de generar), debemos cambiar nuestra forma de trabajar. La primera lección es 'Implement to learn': la experimentación y la construcción temprana de prototipos son cruciales para refinar las especificaciones y descubrir soluciones inesperadas. Esto se complementa con la necesidad de 'Rebuild often', fomentando la iteración rápida y la reinvención para explorar el potencial de las funcionalidades.
Un aspecto crítico es la inversión en 'end-to-end tests'. En lugar de probar cómo se implementa el código, debemos centrarnos en verificar que el producto funcione como se espera, creando 'contratos de comportamiento' que permitan refactorizaciones sin romper la funcionalidad. La 'documentación de la intención' es otro pilar, capturando el 'por qué' detrás de las decisiones de diseño, algo que el código y las pruebas por sí solos no pueden expresar.
El artículo enfatiza la importancia de mantener las especificaciones actualizadas, convirtiéndolas en un documento vivo que evoluciona con el proyecto. Además, insta a identificar y abordar los desafíos 'difíciles', como el diseño intuitivo, el rendimiento, la seguridad y la arquitectura sistémica, ya que es en estas áreas donde reside el verdadero valor. La automatización de tareas repetitivas es esencial para liberar tiempo para estos desafíos, pero con cuidado de no caer en una espiral de complejidad.
Dado que el feedback puede ser lento, desarrollar un buen 'taste' (juicio estético y técnico) se vuelve crucial para tomar decisiones informadas sin necesidad de validación constante. La experiencia del desarrollador amplifica la efectividad de los agentes, permitiendo prompts más precisos y eficientes. Finalmente, el artículo advierte que, aunque el código es barato, el mantenimiento, el soporte y la seguridad no lo son, y deben tenerse en cuenta desde el principio.
En resumen, el agente coding no es solo una herramienta para generar código, sino una filosofía que requiere un cambio de mentalidad, un enfoque en la experimentación, la colaboración con la IA y una atención constante a la calidad y la sostenibilidad del proyecto.
