¿Cuándo crear y refinar las User Stories?

Después de haber hablado del por qué, qué y cómo de las historias de usuario, ahora nos toca entender el cuándo. Para eso hay que entender el proceso de escribir las Historias de Usuario a lo largo de un desarrollo ágil. ¿Cuándo y cómo obtener la primer gran lista de Historias? ¿Hasta qué nivel de detalle conviene llegar? ¿Para todas hay que llegar al mismo detalle? ¿En qué momentos conviene trabajar en el refinamiento?

Por si no viste los puntos anteriores, estos son los posts anteriores:

  1. User Stories – Entendiéndolas para poder usarlas lo mejor posible
  2. Por qué las User Stories en un contexto ágil
  3. Qué son las User Stories
  4. ¿Cómo escribir User Stories?

¿Dónde está el backlog?

El primer objetivo a la hora de crear las historias de usuario es tener la lista inicial de nuestro backlog, que nos permita empezar a construir y además sabiendo que empezamos por donde más valor aportamos. Es muy fácil decirlo, pero no tanto conseguirlo. Tenemos que conseguir no perdernos en los detalles y a la vez intentar no dejar nada clave fuera.

Una de las técnicas que más me gusta para esto es el User Story Mapping , ya que este ejercicio inicial nos permite identificar las actividades que los usuarios necesitan para conseguir su objetivo y a partir de ellas podemos detallar que tareas harán los usuarios como parte de estas actividades. Incluso si lo combinamos con un Impact Mapping, podemos comenzar el ejercicio a partir de qué objetivo/s queremos conseguir con el producto y de ahí identificar sus actividades, tareas y User Stories asociadas (no voy a entrar en más detalle porque da para otro post, pero en este video la gente de Kleer explica de forma fácil qué es un story map y como construirlo).

Ahora que ya tenemos más claro el conjunto de historias que contendrá nuestro producto, tenemos que pensar en las prioridades, para saber por dónde empezaremos y así poder detallar más las  historias más prioritarias. Para esto el User Story Map también nos ayuda, ya que el eje vertical representa la prioridad de cada historia para una actividad o tarea del usuario. Por lo que podemos definir cuáles serán los posibles releases del producto. Si estamos en el inicio del producto, nos centraremos en conseguir el “walking skeleton” de nuestro producto en los primeros sprints, por lo que podemos empezar priorizando y refinando el conjunto de historias que nos ayudan a conseguirlo.

¿Cuántas necesitamos? ¿Cuánto detalle tienen que tener?

Ahora sí! Tenemos un backlog bastante completo y priorizado. ¿Puedo empezar a desarrollar mi primera historia? Hmmm… Creo que no está lista…

Ahora es el momento de dejar de trabajar con vista de pájaro y pasar al detalle. Ya hicimos un buen trabajo de inception, pero ahora necesitamos hacer el refinamiento antes de empezar con el primer sprint. Lo que haremos es detallar las primeras historias hasta que estén listas y tengamos suficiente trabajo para el primer sprint (si trabajamos con Scrum).  Algo que suele pasar al crear el User Story Map es que el tamaño de las historias varía mucho y algunas son más bien épicas y otras historias pequeñas. Para esto habrá que dividir las historias como ya hablamos en el post anterior. ¿Cómo escribir User Stories?

Si estamos empezando nos podemos centrar en el walking skeleton, ya que te ayudará a tener una solución end to end que incluso técnicamente te haga trabajar en los principales componentes. A partir de ahí ya iras trabajando en los releases que hayas podido identificar en el User Story Map.

La cantidad de historias que el PO y equipo quieran tener listas va a depender de muchas variables. Lo mejor es ir aprendiendo. Lo importante es entender que lo que buscamos es minimizar la cantidad de trabajo que tenemos adelantado en el backlog, para reducir la posibilidad de desperdiciar tiempo de trabajo y tener la mayor flexibilidad que nos permita adaptarnos a posibles cambios, pero a su vez que el equipo no se quede sin historias lo suficientemente listas para comenzar a trabajar. Este es uno de los aspectos que el PO y el equipo tienen que ir trabajando juntos para encontrar su nivel adecuado.

El detalle que necesitamos en el backlog varía según la prioridad de las historias. Para las historias que se trabajarán en los próximos días o iteraciones  vamos a querer tener las historias listas (DoR), con toda la información que el equipo necesita para comenzar a desarrollarla. Para el resto el detalle ira disminuyendo. Algo importante a mencionar, es que mientras más extenso sea el DoR, antes necesitaras ponerte a refinar y detallar cada historia (en este post comento más en profundidad esto).

Algunas de las variables que pueden influir en cuando refinar las historias son:

  • Prioridad
  • Tamaño
  • Velocidad o burnRate
  • Cantidad de trabajo necesario para conseguir el DoR
  • Variabilidad de los requerimientos (qué tanto cambian y con qué frecuencia)
  • Dependencias en el refinamiento

¿Y cuándo es el momento de hacer todo esto?

El refinamiento es una actividad que se hace constantemente. Es el proceso de gestionar el backlog teniendo en cuenta todas las variables mencionadas (y más). Pero si bien esto es así y generalmente hay una persona responsable de que esto suceda (el Product Owner en Scrum), cómo el backlog es una herramienta más de comunicación entre producto y desarrollo, es importante que haya colaboración a la hora de refinar las historias. Es por esto que en Scrum es una  práctica común el hacer una reunión de refinamiento entre PO y equipo de desarrollo. Sirve para que el equipo no tenga que ser interrumpido constantemente durante el sprint, y para asegurar que el backlog y las historias son entendidas por todos. También es buena práctica hacer un taller de escritura de historias (“User Story writing workshop” para googlearlo 🙂 ) con cierta periodicidad, que nos permita ir extendiendo el backlog a medida que el producto evoluciona.

Lo importante de estas reuniones es entender que lo que buscamos es mantener un backlog con salud (que cumpla con las características DEEP: detailed appropriately, emergent, estimated, and prioritised).

Las actividades que se suelen hacer en estas reuniones son:

  •  Escribir nuevas User Stories
  • Dividir User Stories muy grandes en más pequeñas
  • Mejorar aquellas que no estén bien escritas o definidas
  • Estimar los nuevo ítems del backlog
  • Agregar criterios de aceptación
  • Mirar “en profundidad” para tener una idea a más largo plazo de lo que vendrá y sus implicaciones técnicas.
  • Etc.

El mayor desafío es encontrar el ritmo adecuado de trabajo que nos asegure no tener mucho desperdicio (trabajo hecho sobre el backlog que está en espera) y por otro lado que el equipo siempre tenga trabajo listo para empezar en caso de necesitar más. Es la comida que le llega al equipo, que tiene que haber suficiente, pero también tiene que llegarle fresca!

 

Anuncios

Un comentario en “¿Cuándo crear y refinar las User Stories?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s