Introducción a EARS

Por: Artiko
earsintroduccionalistair-mavinrolls-royce

Introducción a EARS

El problema: el lenguaje natural sin estructura

Los requisitos son contratos. Si un requisito dice “el sistema debe ser rápido”, ¿qué significa? ¿Rápido respecto a qué? ¿Bajo qué carga? ¿Medido cómo? Esa frase no es un contrato: es un deseo.

La mayoría de los problemas graves en proyectos de software empiezan en la fase de requisitos:

En proyectos pequeños esto se compensa con conversaciones. En proyectos grandes, distribuidos, con auditorías o con agentes de IA implementando código, la ambigüedad se traduce en defectos.

El origen: Rolls-Royce y los motores aeronáuticos

EARS nació en Rolls-Royce alrededor de 2009, cuando Alistair Mavin y su equipo enfrentaban un problema concreto: escribir requisitos para sistemas de control de motores aeronáuticos donde un defecto puede costar vidas.

Probaron lenguajes formales (Z, VDM), modelado UML, especificaciones controladas. Todos requerían entrenamiento extenso y los stakeholders no técnicos no podían leerlos. La pregunta de Mavin fue: ¿podemos imponer estructura sin abandonar el lenguaje natural?

La respuesta fue EARS: cinco plantillas que cubren los cinco tipos de comportamiento posibles en un sistema. Cualquier persona puede aprenderlas en una tarde.

El estudio publicado mostró que en Rolls-Royce los requisitos escritos con EARS:

EARS hoy se usa en aeronáutica, defensa, automotriz, médico y fintech. Y crece en software comercial, especialmente en equipos que trabajan con agentes de IA.

Qué es y qué no es EARS

EARS es:

EARS no es:

La forma genérica

Todo requisito EARS sigue esta estructura abstracta:

<precondiciones opcionales> <disparador opcional> the <sistema> shall <respuesta>

Por ejemplo:

When the user submits the login form, the system shall validate the credentials against the identity provider within 500 ms.

Notá tres elementos clave:

  1. Disparador: When the user submits the login form
  2. Sujeto: the system
  3. Respuesta verificable: validate the credentials against the identity provider within 500 ms

No hay ambigüedad: si pasan 600 ms, el requisito falló.

Los cinco patrones, en una línea

Cada patrón se aplica a una situación distinta:

Estos cinco patrones cubren — según la investigación de Mavin — la totalidad de los comportamientos que un sistema puede exhibir.

Lectura del capítulo

EARS no resuelve mágicamente los problemas de requisitos. Sigue requiriendo dominio del problema, claridad mental y revisión por pares. Pero al imponer una plantilla, fuerza al autor a:

Esa disciplina, en sí misma, elimina la mayoría de los defectos de requisitos.

En el siguiente capítulo cubrimos en profundidad los cinco patrones con ejemplos completos.