Un flujo de trabajo práctico para desarrollar con asistentes de IA

Fuentes: A practical workflow for LLM-assisted development

Este artículo describe un flujo de trabajo práctico para sacar el máximo partido a los modelos de lenguaje grandes (LLM) en el desarrollo de software, a partir de la experiencia diaria del autor. Frente a la programación manual, donde el código se construye paso a paso, los agentes generativos producen grandes bloques de código desde el inicio y el trabajo humano se centra en podar lo sobrante hasta quedarse con lo útil. El artículo explica que el bucle agéntico funciona como un algoritmo genético: el modelo genera una aproximación, recibe retroalimentación al ejecutar pruebas e itera hasta converger en una solución.

En la sección "qué delegar", el autor identifica tres grandes casos de uso: tareas repetitivas y boilerplate (por ejemplo, generar un endpoint a partir de un JSON de muestra o construir una UI a partir de un conjunto de API), trabajo exploratorio (trazar grafos de llamadas y mapear flujos en una base de código) y traducción entre lenguajes cuando se conoce la lógica pero se ha oxidado la sintaxis. Ilustra este último punto con un proyecto en JavaScript que no tocaba desde hacía más de una década, donde DeepSeek le permitió trabajar con la misma fluidez que en Clojure.

En "cuándo tomar el control", advierte de los fallos más comunes: los agentes desconocen las peculiaridades del proyecto (puede proponer herramientas JVM inexistentes en un entorno Chez Scheme), caen en implementaciones naïf estructuralmente incorrectas (tablas de despacho genéricas cuando procede inferencia de tipos, recorridos lineales sobre colecciones que ya conocen su longitud) y se atienen literalmente a lo solicitado, como un "genio malvado". El autor subraya que el usuario debe tener un diseño claro antes de delegar: más andamiaje al inicio deja menos margen al error. Como trucos concretos, recomienda planificar la tarea, pedir al modelo un plan por fases en Markdown, generar un diagrama en Mermaid.js para revisar visualmente la lógica antes de escribir código, dividir el trabajo en tareas independientes y trabajar en una rama específica.