Categorías
Desarrollo Documentación ia

SDD a lo largo del ciclo de vida: del PRD a los tests, con la IA de copiloto

Cómo el SDD estructura todo el ciclo de vida, de qué sirven los artefactos intermedios y cuándo usar BMAD vs OpenSpec.

Serie: Spec Driven Development (SDD)


Los posts anteriores de esta serie explicaron qué es el Spec Driven Development y cómo funciona en un cambio concreto. Este aborda una pregunta diferente: ¿qué pasa cuando el proyecto no es un botón de exportar a Excel, sino una aplicación entera? La respuesta corta: el SDD escala. Y cuando escala, la diferencia entre tener un procedimiento establecido y no tenerlo se mide en semanas de retrabajo.

El problema que aparece cuando el proyecto crece

Con un cambio pequeño, el caos se nota poco. Tienes la feature en la cabeza, le das contexto al agente y, si hay suerte, funciona al primer intento. Con un proyecto de verdad —modelo de datos, backend, frontend, tests, integraciones— el caos se acumula. El agente implementa algo en la fase 3 que contradice una decisión de la fase 1. El frontend asume una estructura de API que el backend nunca tuvo. Los tests verifican una especificación que cambió tres veces sin que nadie lo escribiera en ningún sitio. El problema no es la IA. Es la ausencia de un proceso.

Sin especificaciones, el proyecto no tiene memoria. Y un proyecto sin memoria está condenado a repetir sus propios errores.

El PRD: el contrato antes del código

Todo proyecto guiado por especificaciones empieza por el mismo sitio: el PRD (Product Requirements Document). No tiene que ser un documento de 80 páginas. Tiene que responder tres preguntas con precisión: ¿qué hay que construir? (alcance, módulos, roles de usuario), ¿por qué? (el problema que resuelve y el valor que aporta) y ¿cómo se verifica? (los criterios de aceptación de cada funcionalidad principal). Sin ese PRD, cada agente trabaja con una versión diferente del proyecto que tiene en la cabeza —o en el chat, que viene a ser lo mismo.

En proyectos con metodologías más estructuradas como BMAD (Be My AI Developer), el PRD es el input de un arquitecto de IA que genera un plan de proyecto completo: épicas, historias de usuario, criterios de aceptación formales y dependencias entre fases. El resultado es exhaustivo y de alta calidad, pero la curva de aprendizaje es pronunciada y el overhead puede ser excesivo para equipos pequeños o proyectos medianos. Para proyectos de tamaño moderado, OpenSpec ofrece un equilibrio más práctico: el PRD se traduce directamente en una carpeta de especificaciones con cambios ordenados y secuenciados, sin necesidad de orquestar múltiples agentes especializados.

Los artefactos intermedios: el hilo de Ariadna del proyecto

La diferencia real entre SDD y el desarrollo sin disciplina no está en el documento inicial. Está en los artefactos intermedios: los ficheros Markdown que se generan entre el PRD y el código, y que actúan como el hilo conductor de todo el proceso. Cada cambio significativo genera al menos cuatro.

1. Propuestael «por qué». Describe el problema a resolver, el contexto actual y el impacto esperado. Es el momento de cuestionar si el cambio tiene sentido antes de invertir tiempo en diseñarlo.

2. Diseño técnicoel «cómo». Documenta las decisiones de arquitectura con sus alternativas descartadas. ¿Por qué esta librería y no aquella? ¿Por qué este patrón y no el otro? Es la parte más infrautilizada del proceso y la que más valor aporta a largo plazo: dentro de seis meses, alguien del equipo entenderá por qué se tomó esa decisión sin excavar en el historial de commits.

3. Especificacionesel «qué exactamente». Requisitos formales en formato WHEN/THEN. Cada uno es un criterio de aceptación y, potencialmente, un caso de test. Sin ambigüedad. Sin margen para interpretaciones.

4. Tareasel desglose ejecutable. La especificación traducida a unidades de trabajo atómicas con checkbox. Cada tarea es completable en minutos, no en horas. Cuando el agente trabaja sobre tareas atómicas, el output es predecible y verificable.

Estos artefactos no son documentación que se escribe después del desarrollo. Son el proceso mismo. Y esa diferencia lo cambia todo.

Cómo el SDD estructura todo el ciclo de vida

Diseño y maquetación

Cuando el diseñador entrega una captura o un Figma, el primer paso no es abrir el editor. Es generar la propuesta: ¿qué entidades implica este diseño? ¿Qué estados tiene cada componente? ¿Qué reglas de negocio están implícitas en los flujos? Con SDD, ese análisis queda escrito en un fichero Markdown antes de que el agente genere una sola línea de código. El diseñador y el desarrollador se ponen de acuerdo sobre el modelo, no sobre el pixel.

Desarrollo backend

El diseño técnico de cada endpoint documenta el contrato de la API antes de implementarla: nombre, método, parámetros, respuesta esperada, códigos de error. Ese contrato es exactamente lo que necesita el agente de backend para implementar sin adivinar, y exactamente lo que necesita el frontend para construir sus mocks sin esperar. El resultado: backend y frontend pueden desarrollarse en paralelo sobre la misma especificación. Cuando llega el momento de conectarlos, las discrepancias son mínimas porque ambos partieron del mismo documento.

Desarrollo frontend

El componente más complejo de validar en frontend es el comportamiento: cuándo está deshabilitado un botón, qué pasa si la llamada falla, cómo se comporta el formulario ante entradas inválidas. Las specs en formato WHEN/THEN definen exactamente esos casos antes de que el componente exista. Cuando el agente implementa el componente, las specs son su guía. Cuando otro agente genera los tests, las specs son su fuente de verdad. No hay interpretación. No hay suposiciones.

Testing

Aquí es donde el SDD se amortiza de la forma más visible. Los escenarios WHEN/THEN de las especificaciones son, literalmente, casos de test. La cobertura no es una métrica que se persigue al final del desarrollo: es una consecuencia natural del proceso. En el proyecto recientemente desarrollado —descrito con detalle en el artículo anterior de esta serie— 88 tests de backend y 1.035 tests de frontend no nacieron de una decisión de «vamos a escribir tests». Nacieron de especificaciones que definían los criterios de aceptación de cada funcionalidad. Los tests fueron la traducción directa de esas specs al lenguaje de la máquina.

Documentación y cierre de fase

El último artefacto del ciclo es la documentación de lo que se ha construido. No lo que se planeó construir: lo que realmente se construyó, incluyendo las decisiones que cambiaron sobre la marcha y por qué. Ese documento de cierre es lo que permite verificar que los objetivos de la fase se han cumplido, es la base para el onboarding de cualquier persona nueva y es la fuente de verdad para el agente en la siguiente fase.

La documentación generada tras cada fase no es un trámite. Es la memoria del proyecto. Sin ella, cada nueva fase empieza desde cero.

BMAD vs OpenSpec: cuándo usar cada uno

La elección del framework depende principalmente del tamaño del proyecto y de la tolerancia al proceso formal del equipo.

BMAD OpenSpec
Ideal para Proyectos grandes y complejos Proyectos medianos o equipos ágiles
Modelo Multi-agente (arquitecto, analista, dev, QA) Agente único con flujo secuencial
Setup 20-30 minutos, varios ficheros de configuración npm install -g openspec, listo
Tamaño de specs Exhaustivo (800+ líneas por épica) Conciso (~250 líneas por cambio)
Flexibilidad Fases rígidas y bien definidas Cualquier artefacto modificable en cualquier momento
Curva de aprendizaje Pronunciada Suave
Mejor combinación Claude Code o Cursor en proyectos enterprise Cursor o cualquier IDE con IA

BMAD brilla cuando la complejidad del proyecto justifica el overhead: sistemas con muchas integraciones, equipos distribuidos, requisitos regulatorios que obligan a tener trazabilidad completa de las decisiones. OpenSpec brilla cuando necesitas rigor sin fricción: el flujo propuesta → diseño → specs → tareas cubre el 90% de los casos con el 20% del esfuerzo de configuración, y su diseño para proyectos existentes —no solo para arranques desde cero— lo hace especialmente útil en el día a día de un equipo que ya tiene una base de código en marcha.

Lo que de verdad aporta tener un procedimiento

Más allá de las herramientas concretas, el SDD aporta algo que ningún framework puede darte por sí solo: un procedimiento compartido. Un conjunto de pasos que todo el equipo conoce, en el que cualquier persona puede incorporarse en cualquier punto y entender qué está pasando y por qué. Sin un procedimiento, la IA produce código más rápido de lo que el equipo puede verificar que es correcto. Con un procedimiento, cada línea de código tiene una especificación detrás que la justifica y un criterio de aceptación que la valida.

La diferencia no se nota en la primera semana. Se nota en la semana doce, cuando hay que modificar algo que se construyó en la semana dos y resulta que alguien escribió exactamente por qué se hizo así.

Las especificaciones son la diferencia entre un proyecto que crece de forma controlada y uno que crece de forma orgánica. Lo orgánico es bonito en los jardines. En el software, es deuda técnica.

¿Aplicaís alguna variante de SDD en vuestros proyectos? ¿Qué habéis encontrado que funciona y qué no? Lo leemos en los comentarios.

Por Luis Miguel Martín

Trabajo como Jefe de Equipo de Desarrollo en Vitaly. Soy un apasionado del desarrollo front y el UX, enamorado de la filosofía DevOps, que monta en bicicleta... Puedes seguirme en Linkedin o Strava

Deja un comentario