Probar gratis
8 min lectura Guide 791 of 877

Escritura de User Stories

Las user stories son la base del desarrollo ágil. GitScrum proporciona campos estructurados para historias, criterios de aceptación y puntos de historia para ayudar a los equipos a gestionar su backlog efectivamente.

Estructura de Story

Plantilla Básica

ANATOMÍA DE USER STORY:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ PLANTILLA ESTÁNDAR:                                         │
│ ────────────────────                                        │
│                                                             │
│ ┌─────────────────────────────────────────────────────────┐│
│ │                                                         ││
│ │  Como [tipo de usuario]                                 ││
│ │                                                         ││
│ │  Quiero [acción o capacidad]                           ││
│ │                                                         ││
│ │  Para que [beneficio o valor]                          ││
│ │                                                         ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ EJEMPLO REAL:                                               │
│                                                             │
│ ┌─────────────────────────────────────────────────────────┐│
│ │                                                         ││
│ │  Como líder de equipo de ventas                         ││
│ │                                                         ││
│ │  Quiero ver el progreso semanal de mi equipo           ││
│ │  en un dashboard                                        ││
│ │                                                         ││
│ │  Para que pueda identificar quién necesita             ││
│ │  coaching y ajustar objetivos                          ││
│ │                                                         ││
│ └─────────────────────────────────────────────────────────┘│
│                                                             │
│ POR QUÉ CADA PARTE IMPORTA:                                 │
│                                                             │
│ "Como [usuario]"  → Define quién se beneficia             │
│                    → Crea empatía                          │
│                    → Aclara la perspectiva                 │
│                                                             │
│ "Quiero [acción]" → El resultado observable               │
│                    → Lo que pueden hacer                   │
│                    → No cómo se construye                  │
│                                                             │
│ "Para que [valor]" → Justificación de negocio             │
│                     → Impulsa priorización                │
│                     → Define el éxito                      │
└─────────────────────────────────────────────────────────────┘

Estructura Completa de Historia

CARD DE USER STORY COMPLETA:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ TÍTULO: Exportar Datos de Ventas                           │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ HISTORIA:                                                   │
│ Como analista de ventas,                                    │
│ Quiero exportar datos de ventas a Excel,                   │
│ Para que pueda crear reportes personalizados               │
│ para mi equipo ejecutivo.                                  │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ CRITERIOS DE ACEPTACIÓN:                                    │
│                                                             │
│ ☐ AC1: Puede exportar datos del último mes               │
│   Given estoy en la página de ventas                       │
│   When hago clic en "Exportar a Excel"                     │
│   Then se descarga un archivo .xlsx                        │
│   And contiene todas las columnas visibles                 │
│                                                             │
│ ☐ AC2: Puede seleccionar rango de fechas                 │
│   Given selecciono fechas personalizadas                   │
│   When exporto datos                                       │
│   Then el archivo solo contiene datos del rango           │
│                                                             │
│ ☐ AC3: Se manejan conjuntos de datos grandes             │
│   Given hay más de 10,000 filas                           │
│   When exporto                                             │
│   Then la exportación se completa en menos de 30 segundos│
│   And todos los datos están incluidos                     │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ ESTIMACIÓN: 5 Story Points                                 │
│                                                             │
│ ETIQUETAS: exportar, ventas, reportes                      │
│                                                             │
│ PRIORIDAD: Alta                                            │
│                                                             │
│ NOTAS:                                                      │
│ - Solicitado por 12 usuarios en el último mes             │
│ - Similar a exportación de marketing existente            │
└─────────────────────────────────────────────────────────────┘

Criterios INVEST

Los Seis Criterios

LISTA DE VERIFICACIÓN INVEST:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ I - INDEPENDIENTE                                           │
│ ☐ ¿Puede desarrollarse sin esperar otra historia?         │
│ ☐ ¿El orden de desarrollo es flexible?                    │
│ ☐ ¿Sin dependencias duras de bloqueo?                     │
│                                                             │
│ N - NEGOCIABLE                                              │
│ ☐ ¿Los detalles pueden discutirse con el equipo?          │
│ ☐ ¿La historia no está sobre-especificada?                │
│ ☐ ¿La implementación es flexible?                         │
│                                                             │
│ V - VALIOSA                                                 │
│ ☐ ¿Entrega valor al usuario o al negocio?                 │
│ ☐ ¿El "para que" es claro?                                │
│ ☐ ¿El stakeholder lo quiere?                              │
│                                                             │
│ E - ESTIMABLE                                               │
│ ☐ ¿El equipo entiende lo suficiente para estimar?         │
│ ☐ ¿El alcance está claro?                                 │
│ ☐ ¿No muy vaga?                                           │
│                                                             │
│ S - PEQUEÑA                                                 │
│ ☐ ¿Cabe en un sprint?                                     │
│ ☐ ¿Es menor a 8 story points?                             │
│ ☐ ¿Se puede completar en días?                            │
│                                                             │
│ T - TESTEABLE                                               │
│ ☐ ¿Tiene criterios de aceptación claros?                  │
│ ☐ ¿Se puede demostrar como hecha?                         │
│ ☐ ¿Se puede escribir como test?                           │
│                                                             │
│ PUNTUACIÓN: ___/6 criterios cumplidos                      │
│                                                             │
│ GUÍA: 5-6 = Lista para sprint                             │
│       3-4 = Necesita refinamiento                         │
│       0-2 = Necesita reescritura significativa            │
└─────────────────────────────────────────────────────────────┘

Criterios de Aceptación

Formato Gherkin

ESCRIBIENDO BUENOS CRITERIOS DE ACEPTACIÓN:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ SINTAXIS GHERKIN:                                           │
│ ─────────────────                                           │
│                                                             │
│ Feature: [Nombre de la Feature]                            │
│   Scenario: [Escenario Específico]                         │
│     Given [precondición]                                   │
│     And [otra precondición]                                │
│     When [acción]                                          │
│     And [otra acción]                                      │
│     Then [resultado esperado]                              │
│     And [otro resultado]                                   │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ EJEMPLO: Recuperación de Contraseña                        │
│                                                             │
│ Feature: Recuperación de Contraseña                        │
│                                                             │
│   Scenario: Solicitud exitosa de reset                     │
│     Given soy usuario registrado                           │
│     And estoy en la página de login                        │
│     When hago clic en "Olvidé mi contraseña"              │
│     And ingreso mi email registrado                        │
│     And hago clic en "Enviar link de reset"               │
│     Then veo confirmación de email enviado                │
│     And recibo email con enlace de reset                  │
│                                                             │
│   Scenario: Email no registrado                            │
│     Given estoy en la página de contraseña olvidada       │
│     When ingreso un email no registrado                    │
│     And hago clic en "Enviar link de reset"               │
│     Then veo el mismo mensaje de confirmación             │
│     (Por seguridad - no revelar si email existe)          │
│                                                             │
│   Scenario: El enlace de reset expira                      │
│     Given he solicitado reset de contraseña               │
│     When hago clic en el enlace después de 24 horas       │
│     Then veo mensaje de enlace expirado                   │
│     And puedo solicitar un nuevo enlace                   │
└─────────────────────────────────────────────────────────────┘

Cuántos ACs

GUÍA DE CRITERIOS DE ACEPTACIÓN:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ NÚMERO IDEAL DE ACs:                                        │
│                                                             │
│ 3-7 criterios por historia                                 │
│                                                             │
│ Menos de 3:                                                │
│ • Probablemente falta casos edge                          │
│ • Agregar manejo de errores, validación                   │
│                                                             │
│ Más de 7:                                                  │
│ • Historia probablemente muy grande                       │
│ • Considerar dividir en múltiples historias               │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ COBERTURA A INCLUIR:                                        │
│                                                             │
│ ✅ Happy path (caso de éxito)                             │
│ ✅ Estados de error                                        │
│ ✅ Casos edge                                              │
│ ✅ Validación                                              │
│ ✅ Permisos (si aplica)                                    │
│ ✅ Requisitos de rendimiento (si críticos)                │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ EJEMPLO DE CONTEO:                                          │
│                                                             │
│ Historia: Feature de Login                                  │
│                                                             │
│ 1. Login exitoso con credenciales válidas                 │
│ 2. Manejo de contraseña incorrecta                        │
│ 3. Manejo de email no encontrado                          │
│ 4. Bloqueo de cuenta después de 5 intentos fallidos       │
│ 5. Opción de "Recordarme"                                 │
│ 6. Redirección a página original después de login         │
│                                                             │
│ Total: 6 ACs - ¡buen tamaño!                              │
└─────────────────────────────────────────────────────────────┘

Técnicas de División

Cuándo Dividir

DIVIDIENDO HISTORIAS GRANDES:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ SEÑALES DE QUE UNA HISTORIA ES MUY GRANDE:                 │
│                                                             │
│ ⚠️ Estimada en 13+ puntos                                 │
│ ⚠️ Toma más de medio sprint                               │
│ ⚠️ Tiene 10+ criterios de aceptación                      │
│ ⚠️ El equipo no puede ponerse de acuerdo en el tamaño     │
│ ⚠️ Muchos "y" en la descripción                           │
│                                                             │
│ ─────────────────────────────────────────────────────────── │
│                                                             │
│ PATRONES DE DIVISIÓN:                                       │
│                                                             │
│ POR OPERACIÓN (CRUD):                                       │
│ "Gestionar usuarios" →                                     │
│   • Crear usuario                                          │
│   • Listar usuarios                                        │
│   • Editar usuario                                         │
│   • Eliminar usuario                                       │
│                                                             │
│ POR PERSONA:                                                │
│ "Dashboard" →                                              │
│   • Dashboard para admin                                   │
│   • Dashboard para manager                                 │
│   • Dashboard para usuario                                 │
│                                                             │
│ POR VARIACIÓN DE DATOS:                                     │
│ "Exportar datos" →                                         │
│   • Exportar a CSV                                         │
│   • Exportar a Excel                                       │
│   • Exportar a PDF                                         │
│                                                             │
│ POR COMPLEJIDAD:                                            │
│ "Búsqueda" →                                               │
│   • Búsqueda básica por nombre                            │
│   • Agregar filtros                                        │
│   • Agregar ordenamiento                                   │
│   • Agregar búsqueda avanzada                             │
└─────────────────────────────────────────────────────────────┘

Soluciones Relacionadas