Qué es Spec Driven Development
Spec Driven Development propone, en esencia que la especificación preceda y guíe al código. No es un marco de trabajo ni una metodología prescriptiva como scrum. Es más bien un enfoque de trabajo que propone:
Escribir primero una especificación clara de lo que se quiere construir: objetivos, reglas de negocio, criterios de aceptación, restricciones técnicas.
Usar esa especificación como fuente tanto para humanos como para agentes de IA.
Generar código a partir de la spec, no de prompts improvisados.
Como lo resume GitHub en su documentación de Spec Kit: «En este nuevo mundo, mantener software significa evolucionar especificaciones. […] El código es el enfoque de última milla.»[3]
En el contexto de Spec-Driven Development (SDD) —o Desarrollo Guiado por Especificaciones— y de acuerdo con el análisis de la fuente compartida, el rol del programador tradicional se transforma profundamente. Deja de ser un simple «escriba» de líneas de código (evitando caer en el descontrol del vibe coding) para convertirse en un Arquitecto de Especificaciones que dirige a los agentes de Inteligencia Artificial.
A continuación, se detallan 4 funciones básicas que realiza un profesional de la programación bajo este enfoque de trabajo:
1. Redacción y Modelado de la Especificación (The Spec)
La función principal y más crítica del trabajador ya no es picar código directamente, sino estructurar el pensamiento antes de actuar. El programador debe redactar un documento técnico sumamente claro, riguroso y versionado (que funciona como un super-prompt).
¿Qué hace exactamente?: Define con precisión los objetivos del software, las reglas de negocio, los criterios de aceptación, las restricciones técnicas y los flujos de manejo de errores, asegurando que el documento sea legible tanto para humanos como para los agentes de IA.
2. Diseño del Plan Técnico y Descomposición de Tareas
Una vez definida la especificación a nivel de producto o característica (feature), el desarrollador debe trazar la estrategia técnica para que las herramientas de IA no tengan que improvisar ni «adivinar» la arquitectura.
¿Qué hace exactamente?: Utiliza herramientas del ecosistema SDD (como GitHub Spec Kit o Kiro) para ejecutar flujos estructurados que van desde los requisitos iniciales hasta un plan concreto. Descompone la funcionalidad general en un conjunto de tareas (tasks) técnicas viables, ordenadas y acotadas.
3. Orquestación y Supervisión de Agentes de IA
El desarrollador actúa como el director de un equipo de «programadores junior virtuales». El código de última milla es generado de forma masiva y veloz por los Modelos de Lenguaje (LLMs), pero la ejecución depende de las instrucciones de la especificación.
¿Qué hace exactamente?: Alimenta a las herramientas de desarrollo con la especificación y supervisa cómo los agentes automatizados traducen esas directrices en archivos de código fuente, manteniendo el control absoluto de la lógica de negocio implantada.
4. Auditoría de Código, Pruebas y Validación (Review)
Debido a que la IA opera bajo un modelo probabilístico (no determinista) y puede llegar a ignorar reglas por exceso de celo o cometer fallos sutiles, la intervención humana en el control de calidad es indispensable.
¿Qué hace exactamente?: El trabajador revisa los resultados, valida que los archivos generados cumplan fielmente con los criterios de aceptación de la especificación y complementa el flujo aplicando pruebas de calidad tradicionales (como Test Driven Development – TDD para el código unitario o Behavior Driven Development – BDD para verificar el comportamiento de extremo a extremo del sistema).
En resumen: En la labor diaria de SDD, el profesional cambia el foco del «¿Cómo lo programo?» al «¿Qué quiero construir y por qué?», elevando su nivel de abstracción para garantizar la calidad, consistencia y mantenimiento de la base de código.
