¿Qué es Spec-Driven Development y porqué es clave en la carrera de un Ingeniero de IA?
Hay momentos en tecnología en los que aparece una nueva forma de trabajar y, al principio, cuesta distinguir si estamos ante una moda más o ante algo que realmente va a cambiar la manera en que construimos software empresarial.
Con Spec-Driven Development (SDD) creo que estamos más cerca de lo segundo.
No porque sea una metodología completamente nueva en todos sus principios. Al final, en ingeniería de software llevamos muchos años hablando de requisitos, diseño, documentación, arquitectura, testing y trazabilidad. Lo interesante es que, con la llegada del AI-assisted Development, todo esto vuelve a colocarse en el centro, pero con una relevancia mucho mayor.
Y, sobre todo, creo que va a ser una de esas competencias que marcarán una diferencia muy clara entre contratar un ingeniero de IA que simplemente “usa IA para programar” versus un ingeniero que realmente sabe construir software a medida empresarial, escalable y mantenible con IA.
De generar código a construir software con IA 💻
La primera experiencia de programar con IA suele ser muy potente.
Le explicas una funcionalidad, le das un poco de contexto, te propone una solución, genera código, corrige errores, refactoriza una función o incluso te monta una primera versión de una aplicación. Para prototipos, automatizaciones pequeñas o funcionalidades concretas, el impacto es inmediato.
Pero cuando empiezas a usar IA en proyectos más grandes, aparecen otros problemas.
No es que de repente pienses que la IA no sabe programar bien. Muchas veces sabe hacerlo más que bien, de hecho. El problema es más profundo: la IA necesita trabajar con una representación suficientemente clara del sistema, de sus reglas, de sus límites y de las decisiones que ya se han tomado.
Cuando todo eso vive únicamente dentro de una conversación, el proceso se vuelve muy frágil, y uno como developer, se da cuenta rápidamente.
En un chat lleno de prompts, se mezclan:
- decisiones funcionales
- instrucciones técnicas
- correcciones
- cambios de criterio
- fragmentos de código
- excepciones, aclaraciones y soluciones parciales
Al principio funciona, pero a medida que el proyecto crece,… ese contexto se vuelve cada vez más difícil de sostener.
Y cuando el contexto se llena, ocurre algo muy habitual: abrimos una conversación nueva, resumimos lo que creemos importante y seguimos. Pero ese nuevo punto de partida ya no es exactamente el mismo. Se ha perdido detalle. Se ha perdido trazabilidad. Se han perdido decisiones pequeñas que quizá parecían poco importantes, pero que afectaban a la arquitectura o al comportamiento del sistema.
Este es uno de los grandes retos del AI-Assisted Development: no se trata solo de generar código, sino de mantener continuidad técnica a lo largo del tiempo.
Antes de hablar de Spec-Driven Development , hay que entender Harness Engineering 🧩
Para entender por qué SDD va a ser tan importante, creo que antes merece la pena introducir otro concepto que está empezando a ganar mucha relevancia en el desarrollo con IA: Harness Engineering.
La idea de fondo es bastante sencilla, pero tiene mucha profundidad técnica.
Cuando trabajamos con agentes de IA, el rendimiento no depende únicamente del modelo. Depende también del entorno que construimos alrededor de ese modelo: qué contexto recibe, qué herramientas puede utilizar, qué permisos tiene, qué reglas debe seguir, cómo valida lo que hace, qué feedback recibe cuando se equivoca y cómo puede corregir su propio trabajo.
A todo ese entorno se le empieza a llamar harness.

Martin Fowler explica que, en el contexto de agentes de programación, el harness actúa como un sistema de regulación alrededor del agente, combinando mecanismos de guía y feedback para orientar la base de código hacia el estado deseado. Es decir, no hablamos solo del modelo, sino del conjunto de controles, señales, herramientas y validaciones que permiten que el agente trabaje con más fiabilidad sobre un sistema real.
OpenAI lo plantea en una línea muy similar cuando habla de Harness Engineering como el cambio que se produce cuando el trabajo principal de un equipo de ingeniería ya no consiste únicamente en escribir código, sino en diseñar entornos, especificar intención y construir bucles de feedback para que los agentes puedan hacer trabajo fiable.
Esto es muy relevante porque nos obliga a cambiar la pregunta.
La pregunta ya no es solo: “¿Qué modelo uso para programar?”
La pregunta empieza a ser: “¿Qué sistema de trabajo estoy construyendo alrededor de ese modelo para que pueda desarrollar software de forma fiable?”
Ese sistema incluye muchas piezas: contexto, herramientas, permisos, tests, linters, CI/CD, revisión humana, documentación, criterios de aceptación, convenciones de arquitectura, recuperación de información del repositorio y mecanismos para detectar errores antes de que lleguen a producción.
Aquí es donde Spec-Driven Development aparece de forma muy natural.
Si Harness Engineering es diseñar el entorno en el que una IA puede trabajar bien, Spec-Driven Development es una de las piezas más importantes de ese entorno.
Porque la especificación es la forma en la que convertimos intención, reglas de negocio, decisiones técnicas y criterios de validación en contexto estructurado.
El harness necesita herramientas, tests, permisos, observabilidad y feedback loops. Pero una de sus bases más importantes es que la IA entienda con precisión qué tiene que construir, por qué tiene que construirlo y bajo qué condiciones debe hacerlo.
Y eso es exactamente lo que aporta el Spec-Driven Development.
¿Qué es SDD o desarrollo dirigido por especificaciones? 📐
Visto desde esta perspectiva, Spec-Driven Development puede entenderse como una de las prácticas clave dentro de una forma más madura de trabajar con IA.
Es una metodología en la que la especificación se convierte en el eje central del proceso de desarrollo.
En lugar de saltar directamente a tirar líneas de código, primero se define con claridad qué se quiere construir, qué problema resuelve, cómo debe comportarse, qué restricciones tiene, qué decisiones técnicas se han tomado y cómo se validará que el resultado es correcto.

GitHub define Spec-Driven Development como una metodología que pone las especificaciones en el centro del desarrollo asistido por IA: primero se describe qué se quiere construir, después se refina a través de fases estructuradas y finalmente el agente de IA implementa el resultado.
Esto cambia bastante la relación con la IA.
La IA deja de trabajar únicamente sobre una conversación y empieza a trabajar sobre artefactos más estables: especificaciones, planes, diseños técnicos, tareas, criterios de aceptación y decisiones documentadas.
Es decir, el conocimiento del sistema empieza a vivir en el propio proyecto, no solo en el historial del chat.
Por qué esto es tan relevante ahora ⚙️
En desarrollo tradicional, una mala especificación ya era un problema. Eso siempre se ha arrastrado. Pero en desarrollo con IA, una mala especificación se amplifica notablemente.
Si una persona no entiende un requisito, puede preguntarte, recordar contexto de reuniones anteriores, intuir ciertas decisiones por experiencia o detectar contradicciones con criterio humano. Una IA también puede hacer parte de esto, pero depende mucho más de la calidad del contexto que le proporcionamos.
Y aquí aparece una diferencia importante: cuanto más autónoma queremos que sea la IA, más explícito debe ser el sistema de trabajo.
Si le pedimos a una IA que modifique una función pequeña, podemos permitirnos una instrucción simplona. Pero si le pedimos que implemente una funcionalidad transversal, que toque base de datos, API, frontend, autenticación, permisos, tests y documentación, entonces necesitamos algo más robusto.
Necesitamos que entienda qué comportamiento esperado debe respetar, qué contratos no puede romper, qué decisiones arquitectónicas condicionan la solución, qué dependencias existen entre módulos, qué reglas de negocio son críticas, qué criterios de aceptación validan el cambio y qué partes del sistema deben permanecer estables.
Esto es exactamente donde el Spec-Driven Development empieza a tener un valor diferencial.
No es documentación por documentación. Es contexto operativo para que humanos e IA trabajen con una misma referencia.
La especificación como contrato técnico en el SDD 🧾
Una buena especificación no debería ser un documento largo que nadie lee. Tampoco debería ser una descripción genérica de una idea.
En el contexto del desarrollo asistido por IA, una especificación funciona casi como un contrato técnico entre la intención del producto, la arquitectura del sistema y la implementación.
Ese contrato puede incluir requisitos funcionales, restricciones técnicas, escenarios de uso, criterios de aceptación, dependencias, riesgos, decisiones de diseño y tareas de implementación.
Y esto es muy potente porque permite separar tres niveles que muchas veces se mezclan cuando trabajamos solo con prompts.
Primero, el qué: qué debe hacer el sistema.
Segundo, el por qué: qué problema resuelve y qué intención de negocio hay detrás.
Tercero, el cómo: qué aproximación técnica se va a seguir para implementarlo.
Cuando estos tres niveles no están separados, la IA puede generar código que aparentemente funciona, pero que no encaja bien con el sistema. Puede resolver el caso inmediato, pero introducir deuda técnica, duplicar lógica, saltarse una convención interna o modificar una parte que debería haber permanecido estable.
Spec-Driven Development ayuda a evitar ese tipo de problemas porque obliga a que el razonamiento sea más explícito antes de llegar al código.
Del prompt al flujo de ingeniería 🔄
Durante esta primera etapa de adopción de herramientas de IA, muchas personas han entendido el desarrollo asistido por IA como una cuestión de saber escribir buenos prompts.
Y es cierto que saber comunicarse bien con una IA importa.
Pero creo que el salto profesional no está solo ahí.
El salto está en pasar del prompt como unidad de trabajo a la especificación como sistema de trabajo.
Un prompt puede resolver una tarea concreta. Una especificación puede sostener la evolución de una funcionalidad, permitir que otra persona entienda el contexto, facilitar que otro agente continúe el trabajo y reducir el riesgo de que el sistema pierda coherencia con el tiempo.
Este cambio es especialmente importante cuando empezamos a trabajar con agentes de programación más avanzados. GitHub Spec Kit, por ejemplo, plantea un flujo estructurado con fases de especificación, planificación técnica, desglose de tareas e implementación, y está pensado para integrarse con múltiples agentes de programación, tanto de CLI como de IDE.
La idea de fondo es clara: si la IA va a participar cada vez más en la implementación, necesitamos profesionalizar la forma en que le damos contexto, instrucciones y límites.
| Enfoque basado en prompts | Enfoque Spec-Driven Development |
|---|---|
| La conversación es el principal contexto del proyecto. | La especificación vive dentro del proyecto y se mantiene como referencia. |
| La IA interpreta instrucciones sueltas o acumuladas en el chat. | La IA trabaja sobre requisitos, diseño, tareas y criterios de aceptación. |
| El conocimiento se pierde fácilmente al cambiar de conversación o herramienta. | El conocimiento queda documentado y puede ser reutilizado por personas y agentes. |
| Es útil para prototipos, pruebas rápidas o tareas pequeñas. | Es especialmente útil para sistemas empresariales, proyectos grandes y desarrollo mantenible. |
| El riesgo de inconsistencias crece a medida que crece el proyecto. | La trazabilidad ayuda a mantener coherencia entre intención, diseño e implementación. |
Por qué el desarrollo dirigido por especificaciones será clave en tu carrera 🧠
Aquí es donde, para mí, aparece la parte más importante desde el punto de vista de talento y carrera profesional.
Cada vez habrá más perfiles capaces de usar herramientas de IA para generar código. Eso va a dejar de ser diferencial relativamente rápido.
Lo que sí va a ser diferencial es saber construir software empresarial complejo y fiable, con IA.
Y eso va mucho más allá de pedirle a un modelo que escriba cuatro funciones o que te desarrolle una aplicación con un sólo «mega prompt».
Implica:
- Saber convertir una necesidad ambigua en una especificación precisa.
- Saber identificar riesgos técnicos.
- Saber pensar en arquitectura.
- Saber definir criterios de aceptación.
- Saber dividir un cambio grande en unidades de trabajo trazables.
- Saber mantener consistencia entre funcionalidades.
- Saber documentar decisiones para que puedan ser reutilizadas por personas y por agentes.
En este contexto, el ingeniero de IA tendrá que saber usar modelos, pero más importante aún, tendrá que saber diseñar el sistema de trabajo que permite que esos modelos produzcan resultados fiables. Y ahí aparecen competencias como Spec-Driven Development, Harness Engineering, evaluación, testing automatizado, observabilidad y control de calidad del código generado.
Un ingeniero de IA que incorpore esta forma de trabajar va a estar mucho mejor preparado para proyectos complejos.
En la práctica, muchos problemas de desarrollo con IA no vienen de la generación de código en sí, sino de la falta de una capa intermedia entre la intención y la implementación.
Spec-Driven Development es precisamente esa capa.
El valor profesional está subiendo de nivel 📈
Durante muchos años, una parte importante del valor de un desarrollador estaba en saber escribir código con solvencia. Después, ese valor fue evolucionando hacia saber diseñar arquitecturas, trabajar en equipo, entender producto, escalar sistemas, automatizar despliegues y mantener calidad.
Con la IA, esa evolución continúa.
El código se va a generar cada vez más rápido. Pero eso no significa que la ingeniería sea menos importante. De hecho, probablemente sea al revés.
Cuando generar código se vuelve más barato, se vuelve más importante decidir bien qué código debe existir, cómo debe integrarse, qué impacto tendrá, qué restricciones debe respetar y cómo se va a mantener.
Por eso, el ingeniero que sepa trabajar con especificaciones tendrá una ventaja importante.
No porque escriba más código. Sino porque será capaz de dirigir mejor el proceso de construcción.
Y esto, en entornos empresariales, es fundamental. Las empresas no necesitan únicamente prototipos rápidos. Necesitan sistemas que puedan evolucionar, ser auditados, integrarse con otros sistemas, mantenerse por equipos distintos y soportar cambios futuros sin convertirse en una acumulación de parches.
Spec-Driven Development (SDD) y la gestión de la deuda técnica 🏗️
Uno de los puntos más interesantes de esta metodología es su impacto sobre la deuda técnica.
Cuando se trabaja con IA sin demasiada estructura, es fácil caer en una dinámica de soluciones rápidas: “haz que funcione”, “corrige este error”, “añade este caso”, “cambia esta parte”. Cada una de esas peticiones puede tener sentido de forma aislada, pero acumuladas pueden degradar el diseño del sistema.
La IA puede duplicar lógica porque no sabe que ya existe una abstracción similar. Puede crear una solución local sin entender una convención global. Puede añadir una dependencia innecesaria. Puede resolver un bug modificando comportamiento que otras partes del sistema daban por supuesto.
Con Spec-Driven Development, cada cambio debería estar conectado a una intención, a una justificación y a unos criterios de validación.
Esto no elimina la deuda técnica, pero ayuda a hacerla más visible. Y cuando la deuda es visible, se puede gestionar.
Además, permite una trazabilidad mucho más clara entre decisión, implementación y resultado. Si dentro de tres meses alguien pregunta por qué se diseñó una funcionalidad de una determinada manera, la respuesta no debería estar perdida en una conversación antigua con una IA, sino en una especificación vinculada al propio proyecto.
OpenSpec como ejemplo práctico 🛠️
Una herramienta interesante para empezar a trabajar este enfoque es OpenSpec.

OpenSpec se define como un framework ligero y open source de Spec-Driven Development para asistentes de programación con IA. Su propuesta consiste en organizar propuestas, especificaciones, diseño y tareas dentro del propio repositorio, evitando que los requisitos queden enterrados únicamente en el historial de conversación.
Lo interesante de OpenSpec es que no intenta convertir el desarrollo con IA en un proceso rígido o excesivamente pesado. Su filosofía habla de un enfoque fluido, iterativo, fácil de adoptar, pensado para proyectos reales y válido tanto para proyectos nuevos como para codebases existentes. Y eso se convierte en una realidad a través del concepto de Delta Spec.
Esto es importante porque una de las resistencias naturales a cualquier metodología basada en especificaciones es pensar que va a ralentizar el trabajo.
Pero bien utilizado, el objetivo es justo el contrario: reducir ambigüedad, evitar retrabajo y permitir que la IA avance con más precisión.
Un flujo sencillo podría ser este:
Quieres añadir un sistema de roles y permisos a una aplicación.
En lugar de pedir directamente “añade roles de usuario”, primero defines qué roles existen, qué permisos tiene cada uno, qué endpoints quedan protegidos, qué ocurre cuando un usuario no autorizado intenta acceder, qué cambios requiere el modelo de datos, qué impacto tiene en frontend, qué tests deben cubrir el comportamiento y qué partes del sistema no deberían modificarse.
Después, la IA puede ayudarte a convertir esa especificación en diseño técnico, tareas e implementación.
La diferencia es que ya no está improvisando a partir de una instrucción general. Está trabajando sobre una estructura que reduce ambigüedad y mantiene la trazabilidad del cambio.
No, el SDD no es volver al desarrollo Waterfall 🌊
Una confusión habitual sería pensar que Spec-Driven Development significa volver a procesos pesados, lentos y excesivamente documentados.
En mi opinión, no es así.
De hecho, las herramientas actuales intentan precisamente evitar esa rigidez. OpenSpec, por ejemplo, habla explícitamente de un enfoque fluido, iterativo y no rígido, en el que los artefactos pueden actualizarse durante el proceso y no funcionan como una puerta burocrática antes de programar.
La clave está en entender la especificación como algo vivo.
No se trata de escribir un documento perfecto al inicio y obedecerlo ciegamente. Se trata de tener un punto de referencia que pueda evolucionar cuando aparecen nuevas decisiones, nuevos riesgos o nuevos aprendizajes durante el desarrollo.
Esto encaja muy bien con la forma real en que se construye software. Primero entiendes el problema. Luego descubres matices. Después ajustas el diseño. Más tarde aparecen casos límite. Finalmente consolidas una solución.
La diferencia es que, con Spec-Driven Development, ese aprendizaje no se pierde. Se incorpora al sistema.
¿Imaginas que pudieras tener contratos y specs, con un nivel de detalle que te permitiera eliminar todo el código y que se recreara siguiendo todo el flujo de specs? No es mágia, es SDD.
La especificación como memoria del proyecto 🧠
Este punto me parece especialmente importante.
Cuando trabajamos con IA, una de las grandes limitaciones es la continuidad. Podemos darle contexto, pero el contexto tiene límites. Podemos resumir, pero todo resumen implica pérdida. Podemos abrir nuevas conversaciones, pero siempre hay una parte del razonamiento anterior que desaparece.
Las especificaciones ayudan a resolver este problema porque actúan como memoria persistente del proyecto.
No una memoria perfecta, pero sí una memoria mucho mejor que una conversación suelta.
Permiten:
- que una persona nueva entienda una funcionalidad.
- que una IA retome un cambio.
- revisar decisiones pasadas.
- comparar lo implementado con lo que se había definido.
- auditar por qué algo se hizo de una determinada forma.
En proyectos pequeños puede parecer secundario. En proyectos empresariales es una diferencia inmensa.
Cuando un sistema crece, lo difícil es añadir funcionalidad sin perder coherencia.
Cómo cambia la forma de evaluar talento técnico 👥
Creo que esto también va a cambiar cómo evaluamos el talento en ingeniería de software e inteligencia artificial.
Hasta ahora, muchas evaluaciones técnicas se han centrado en lenguajes, frameworks, algoritmos, arquitectura, cloud, bases de datos o testing. Todo eso sigue importando.
Pero cada vez tendrá más peso otra dimensión: cómo trabaja una persona con IA.
Y no me refiero a si conoce una herramienta concreta. Las herramientas cambiarán. Hoy puede ser Cursor, Copilot, Claude Code, Kiro, OpenSpec o cualquier otra. Mañana serán otras.
La pregunta más interesante será:
¿Esta persona sabe estructurar el trabajo para que una IA pueda ayudar de forma fiable?
Eso incluye:
- saber escribir buenas especificaciones
- dividir problemas complejos
- detectar ambigüedades
- anticipar riesgos
- revisar código generado
- mantener estándares
- pensar en arquitectura
- asegurar que cada cambio encaja con el sistema completo.
En perfiles de IA, esta habilidad se convertirá en una señal de garantía y madurez técnica.
El ingeniero más valioso será que consiga que la IA participe en un proceso de desarrollo robusto.
Una habilidad especialmente importante para proyectos empresariales 🏢
En una empresa, el desarrollo de software rara vez consiste únicamente en crear algo que funcione en una demo.
Hay integraciones, permisos, datos sensibles, procesos internos, dependencias con otros sistemas, mantenimiento, seguridad, escalabilidad, experiencia de usuario, reporting, despliegues, testing y soporte.
Cuando usamos IA en este contexto, necesitamos una metodología que ayude a mantener el control.
Spec-Driven Development aporta precisamente eso: una forma de conectar necesidad de negocio, especificación funcional, diseño técnico e implementación.
Y esta conexión es muy valiosa porque reduce uno de los mayores riesgos del desarrollo asistido por IA: que la velocidad de generación de código supere la capacidad del equipo para entender, revisar y mantener lo que se está construyendo.
En otras palabras, la IA puede acelerar mucho. Pero si no hay una estructura adecuada, también puede acelerar el desorden.
Por dónde empezar con el Spec-Driven Development 🧭
Para un ingeniero de IA o un desarrollador que quiera incorporar esta forma de trabajar, no hace falta empezar con un proceso enorme.
Se puede empezar de forma muy práctica.
Por ejemplo, antes de pedirle a la IA que implemente una funcionalidad, escribir una especificación breve con:
- qué problema resuelve,
- qué usuarios o sistemas intervienen,
- qué comportamiento esperado debe tener,
- qué casos límite hay que contemplar,
- qué restricciones técnicas existen,
- qué partes del sistema se verán afectadas,
- qué criterios de aceptación deben cumplirse,
- y qué tests deberían validar el resultado.
Después se puede pedir a la IA que critique la especificación, detecte ambigüedades, proponga escenarios no contemplados y convierta la especificación en tareas de implementación.
Ese pequeño cambio ya mejora mucho la calidad del proceso.
La IA deja de ser solo una herramienta para producir código y empieza a convertirse en una herramienta para razonar, planificar, implementar y validar.
Conclusión: El futuro del desarrollo de software guiado por IA 🎯
SDD es importante porque responde a un problema muy real del desarrollo con IA: cómo mantener claridad, contexto, trazabilidad y coherencia cuando empezamos a construir sistemas serios, grandes y business-critical.
La IA nos permite avanzar más rápido, pero esa velocidad necesita una forma de trabajo más madura.
No basta con generar código. Hay que saber dirigir el proceso de construcción.
Y para los ingenieros de IA, estoy convencido que será una habilidad diferencial en los próximos años.
Quien aprenda a trabajar con especificaciones, a convertir ideas ambiguas en contratos claros, a estructurar tareas para agentes de IA y a mantener una memoria técnica del sistema, estará mucho mejor preparado para crear software empresarial, escalable y mantenible.
Para mí, ese es el verdadero cambio.
Y en una etapa en la que la inteligencia artificial está transformando la forma de desarrollar software, esa diferencia puede ser decisiva en la carrera de cualquier ingeniero que quiera despuntar en el mercado.
También te puede interesar...
Qué es un Ingeniero de Inteligencia Artificial: funciones, salario y requisitos
Descubre qué es un Ingeniero de IA, qué hace y cuál es su salario en España.
Vibe coding: el impacto de la IA que está reestructurando la profesión de programador
Analizamos el fenómeno del Vibe coding y cómo herramientas como Cloud Code están transformando la ingeniería de software…
Cómo contratar programadores expertos en IA generativa (GenAI)
Te explicamos que tipos de perfiles en IA hay y cuál es el más idónea para tu empresa.
Todo lo que necesitas saber sobre un LLM Engineer: funciones, salario y requisitos
Te explicamos qué hace un Ingeniero LLM, cuanto cobra y qué requisitos debes cumplir para serlo
SELECCIONAMOS
INGENIEROS DE IA
PARA TI
Déjanos tus datos para valorar tu caso, contactarte y ver como podemos ayudarte.
Ya hemos ayudado a +150 empresas a crecer, siendo un brazo más de su equipo de selección IT.
¿Hablamos?
Apasionado de la tecnología, siempre pensando en la mejora de procesos y en impulsar la estrategia de la empresa. Más de 15 años de experiencia en consultoría IT, con un enfoque estratégico en desarrollo de negocio y talento. Mi propósito es transformar empresas y llevarlas al siguiente nivel.

