Cómo escribir features como specs ejecutables
Contexto · comportamiento esperado · casos edge · criterios de aceptación
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.
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.
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.
- Plantilla: contexto → comportamiento → edge cases → criterios.
- El orden revela decisiones implícitas.
- Feature > 50 líneas de spec → divide.