La experiencia muestra que cuando dividimos un epic o una historia de usuario relativamente grande en varias historias de usuario más pequeñas estamos agregado detalle, a la vez que las historias de usuario más pequeñas mejoran el flujo dentro del sprint y reducen el riesgo de fallar el mismo. Las historias de usuario grandes implican una mayor incertidumbre funcional y una mayor dificultad para ser estimadas. Dividir historias redunda en mejorar el entendimiento de las mismas, incrementar la exactitud de las estimaciones y hacer que estas sean más fáciles de priorizar.
Podemos dividir las historias de usuario de forma horizontal y vertical. Horizontal significa división según el tipo de trabajo, por tecnologías por ejemplo, típico de las metodologías tradicionales. Esta forma de dividir en horizontal genera historias que no tienen valor de negocio de forma individual, solo más bien algo como tareas o "historias técnicas" de las que solo el conjunto de todas ellas tiene valor. La división horizontal propicia el "pensar a modo de silos" en que cada miembro del equipo se focaliza solo en las de su especialidad, situación que tiende a producir cuellos de botella. La Agilidad evita este tipo de problemas con la multifuncionalidad del equipo de personas de perfil "T", todo miembro participa en mayor o menor media en los diferentes tipos de tarea. Por último las historias provenientes de divisiones horizontales no se pueden priorizar ya que no aportan ningún valor de negocio de forma individual.
Hoja de trucos de Christiaan Verwijs |
Hay múltiples estrategias para dividir historias de usuario de forma vertical; una en caso de que la implementación de la historia sea compleja y difícil de entender y requiera una actividad exploratoria o spike previa, y las 10 que menciona Christiaan en su artículo, y que se pueden ver en la figura que muestra su hoja de trucos a la derecha, que dividen las historias de usuario en lonchas más finas completamente funcionales. Estas estrategias están pensadas para la reunión de planificación del sprint y para el refinamiento de la pila de producto y no requieren fases de análisis exhaustivas ni son costosas en tiempo.
- Estrategia 0 - Construir un spike: para adquirir el conocimiento previo necesario para entender mejor la solución y/o la necesidad asociada y así reducir la incertidumbre respecto a la implementación de la historia de usuario.
- Estrategia 1 - División por pasos de flujo de trabajo: para historias de usuario que incluyen algún tipo de flujo de trabajo, estas se pueden dividir según los pasos individuales del flujo.
- Estrategia 2 - División por reglas de negocio: historias de usuario que conllevan implícita o explícitamente reglas de negocio se pueden dividir por estas reglas. Frecuentemente los casos de test implican importantes reglas de negocio, por tanto para esta división podemos basarnos en las pruebas.
- Estrategia 3 - División por happy/unhappy flow: las funcionalidades usualmente describen un flujo en que todo va bien y otros flujos en que se tratan desviaciones, excepciones o problemas, por tanto estos flujos también son una forma de dividir historias grandes.
- Estrategia 4 - División por opciones/plataformas de entrada: en caso de productos que han de rodar en diferentes plataformas, como portátiles, tablets, móviles... pueden dividirse las historias de usuario por su plataforma de entrada.
- Estrategia 5 - División por tipos de datos o parámetros: algunas historias de usuario se pueden dividir por sus parámetros de entrada o salida, como por ejemplo las diferentes opciones de una búsqueda.
- Estrategia 6 - División por operaciones: Hay historias que involucran las típicas operaciones de alta, lectura, modificación y baja (CRUD - create, read, update & delete), operaciones que pueden ser otra forma de división.
- Estrategia 7 - División por casos/escenarios de test: a veces hay historias que son difíciles de dividir funcionalmente, en este caso puede ayudar a preguntarse cuáles van a ser los escenarios de test de la historia y dividir por estos. Los escenarios pueden ser combinación de reglas de negocio, flujos que van bien y con excepciones, plataformas de entrada, etc.
- Estrategia 8 - División por roles: para historias de usuario que cubren diferentes roles, estas se pueden dividir por las funcionalidades propias de cada rol.
- Estrategia 9 - División por optimizar ahora o más tarde: las historias de usuario pueden ser implementadas en diferentes grados de perfección y optimización de la funcionalidad descrita.
- Estrategia 10 - División por compatibilidad de navegador: las historias de usuario para aplicaciones web a menudo tienen que trabajar en una amplia variedad de navegadores, los más modernos tienden a ser más compatibles con los estándares y los más antiguos suelen necesitar de personalizaciones para que todo funcione correctamente.
Esquema con las 10 estrategias, para verlas al detalle máximo clickar encima de imagen - cortesía de Gertrudis :-) |
Os quiero invitar a leer el post Mapa mental en castellano del post de Christiaan Verwijs "10 useful strategies for breaking down large User Stories (and a cheatsheet)" de mi compañera Gertrudis, describe y da acceso al mapa mental sobre división de historias de usuario, mapa que es una excelente guía con ejemplos para la estrategia de división a aplicar.
No hay comentarios:
Publicar un comentario