Probar gratis
6 min lectura Guide 743 of 877

Escribiendo Mejores User Stories

Las buenas user stories comunican intención claramente. GitScrum proporciona templates y campos que ayudan a los equipos a escribir stories con el nivel correcto de detalle.

Fundamentos de User Stories

Formato de Story

ESTRUCTURA DE USER STORY:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│ FORMATO CLÁSICO:                                            │
│                                                             │
│ Como [tipo de usuario]                                     │
│ Quiero [alguna meta]                                       │
│ Para que [alguna razón/beneficio]                          │
│                                                             │
│ EJEMPLO:                                                    │
│                                                             │
│ Como project manager                                       │
│ Quiero exportar reportes a PDF                             │
│ Para que pueda compartir progreso con stakeholders         │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Anatomía Completa

USER STORY COMPLETA
═══════════════════

┌─────────────────────────────────────────────────────────────┐
│  TÍTULO: Exportar reportes a PDF                           │
│                                                             │
│  STORY:                                                     │
│  Como project manager                                       │
│  Quiero exportar reportes a PDF                            │
│  Para que pueda compartir progreso con stakeholders        │
│                                                             │
│  CRITERIOS DE ACEPTACIÓN:                                   │
│  ✅ Usuario puede seleccionar reporte para exportar        │
│  ✅ PDF incluye todos los datos visibles en pantalla       │
│  ✅ PDF tiene formato profesional con logo                 │
│  ✅ Download comienza en menos de 5 segundos               │
│                                                             │
│  NOTAS:                                                     │
│  - Mockup adjunto                                          │
│  - Revisar con equipo de branding                          │
│                                                             │
│  ESTIMACIÓN: 5 puntos                                       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Criterio INVEST

CHECKLIST INVEST
════════════════

I - INDEPENDIENTE
┌─────────────────────────────────────────────────────────────┐
│  ✅ La story puede desarrollarse sin depender de otras     │
│  ❌ "Primero necesitamos terminar la story de login"       │
└─────────────────────────────────────────────────────────────┘

N - NEGOCIABLE
┌─────────────────────────────────────────────────────────────┐
│  ✅ Detalles de implementación pueden discutirse           │
│  ❌ "Debe usar exactamente estos colores y posiciones"     │
└─────────────────────────────────────────────────────────────┘

V - VALIOSA
┌─────────────────────────────────────────────────────────────┐
│  ✅ Entrega valor al usuario o negocio                     │
│  ❌ "Refactorizar código interno" (sin beneficio visible)  │
└─────────────────────────────────────────────────────────────┘

E - ESTIMABLE
┌─────────────────────────────────────────────────────────────┐
│  ✅ Equipo puede estimar el esfuerzo                       │
│  ❌ "Integrar con el sistema legacy" (sin detalles)        │
└─────────────────────────────────────────────────────────────┘

S - PEQUEÑA (Small)
┌─────────────────────────────────────────────────────────────┐
│  ✅ Cabe en un sprint                                      │
│  ❌ Epic completo sin dividir                              │
└─────────────────────────────────────────────────────────────┘

T - TESTEABLE
┌─────────────────────────────────────────────────────────────┐
│  ✅ Se puede verificar si está completada                  │
│  ❌ "Mejorar el rendimiento" (sin métrica específica)      │
└─────────────────────────────────────────────────────────────┘

Errores Comunes

ANTI-PATRONES DE USER STORIES
═════════════════════════════

❌ DEMASIADO VAGA:
┌─────────────────────────────────────────────────────────────┐
│  "Como usuario, quiero que el sistema sea más rápido"      │
│                                                             │
│  PROBLEMA: No hay criterio de éxito medible                │
│                                                             │
│  ✅ MEJOR:                                                  │
│  "Como usuario, quiero que la página de dashboard          │
│   cargue en menos de 2 segundos para que no                │
│   pierda tiempo esperando"                                  │
└─────────────────────────────────────────────────────────────┘

❌ DEMASIADO TÉCNICA:
┌─────────────────────────────────────────────────────────────┐
│  "Como desarrollador, quiero migrar a PostgreSQL 15"       │
│                                                             │
│  PROBLEMA: No expresa valor para usuario                   │
│                                                             │
│  ✅ MEJOR:                                                  │
│  "Como usuario, quiero que las búsquedas respondan         │
│   en menos de 100ms para que pueda trabajar fluidamente"   │
│  (Nota técnica: requiere migración a PostgreSQL 15)        │
└─────────────────────────────────────────────────────────────┘

❌ SIN CONTEXTO:
┌─────────────────────────────────────────────────────────────┐
│  "Agregar botón de exportar"                               │
│                                                             │
│  PROBLEMA: No explica para quién ni por qué                │
│                                                             │
│  ✅ MEJOR:                                                  │
│  Usar el formato completo As/Want/So that                  │
└─────────────────────────────────────────────────────────────┘

Criterios de Aceptación Efectivos

FORMATOS DE CRITERIOS
═════════════════════

FORMATO 1: CHECKLIST
┌─────────────────────────────────────────────────────────────┐
│  Criterios de Aceptación:                                   │
│  ☐ Usuario puede hacer X                                   │
│  ☐ Sistema muestra Y cuando Z                              │
│  ☐ Error aparece si condición inválida                     │
│  ☐ Datos se guardan correctamente                          │
└─────────────────────────────────────────────────────────────┘

FORMATO 2: GIVEN-WHEN-THEN
┌─────────────────────────────────────────────────────────────┐
│  Escenario: Exportar reporte exitoso                       │
│                                                             │
│  DADO: Usuario está en página de reportes                  │
│  Y: Hay datos para el período seleccionado                 │
│  CUANDO: Usuario hace clic en "Exportar PDF"               │
│  ENTONCES: Se descarga archivo PDF                         │
│  Y: PDF contiene todos los datos visibles                  │
└─────────────────────────────────────────────────────────────┘

FORMATO 3: REGLAS
┌─────────────────────────────────────────────────────────────┐
│  Reglas de Negocio:                                         │
│  - Máximo 100 items por exportación                        │
│  - Formato de fecha: DD/MM/YYYY                            │
│  - Solo usuarios con rol "Manager" pueden exportar         │
└─────────────────────────────────────────────────────────────┘

Dividiendo Stories Grandes

TÉCNICAS DE DIVISIÓN
════════════════════

POR FLUJO DE USUARIO:
┌─────────────────────────────────────────────────────────────┐
│  EPIC: Sistema de checkout                                  │
│  │                                                          │
│  ├── Story: Ver carrito                                    │
│  ├── Story: Agregar dirección de envío                     │
│  ├── Story: Seleccionar método de pago                     │
│  ├── Story: Confirmar orden                                │
│  └── Story: Recibir confirmación por email                 │
└─────────────────────────────────────────────────────────────┘

POR REGLA DE NEGOCIO:
┌─────────────────────────────────────────────────────────────┐
│  EPIC: Cálculo de descuentos                               │
│  │                                                          │
│  ├── Story: Descuento por volumen (>10 items)              │
│  ├── Story: Descuento por código promocional               │
│  ├── Story: Descuento por cliente frecuente                │
│  └── Story: Combinación de múltiples descuentos            │
└─────────────────────────────────────────────────────────────┘

POR VARIACIÓN:
┌─────────────────────────────────────────────────────────────┐
│  EPIC: Exportar reportes                                    │
│  │                                                          │
│  ├── Story: Exportar a PDF                                 │
│  ├── Story: Exportar a Excel                               │
│  └── Story: Exportar a CSV                                 │
└─────────────────────────────────────────────────────────────┘

Templates en GitScrum

CONFIGURAR TEMPLATE EN GITSCRUM
═══════════════════════════════

TEMPLATE PREDETERMINADO:
┌─────────────────────────────────────────────────────────────┐
│                                                             │
│  ## User Story                                              │
│  Como [tipo de usuario]                                    │
│  Quiero [funcionalidad]                                    │
│  Para que [beneficio]                                      │
│                                                             │
│  ## Criterios de Aceptación                                │
│  - [ ] Criterio 1                                          │
│  - [ ] Criterio 2                                          │
│  - [ ] Criterio 3                                          │
│                                                             │
│  ## Notas                                                   │
│  [Contexto adicional, mockups, dependencias]               │
│                                                             │
│  ## Definición de Done                                      │
│  - [ ] Código completo                                     │
│  - [ ] Tests pasando                                       │
│  - [ ] Revisión de código                                  │
│  - [ ] Documentación actualizada                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Checklist de Calidad

ANTES DE AGREGAR AL SPRINT
══════════════════════════

☐ ¿Está en formato user story (quién, qué, por qué)?
☐ ¿Tiene criterios de aceptación claros?
☐ ¿Es independiente o dependencias están resueltas?
☐ ¿Cabe en un sprint?
☐ ¿El equipo puede estimarla?
☐ ¿Es testeable?
☐ ¿Tiene valor claro para usuario/negocio?
☐ ¿Está discutida con el equipo?

Soluciones Relacionadas de GitScrum