Probar gratis
6 min lectura Guide 141 of 877

Creando Historias Usuario Efectivas con Criterios Aceptación

Historias usuario deben comunicar qué necesitan usuarios y por qué, permitiendo equipos desarrollo implementar soluciones mientras testers verifican que se construyó lo correcto. Historias mal escritas crean confusión, retrabajo, y features entregadas que fallan el objetivo. Historias claras con criterios aceptación precisos eliminan ambigüedad y aceleran entrega.

Fundamentos Historia Usuario

El Formato Estándar

ESTRUCTURA HISTORIA USUARIO:
┌─────────────────────────────────────────────────────────────┐
│ ANATOMÍA BUENA HISTORIA USUARIO                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ FORMATO CLÁSICO:                                            │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Como [tipo de usuario]                                  ││
│ │ Quiero [alguna capacidad]                               ││
│ │ Para que [valor negocio/beneficio]                      ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ POR QUÉ IMPORTA CADA PARTE:                                 │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ "Como [usuario]":                                       ││
│ │ • Clarifica perspectiva (admin ≠ cliente)               ││
│ │ • Habilita empatía durante implementación               ││
│ │ • Ayuda identificar edge cases diferentes usuarios      ││
│ │                                                         ││
│ │ "Quiero [capacidad]":                                   ││
│ │ • Describe necesidad, no solución                       ││
│ │ • Permite implementación creativa                       ││
│ │ • Enfoca en resultado, no mecanismo                     ││
│ │                                                         ││
│ │ "Para que [beneficio]":                                 ││
│ │ • Explica POR QUÉ (frecuentemente olvidado)             ││
│ │ • Habilita mejores soluciones                           ││
│ │ • Ayuda discusiones priorización                        ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ EJEMPLOS BUENOS vs MALOS:                                   │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ ❌ Malo: "Agregar botón exportar a página reportes"     ││
│ │ (Especifica solución, sin usuario, sin por qué)         ││
│ │                                                         ││
│ │ ✅ Bueno: "Como gerente marketing, quiero exportar      ││
│ │    reportes campaña a CSV para que pueda analizar       ││
│ │    rendimiento en nuestra herramienta BI sin copiar     ││
│ │    manualmente"                                         ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
└─────────────────────────────────────────────────────────────┘

Escribiendo Criterios Aceptación

Definiendo "Terminado" Precisamente

PATRONES CRITERIOS ACEPTACIÓN:
┌─────────────────────────────────────────────────────────────┐
│ FORMATO DADO-CUANDO-ENTONCES                                │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ ESTRUCTURA:                                                 │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Dado [precondición/contexto]                            ││
│ │ Cuando [acción/trigger]                                 ││
│ │ Entonces [resultado esperado]                           ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ EJEMPLO PARA HISTORIA EXPORTAR:                             │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Criterio 1: Exportación básica                          ││
│ │ Dado que estoy viendo un reporte campaña                ││
│ │ Cuando hago clic "Exportar a CSV"                       ││
│ │ Entonces un archivo CSV descarga con todos datos visibles││
│ │                                                         ││
│ │ Criterio 2: Manejo rango fechas                         ││
│ │ Dado que filtré reporte por rango fechas                ││
│ │ Cuando exporto a CSV                                    ││
│ │ Entonces solo datos filtrados están incluidos           ││
│ │                                                         ││
│ │ Criterio 3: Manejo datos grandes                        ││
│ │ Dado que reporte tiene más de 10,000 filas              ││
│ │ Cuando exporto a CSV                                    ││
│ │ Entonces recibo link por email en vez de descarga directa││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
└─────────────────────────────────────────────────────────────┘

Templates Tareas GitScrum

Estandarizando Estructura Historia

SETUP TEMPLATE TAREA:
┌─────────────────────────────────────────────────────────────┐
│ CREANDO TEMPLATES HISTORIA REUTILIZABLES                    │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ TEMPLATE HISTORIA USUARIO:                                  │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Título: [Feature] - [Descripción breve]                 ││
│ │                                                         ││
│ │ Descripción:                                            ││
│ │ ## Historia Usuario                                     ││
│ │ Como [tipo usuario]                                     ││
│ │ Quiero [capacidad]                                      ││
│ │ Para que [beneficio]                                    ││
│ │                                                         ││
│ │ ## Contexto                                             ││
│ │ [Cualquier contexto que ayude entendimiento]            ││
│ │                                                         ││
│ │ ## Criterios Aceptación                                 ││
│ │ ### Criterio 1: [Nombre]                                ││
│ │ Dado [contexto]                                         ││
│ │ Cuando [acción]                                         ││
│ │ Entonces [resultado]                                    ││
│ │                                                         ││
│ │ ## Fuera de Scope                                       ││
│ │ [Explícitamente qué NO incluye esta historia]           ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ITEMS CHECKLIST:                                            │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Definición Terminado:                                   ││
│ │ ☐ Todos criterios aceptación cumplidos                  ││
│ │ ☐ Código revisado y aprobado                            ││
│ │ ☐ Tests unitarios escritos y pasando                    ││
│ │ ☐ Documentación actualizada                             ││
│ │ ☐ Sign-off QA recibido                                  ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
└─────────────────────────────────────────────────────────────┘

Dimensionando Historias

Haciendo Historias Trabajables

DIVIDIENDO HISTORIAS:
┌─────────────────────────────────────────────────────────────┐
│ DIMENSIONANDO HISTORIAS CORRECTAMENTE                       │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│ GUÍAS TAMAÑO:                                               │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Muy grande (Épica):                                     ││
│ │ • Toma más de un sprint                                 ││
│ │ • Tiene múltiples resultados usuario distintos          ││
│ │ • Contiene "y" en cláusula quiero                       ││
│ │                                                         ││
│ │ Tamaño correcto (Historia):                             ││
│ │ • Completable en 1-3 días                               ││
│ │ • Un solo resultado usuario                             ││
│ │ • Testeable independientemente                          ││
│ │                                                         ││
│ │ Muy pequeña (Tarea):                                    ││
│ │ • Sin valor usuario por sí misma                        ││
│ │ • Detalle implementación puro                           ││
│ │ • "Crear tabla base datos"                              ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ TÉCNICAS DIVISIÓN:                                          │
│ ┌─────────────────────────────────────────────────────────┐│
│ │ Por paso workflow:                                      ││
│ │ Épica: "Usuario puede gestionar perfil"                 ││
│ │ → Historia 1: Ver perfil                                ││
│ │ → Historia 2: Editar info básica                        ││
│ │ → Historia 3: Cambiar contraseña                        ││
│ │ → Historia 4: Subir avatar                              ││
│ │                                                         ││
│ │ Por operación (CRUD):                                   ││
│ │ Épica: "Admin gestiona usuarios"                        ││
│ │ → Historia 1: Crear usuario                             ││
│ │ → Historia 2: Ver lista usuarios                        ││
│ │ → Historia 3: Editar usuario                            ││
│ │ → Historia 4: Desactivar usuario                        ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
└─────────────────────────────────────────────────────────────┘

Soluciones Relacionadas