martes, 5 de mayo de 2015

¿Cómo dividir epics e historias de usuario grandes?

En este post quiero exponer las 10 estrategias que Christiaan Verwijs describe en su artículo "10 useful strategies for breaking down large User Stories (and a cheatsheet)" en forma de resumen del artículo original, más una estrategia para despejar incertidumbre conocida como "break out a spike" (extraer un spike).

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
A diferencia de la división horizontal, la vertical es más útil, una historia dividida en vertical genera historias que a su vez tienen valor de negocio, la funcionalidad no está dividida a lo largo de capas técnicas sino de capas funcionales. A semejanza de los incrementos resultantes de un sprint, las historias resultantes son como una porción de una tarta que incluye todas las capas técnicas necesarias.

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.
Esquema con las 10 estrategias, para verlas al detalle máximo clickar encima de imagen - cortesía de Gertrudis :-)
En todas estas estrategias la división reduce la incertidumbre, nos permite desarrollar las historias resultantes importantes y dejar historias menos importantes para sprints futuros.

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