En el desarrollo ágil, la historia de usuario es un bloque fundamental para entregar valor al cliente. Estas descripciones concisas de la funcionalidad deseada capturan el ‘quién’, ‘qué’ y ‘por qué’ de una característica o requisito. Sin embargo, para asegurar que las historias de usuario sean tanto accionables como verificables, los equipos ágiles a menudo utilizan una técnica llamada ‘Give / When / Then’ (GWT) para los criterios de aceptación. Este método ayuda a definir el comportamiento esperado de una historia de usuario de manera clara y precisa.

¿Qué son los criterios de aceptación?
Los criterios de aceptación son condiciones o reglas que una historia de usuario debe cumplir para considerarse completa. Actúan como un puente entre la visión del propietario del producto y la implementación del equipo de desarrollo. En esencia, definen los límites y expectativas para cada historia de usuario. Sin criterios de aceptación bien definidos, una historia de usuario puede ser susceptible a interpretaciones, lo que lleva a malentendidos y posibles re-trabajos.
La estructura de los criterios de aceptación Give / When / Then
Give / When / Then es un formato para elaborar criterios de aceptación que se ha tomado del Desarrollo Dirigido por Comportamiento (BDD). Fomenta una forma más estructurada y comprensible de expresar el comportamiento deseado de una historia de usuario. El formato consta de tres partes:
- Dado: Esta sección describe el contexto inicial o estado del sistema. Establece el escenario para la situación que estás describiendo. En esencia, proporciona la información de fondo necesaria para comprender el escenario.
- Cuando: Esta sección representa la acción o evento que desencadena el comportamiento descrito en la historia de usuario. Es el evento específico que realiza el usuario o que ocurre dentro del sistema.
- Entonces: Esta sección describe el resultado o resultado esperado de la acción o evento descrito en la sección ‘Cuando’. Define lo que debería suceder como consecuencia de la acción, a menudo en términos de cambios observables en el sistema o aplicación.
Beneficios de los criterios de aceptación Give / When / Then
- Claridad: El formato GWT ofrece una forma estructurada y fácil de entender para expresar el comportamiento esperado de una historia de usuario. Esto reduce la ambigüedad y asegura que todos los miembros del equipo de desarrollo, incluidos desarrolladores, testers y propietarios del producto, tengan una comprensión clara de lo que debe hacerse.
- Verificabilidad: El formato se presta naturalmente a casos de prueba. Cada componente ‘Dado’, ‘Cuando’ y ‘Entonces’ puede traducirse en escenarios de prueba específicos, lo que facilita comprobar que la historia de usuario se ha implementado correctamente.
- Alineación: Los criterios de aceptación GWT fomentan la colaboración entre los miembros del equipo. Los propietarios del producto, desarrolladores y testers pueden trabajar juntos para definir y perfeccionar los criterios, asegurando que todos estén alineados respecto al alcance y expectativas de la historia.
Ejemplos de criterios de aceptación Give / When / Then
Consideremos un ejemplo sencillo para un sitio web de comercio electrónico:
Historia de usuario: Como cliente, quiero poder agregar artículos a mi carrito de compras para poder comprarlos más tarde.
Criterios de aceptación (GWT):
- Dado Estoy en la página del producto
- Cuando Hago clic en el botón ‘Agregar al carrito’ para un producto
- Entonces El producto debería agregarse a mi carrito de compras
- YEl ícono del carrito en la barra de navegación debería mostrar el recuento actualizado de artículos
- YDebería ver un mensaje de confirmación que indique la adición del producto al carrito
En este ejemplo, los criterios de aceptación proporcionan una comprensión clara de lo que se espera del cuento de usuario, lo que lo hace accionable y verificable.
Descripción del problema Estudio de caso:
Consideremos un estudio de caso para una aplicación popular de compartición de viajes como Uber. El problema actual es mejorar la experiencia del usuario al introducir una función que permita a los pasajeros programar viajes con fechas y horas específicas.
Cuentos de usuario con criterios de aceptación GWT:
Cuento de usuario 1: Programar un viaje con anticipación
Como pasajero, quiero poder programar un viaje para una fecha y hora específicas con anticipación, para que pueda planificar mejor mis viajes.
Criterios de aceptación (GWT):
- Dado queTengo la aplicación de compartición de viajes instalada y estoy conectado
- CuandoAbro la aplicación e ingreso mi destino, fecha y hora para el viaje
- EntoncesLa aplicación debería mostrar los conductores disponibles para la fecha y hora seleccionadas
- YDebería poder confirmar y programar el viaje
- YDebería recibir una notificación de confirmación con los detalles del viaje programado
Cuento de usuario 2: Editar o cancelar un viaje programado
Como pasajero, quiero tener la opción de editar o cancelar un viaje programado, en caso de que cambien mis planes.
Criterios de aceptación (GWT):
- Dado queTengo un viaje programado
- CuandoAbro la aplicación y navego hasta mis viajes programados
- EntoncesDebería ver una lista de mis próximos viajes programados
- YDebería poder seleccionar un viaje para editar la fecha y hora o cancelarlo
- YSi edito el viaje, la aplicación debería mostrar los conductores disponibles para la fecha y hora actualizadas
- YDebería recibir una notificación de confirmación por cualquier cambio realizado
Historia de usuario 3: Notificar a los conductores sobre los viajes programados
Como conductor, quiero recibir notificaciones cuando un pasajero programa un viaje conmigo, para que pueda planificar mi disponibilidad.
Criterios de aceptación (GWT):
- Dado queSoy un conductor activo con la aplicación de compartición de viajes abierta
- Cuandoun pasajero programa un viaje conmigo para una fecha y hora específicas
- EntoncesDebería recibir una notificación en tiempo real con los detalles del viaje programado
- YLa aplicación debería mostrar el viaje programado en mi panel de conductor
- YDebería poder aceptar o rechazar el viaje programado dentro de un plazo razonable
Historia de usuario 4: Proporcionar comentarios sobre los viajes programados
Como pasajero, quiero poder proporcionar comentarios y calificar a los conductores para los viajes programados, para ayudar a mantener la calidad del servicio.
Criterios de aceptación (GWT):
- Dado quehe completado un viaje programado
- Cuandoabro la aplicación después de que finalice el viaje
- Entoncesdebería tener la opción de calificar al conductor y proporcionar comentarios
- Yla calificación del conductor debería actualizarse según mis comentarios
- Ydebería recibir un mensaje de agradecimiento por proporcionar comentarios
Estas historias de usuario y sus criterios de aceptación asociados Give / When / Then abordan el problema de introducir una función de programación de viajes en una aplicación de compartición de viajes. Al seguir este enfoque estructurado, el equipo de desarrollo puede asegurar una comprensión clara de los requisitos y del comportamiento esperado de la nueva función, lo que finalmente conduce a una mejor experiencia de usuario.
Conclusión
Los criterios de aceptación Give / When / Then ofrecen un enfoque estructurado para definir el comportamiento esperado de las historias de usuario en el desarrollo ágil. Al dividir los criterios en tres secciones distintas – Dado, Cuando y Entonces – los equipos pueden lograr una mayor claridad, verificabilidad y alineación, lo que finalmente conduce a un desarrollo de producto más exitoso. Incorporar este formato en tu proceso ágil puede ayudar a tu equipo a entregar software de alta calidad que cumpla con las expectativas del usuario.











