← Back to course

Spec Driven Development

IMG_2842.jpeg

🚀 1. ¿Qué es Spec-Driven Development?

Spec-Driven Development (SDD) es un enfoque donde:

📋 La especificación es la fuente de verdad
💻 El código es una implementación de esa especificación

👉 Primero defines qué debe hacer el sistema (spec)
👉 Luego usas AI (y código) para construirlo


⚔️ 2. ¿Por qué SDD en un mundo AI?

Sin SDD:

  • ❌ Prompts vagos

  • ❌ Código inconsistente

  • ❌ Mucho retrabajo

Con SDD:

  • ✅ Prompts claros

  • ✅ AI más precisa

  • ✅ Desarrollo más rápido

  • ✅ Mejor calidad

👉 La IA funciona mejor con claridad + estructura


🧩 3. Componentes de una buena Spec

Una spec efectiva incluye:

1. 🧠 Contexto

  • ¿Qué problema resolvemos?

  • ¿Para quién?


2. 🎯 Feature / User Story

“Como [usuario], quiero [acción] para [beneficio]”

Ejemplo:

Como usuario, quiero iniciar sesión para acceder a mi cuenta


3. ✅ Criterios de aceptación

  • Login con email/password

  • Validación de errores

  • Retorna token JWT


4. ⚙️ Reglas / Constraints

  • Usar NestJS

  • Validación con DTO

  • Seguridad básica


5. 📥 Inputs / Outputs

  • Input: email, password

  • Output: token + user


💻 4. Ejemplo de Spec (Real)

Feature: User Login

Context:
Users need to authenticate to access the platform.

User Story:
As a user, I want to log in using email and password.

Acceptance Criteria:
- User can log in with valid credentials
- Returns JWT token
- Shows error on invalid credentials

Constraints:
- Use NestJS
- Use DTO validation
- Follow clean architecture

Input:
{ email, password }

Output:
{ accessToken, user }

🤖 5. Cómo usar la Spec con AI

Prompt base:

You are a senior NestJS developer.

Based on this specification:
[PEGAR SPEC]

Generate:
- Controller
- Service
- DTO
- Validation
- Error handling

Follow best practices.

👉 Resultado:

  • Código estructurado

  • Menos errores

  • Más consistente


🔁 6. Workflow SDD + AI

Idea
→ Spec (definir claramente)
→ AI genera código
→ Validar
→ Iterar
→ Deploy

🧠 7. Buenas prácticas

✅ Haz esto:

  • Especifica TODO lo importante

  • Usa lenguaje claro

  • Divide features en partes pequeñas

  • Itera sobre la spec


❌ Evita esto:

  • Specs vagas

  • “Haz un sistema de login”

  • Sin criterios de aceptación

  • Sin constraints


⚠️ 8. Errores comunes

  • ❌ Saltar directo al código

  • ❌ No validar outputs

  • ❌ No definir inputs

  • ❌ No pensar en edge cases


🧪 9. Ejercicio práctico

🛠️ Task:

Crear una spec para:

👉 “Task Manager API”

Incluye:

  • Crear tarea

  • Marcar como completada

  • Eliminar tarea


Paso 2:

Usa AI para generar el código a partir de tu spec


Reflexión:

  • ¿Qué tan clara fue tu spec?

  • ¿Qué mejoraría?

  • ¿Qué cambió en el resultado?


🧩 10. Mental Model Shift

Antes:

“Empiezo a codear y veo qué pasa”

Ahora:

“Defino exactamente qué quiero → luego lo construyo”


🏁 Conclusión

La calidad del software depende de la calidad de la especificación.

En AI-native development:
👉 La spec es tu nuevo código base