Un backlog lleno de historias de usuario no es útil si no está bien organizado. El desglose y refinamiento (también conocido como grooming o aseo del backlog) es una práctica continua en los equipos ágiles para mantener el backlog saludable, ordenado y listo para los próximos sprints.
5.1. Cómo dividir historias grandes en tareas manejables
A menudo, las ideas iniciales son grandes y complejas, conocidas como epics (épicas). Una epic es una historia de usuario que es demasiado grande para ser completada en un solo sprint. El primer paso del refinamiento es desglosar estas epics en historias de usuario más pequeñas y manejables. Existen varias estrategias para hacerlo:
- Por pasos de un flujo de trabajo: Si una epic describe un proceso con varios pasos, cada paso puede convertirse en una historia. Por ejemplo, una epic de "proceso de compra" se puede dividir en "ver producto", "agregar al carrito", "ingresar dirección de envío", "realizar pago", etc.
- Por rol de usuario: A veces, una funcionalidad es utilizada por diferentes tipos de usuarios. Se puede crear una historia para cada rol. Por ejemplo, "gestionar usuarios" se puede dividir en "crear usuario (admin)", "editar mi perfil (usuario)", "desactivar usuario (admin)".
- Por variaciones en los datos o reglas de negocio: Si una funcionalidad cambia su comportamiento según ciertas reglas, se puede crear una historia para cada regla. Por ejemplo, "calcular costo de envío" se puede dividir en "cálculo para envíos nacionales" y "cálculo para envíos internacionales".
- Por complejidad técnica: A veces, una funcionalidad tiene una versión simple y una compleja. Se puede empezar con una historia para la solución más simple (el "camino feliz") y luego crear otras para manejar los casos más complejos o los errores.
5.2. Refinar y priorizar antes del sprint planning
El refinamiento no es una reunión única, sino un proceso continuo que el Product Owner y el equipo de desarrollo realizan regularmente. El objetivo es que, cuando llegue la reunión de planificación del sprint (Sprint Planning), las historias en la parte superior del backlog ya estén claras, estimadas y listas para ser seleccionadas.
Durante las sesiones de refinamiento, el equipo:
- Aclara dudas: El equipo hace preguntas al Product Owner para entender completamente el "qué" y el "porqué" de cada historia.
- Añade Criterios de Aceptación: Se definen las condiciones que deben cumplirse para que la historia se considere "hecha".
- Identifica dependencias: Se discute si una historia depende de otra o de factores externos.
- Estima el esfuerzo: El equipo asigna una estimación a la historia (ver siguiente sección).
Este proceso asegura que el Sprint Planning sea una reunión de planificación, no de descubrimiento. El equipo ya no tiene que perder tiempo tratando de entender las historias, sino que puede centrarse en decidir cuántas de ellas puede comprometerse a completar en el próximo sprint.
5.3. Uso de story points y estimaciones
En lugar de estimar en horas o días, los equipos ágiles a menudo usan story points (puntos de historia). Un story point es una unidad de medida relativa que representa el esfuerzo necesario para implementar una historia de usuario. Este "esfuerzo" no es solo tiempo de codificación, sino una combinación de:
- Volumen de trabajo: ¿Cuánto hay que hacer?
- Complejidad: ¿Qué tan difícil es el trabajo?
- Incertidumbre o riesgo: ¿Cuánto desconocemos sobre lo que hay que hacer?
La estimación con story points se hace de forma relativa. En lugar de decir "esto tardará 16 horas", el equipo dice "esta historia es el doble de grande que aquella otra". Para ello, se suele usar una escala de estimación, como la secuencia de Fibonacci (1, 2, 3, 5, 8, 13, ...). Los saltos en la secuencia reflejan que la incertidumbre crece a medida que las historias son más grandes.
Planning Poker
Una técnica popular para estimar en equipo es el Planning Poker. En esta técnica:
- El Product Owner presenta una historia de usuario.
- El equipo discute la historia y hace preguntas.
- Cada miembro del equipo elige en secreto una carta de una baraja de Planning Poker (con los números de la secuencia de Fibonacci) que representa su estimación.
- Todos revelan sus cartas al mismo tiempo.
- Si las estimaciones son similares, se acuerda un número y se pasa a la siguiente historia.
- Si las estimaciones son muy diferentes, los que votaron más alto y más bajo explican su razonamiento. Esto revela suposiciones diferentes o detalles que otros no consideraron.
- Se repite el proceso hasta que el equipo llega a un consenso.
El Planning Poker fomenta la colaboración y ayuda a que todo el equipo comparta su conocimiento para llegar a una estimación más precisa.