Lección 51 de 61 · Módulo 07: 3/6
Metodología Nivel · intermedio

Cómo escribir features como specs ejecutables

Contexto · comportamiento esperado · casos edge · criterios de aceptación

Por qué te debe importar

Un spec de feature se escribe en 10–20 minutos y ahorra horas de iteración. La plantilla no es misteriosa: contexto, comportamiento, edge cases, criterios de aceptación. Escribir los cuatro bloques en orden revela decisiones que no habías tomado conscientemente.

Idea central

Plantilla de 4 bloques + orden disciplinado = spec que el agente ejecuta en un shot.

La plantilla completa

`md

[Feature Name]

Contexto

¿Dónde vive en el sistema? ¿Qué supuestos? ¿Por qué existe?

(~3 líneas)

Comportamiento esperado

Input

¿Qué recibe? Tipos, validaciones.

Output

¿Qué retorna? Formato, status codes.

Efectos secundarios

¿Qué cambia en DB, queue, cache, otros servicios?

Casos edge

  • Si X falla, ¿qué pasa?
  • Si Y está vacío, ¿qué pasa?
  • Si Z es concurrente, ¿qué pasa?

(3–6 items, listas)

Criterios de aceptación

  • [condición verificable]
  • [condición verificable]

...

(4–8 items, binarios)

`

El orden importa

Escribir en orden revela huecos:

  • Contexto te obliga a entender por qué.
  • Comportamiento te obliga a tomar decisiones explícitas.
  • Edge cases te saca las asunciones escondidas.
  • Criterios de aceptación te obliga a definir "hecho".

Si empiezas por criterios de aceptación antes del contexto, vas a escribir tests para algo que no entiendes bien.

El tamaño correcto

Feature chico: 10 líneas.

Feature mediano: 20–30.

Feature grande: hasta 50.

Más de 50 → probablemente son dos features mezclados. Divide.

Ejemplos en escalera
✓ Checkpoint

Toma un feature pendiente. Escribe su spec con los 4 bloques en orden. Cronometra. ¿Cuánto te tomó? Si > 30 min, el feature es más grande de lo que pensabas.

Resumen — tres cosas que deberías recordar
  1. Plantilla: contexto → comportamiento → edge cases → criterios.
  2. El orden revela decisiones implícitas.
  3. Feature > 50 líneas de spec → divide.
Qué sigue
Lección 52 · Spec Driven Development Qué hace que un spec produzca código funcional vs. loops infinitos → Continuar