¿Alguna vez has descubierto durante el proceso de desarrollo de Vibe Coding que el código producido por la IA está lleno de lagunas lógicas, haciéndote dudar de tu vida mientras lo arreglas?
En el desarrollo tradicional, Spec es justicia. Pero cuando colaboramos con la IA, somos más como “directores”.
Para hacer que ese actor de IA talentoso pero ocasionalmente “loco” haga un buen espectáculo, necesitas dos herramientas poderosas: EARS (Lógica del Guión) y BDD (Fotogramas de Aceptación).
EARS: Convirtiendo Requisitos en “Bloques Lógicos”
Seguro que has conocido a este tipo de PM, escribiendo requisitos como: “El sistema necesita ser más fácil de usar”, “La velocidad de procesamiento debe ser rápida”. Esto es un desastre al escribir código.
EARS (Easy Approach to Requirements Syntax) en pocas palabras, es transformar estos “adjetivos vagos” en “instrucciones precisas”.
EARS es como Prompt Engineering de primer nivel, obligándote a hablar en lógica cerrada. Los 5 patrones de oraciones principales te permiten “bloquear” los límites de los requisitos en cualquier momento:
| Tipo | Descripción |
|---|---|
| Ubiquitous (General) | El sistema debe... (Como respirar, debe obedecerse en todo momento). |
| Event-driven (Impulsado por eventos) | Cuando [ocurre un evento], el sistema debe.... |
| Unwanted Behavior (Comportamiento no deseado) | Si [pasa algo malo], el sistema debe... (Esta es el alma del Manejo de Errores). |
| State-driven (Impulsado por estado) | Mientras [en un estado específico], el sistema debe.... |
| Optional Feature (Característica opcional) | Donde [se incluye la característica], el sistema debe.... |
EARS te ayuda a establecer reglas estrictas
Haciendo imposible que la IA “hable tonterías con cara seria” lógicamente.
BDD: Convirtiendo Pruebas en “Guiones de Película”
Si EARS es un contrato riguroso, entonces BDD (Behavior Driven Development) es una “historia de carne y hueso”. No prueba a == b, prueba “lo que el usuario siente que ha sucedido”.
La sintaxis utilizada por BDD se llama Gherkin (Pepinillo, ¡debe ser crujiente y refrescante!), y la trilogía central es la siguiente:
| Sintaxis | Descripción |
|---|---|
| 🎬 Given (Fondo) | Estableciendo la escena antes de rodar (ej.: Tener 100 dólares en el bolsillo). |
| ⚡ When (Acción) | El momento en que el director grita Acción (ej.: Pidió un calamar picante). |
| ✅ Then (Resultado) | El final visto por la audiencia (ej.: Recibió un calamar fragante, la billetera tiene 60 dólares menos). |
A través de este método de “narración”, incluso los no ingenieros pueden comunicarse con nosotros, y la IA también puede entender tu verdadera intención a través de estos “ejemplos reales”.
¿Cuál es la diferencia entre EARS vs BDD?
Estos dos realizan sus propios deberes, y combinarlos es verdaderamente “invencible”.
| Característica | EARS (Sintaxis de Requisito) | BDD (Guiado por Comportamiento) |
|---|---|---|
| Espíritu Central | Definición Precisa (Eliminar Ambigüedad) | Consenso y Verificación (Narración) |
| Como escribir… | Cláusulas Legales | Guiones de Película |
| Audiencia Principal | PM, Arquitecto, Creador de Reglas | Ingeniero, QA, Asistente de IA |
| Punto de Dolor Resuelto | “¡Lo que hiciste no es lo que pensé!” | “¡La lógica es correcta, pero es inutilizable!” |
Simplemente: EARS te ayuda a establecer las reglas, BDD te ayuda a verificar los resultados.
Aplicación Avanzada de EARS: Vibe Coding en Acción
Metemos directamente las reglas EARS y los guiones BDD en el Prompt para que la IA desarrolle.
Puedes intentar dar instrucciones como esta al desarrollar “Deducción de Monedero Electrónico”:
# Tarea: Por favor ayúdame a implementar la API de deducción
## Lógica EARS (Por favor seguir estrictamente):
- [Event-driven]: Cuando se recibe una solicitud, el saldo debe ser verificado.
- [Unwanted]: Si el saldo es insuficiente, devolver el código de error 400 'INSUFFICIENT_FUNDS'.
- [State-driven]: Mientras la billetera está en estado 'Frozen', rechazar toda deducción.
## Guión de Aceptación BDD (Para pruebas Jest):
Scenario: Deducción fallida debido a fondos insuficientes
Given El saldo del usuario es 50 dólares
When Se recibe solicitud para deducir 100 dólares
Then La API debería devolver HTTP 400
And El código de error debería ser 'INSUFFICIENT_FUNDS'
¡Intenta lanzar esto a la IA, y el Código generado no se desviará demasiado del objetivo!
Conclusión
Ya sea en el desarrollo diario o en Vibe Coding, EARS y BDD son artefactos para mejorar la eficiencia.
EARS te ayuda a establecer reglas estrictas, BDD te ayuda a confirmar los resultados de la actuación.