Agentes de desarrollo: Modo Plan, un primer paso a un trabajo más profesional
Introducción
Esta semana he tenido la oportunidad de probar el modo “Plan” de GitHub Copilot (también disponible en otros sistemas agénticos como Cursor), y mi primera impresión se resume en pocas palabras: una funcionalidad sencilla que aporta un valor enorme.
Hasta ahora, he observado un aumento progresivo de complejidad en las herramientas de desarrollo asistido por IA, enfocadas principalmente en acelerar la generación de código. Esto se está logrando mediante:
- Subagentes que reducen los pasos manuales de implementación
- Mejoras en context engineering para recuperar información relevante
- Ejecución desde la CLI que permite integrar los agentes en las pipelines de desarrollo existentes
- Aumento de la capacidad de los modelos con mejores MCPs
Sin embargo, el modo Plan representa algo diferente: es una funcionalidad que mejora el paso previo a la generación de código. Es decir, se centra en definir qué se debe generar y cómo, antes de escribir una sola línea. Esto no significa que haya un prompt que ya tenga unas instrucciones predefinidas de cómo se ha de generar el código, sino que el agente ayuda a definir un plan detallado para abordar la tarea en cuestión.
¿Qué hace diferente al modo Plan?
Irónicamente, este enfoque “más pausado” termina siendo más eficiente:
- Ahorra tiempo y tokens (dinero) al evitar generar código que luego se descarta o que no encaja con los requisitos
- Facilita la colaboración: dos o más personas pueden trabajar junto al agente para definir un plan común, lo que podríamos llamar “Mob Planning”
En esencia, el modo Plan nos invita a pensar antes de actuar, algo fundamental en el desarrollo profesional que a veces se pierde en la prisa por generar código rápidamente.
¿Por qué veo que es “sencillo”?
Analizando su funcionamiento, intuyo que por detrás utiliza el patrón agéntico Workflow Loop combinado con Human-in-the-loop. En esencia, se trata de un proceso iterativo que:
- Recupera contexto relevante (ficheros, documentación, etc.) mediante búsqueda semántica
- Mantiene el plan anterior en memoria (memoria a corto plazo)
- Utiliza un prompt especializado para generar o refinar el plan
El loop continúa hasta que se cumple una de estas tres condiciones de salida:
- Decisión del usuario: Al pulsar el botón “empezar implementación”
- Plan completo: El agente determina que no quedan aspectos por definir o aclarar, o bien ha identificado puntos que requieren decisión humana
- Límite de iteraciones: Se alcanza un tope máximo para evitar loops infinitos
La verdadera novedad está en la lógica de control del flujo de trabajo. La parte “compleja” —la recuperación de contexto— es tecnología que el equipo de GitHub Copilot ya había desarrollado previamente, por lo que su implementación resultó relativamente directa.
De hecho, podríamos replicar este agente desde cero con una potencia similar gracias a los MCPs disponibles actualmente (aunque eso sería tema para otro artículo). Lo que quiero destacar aquí es precisamente la simplicidad del enfoque y el gran impacto que puede generar.
¿Qué valor aporta?
Los agentes actuales me impresionan por su capacidad de levantar proyectos desde cero e incluso entregar funcionalidades completas durante un tiempo. Sin embargo, en proyectos reales la cosa cambia: no se trata solo de generar código, sino de hacer evolucionar el existente, arreglar bugs, mejorar rendimiento, etc.
En estas situaciones, generar código a la ligera no es la solución. Es necesario:
- Entender qué tenemos
- Definir qué necesitamos
- Diseñar cómo llegar a ello
Y todo esto pensando en la facilidad de mantenimiento y en alcanzar los objetivos de negocio en tiempo y forma.
El valor del modo Plan
Aquí es donde el modo Plan aporta un valor enorme: permite visualizar un plan detallado de una forma simple, rompiendo la hoja en blanco inicial. Nos da una herramienta que:
- Reduce el tiempo de consultar documentación
- Contextualiza la tarea y objetivos con el código existente
- Define un plan ejecutable para completar la tarea con éxito
¿Qué diferencia hay con lo anterior?
Mi sensación es que muchas veces nos limitamos a generar código y probar a ver si funciona y esto no es un trabajo profesional. Aunque dé sensación de rapidez, estamos siendo menos efectivos con nuestro tiempo y recursos. Creo que es aceptable en prototipos rápidos o POCs, pero en proyectos reales no es sostenible.
Hasta ahora, planificar podía parecer laborioso. Pero con esta herramienta planificar se vuelve rápido y sencillo.
Otros beneficios adicionales
-
Review de código más eficiente: Como el plan ya está definido, solo queda esperar los cambios/generación/eliminación de código. Dado que en la planificación hemos entendido el alcance y los cambios a realizar, la revisión de código se vuelve más directa y enfocada. Además, que habrá partes que ni siquiere requieran de revisión porque es un cambio más simple y solo debamos enfocanos en las partes más complejas/críticas/con más incertidumbre.
-
Colaboración mejorada: Varias personas pueden definir el plan juntas, plasmando sus ideas y conocimientos para llegar a un consenso común. Esto reduce ciclos largos de:
- Esperar a que se genere una idea
- Debatir
- Hacer rollback
- Volver a generar
- Esperar otra vez
- Discutir de nuevo
- Y así sucesivamente…
El agente actúa como facilitador para plasmar ideas y llegar a un consenso rápido. Este es uno de los puntos que más valor me ha aportado, especialmente al hacer pair programming.
-
Transmisión de conocimiento: Si generar un plan se vuelve más accesible, personas con menos experiencia podrían participar activamente en la definición de planes y tareas. Esto les permitiría aprender de profesionales más experimentados en un debate que el agente agiliza. Además, el agente puede facilitar la resolución de dudas sobre artefactos técnicos o decisiones de diseño, permitiendo que la persona experimentada explique su razonamiento sin la carga cognitiva de tener que mantener todo el código en la cabeza.
-
Planning de tareas en paralelo más efectivo: Esto me hace pensar en una práctica que aplico con mi compañero de proyecto: definir a grandes rasgos las tareas pendientes. Con el modo Plan, el agente podría ayudarnos a estructurar este plan inicial y luego delegar en subagentes especializados, cada uno encargándose de bounded contexts diferentes y trabajando en paralelo. Aunque aún no he probado este enfoque, lo dejo aquí como una idea feliz.
Conclusión
En definitiva, creo que el modo Plan es un primer paso hacia un trabajo más profesional con agentes de desarrollo. Nos permite saltar más allá de la generación de código y nos invita a pensar en términos de planificación y estrategia, lo cual es esencial en el desarrollo de software real. De nuevo, el camino creo que es entender mejor los fundamentos y las ideas que no cambian para sacarle el jugo a esto porque sin criterio esto no te suma nada y puede ser contraproducente. Estoy de nuevo expectante de si habrá más avances en este sentido (nuevos formatos de plan, integraciones en el flujo… etc) porque creo que es el camino para que el desarollo de software mejore realmente… y no se quede solo en generar prototipos rápidos o pocs.