¿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

Aprendizajes de mí charla de la CAS 2017

En la pasada CAS, el 9 y 10 de noviembre en Sevilla, tuve la suerte de poder presentar una charla que me hacía mucha ilusión y qué por el feedback recibido creo que es un tema que es de gran ayuda para muchas personas que están empezando a andar o lleva no mucho tiempo en los zapatos de un Scrum Master. Me gustaría compartirles lo que aprendí de la charla y el reto que tengo ahora para que no se quede solo en una anécdota…

Guía de auto-crecimiento del Scrum Master

Antes que nada hago un pequeño resumen de mi charla para poner en contexto el resto del post.

Mi propuesta es hacer un trabajo de crecimiento profesional consciente (algo que no solemos hacer), que nos ayude a crecer más rápido, estar seguros que vamos en la dirección hacia la que queremos llegar y, sobre todo, que disfrutemos de ese camino. Ya que el ser un gran Scrum Master es un proceso, un recorrido… y no un estado en sí mismo. Sigue leyendo

Cómo viví la CAS 2017

 

Un año más he podido disfrutar de la Conferencia Agile Spain, que este año tocó en Sevilla. La CAS es el evento referencia a nivel España en el que sabes que vas a poder ver a la gente más potente a nivel nacional (y con alguna presencia internacional) y por eso siempre vale mucho la pena ir. Sobre todo para hacer comunidad y disfrutar de las personas que formamos este pequeño mundo de la agilidad.

Aquí les comparto mi experiencia sobre la conferencia en general y les dejo un mini-resumen de las charlas que más me gustaron.

Conferencia

Antes que nada quiero agradecer a la organización por haber logrado que un año mas disfrutemos de nuestra querida CAS!

Ubicación: el Fibes fue un gran acierto, salas muy amplias, espacios grandes ideales para hacer sociales, buena calidad de sonido y un auditorio imponente! Lo único a mejorar fue la comida… muy poca comida, por lo menos por donde yo estuve y la variedad muy mejorable entre un día y el otro y también para personas que no comemos carne y/o lácteos  Sigue leyendo

Retrospectiva – Motivación de equipo

 

Hace unas semanas facilite una retrospectiva orientada a la motivación con un equipo, usando los Moving Motivators de Management3.0. Anteriormente ya había usado los moving motivators en sesiones personales, pero esta vez el Scrum Master del equipo me pidió ayuda porque quería trabajar la motivación del equipo. Para esto le sugerí que primero era importante entender que motivaba a las personas del equipo y cuál era el grado de motivación actual. Con esa información él y el equipo podrían trabajar para mantener la motivación al máximo.

Para la estructura de la retro me guié de este post, que explica muy bien que hacer en cada momento e incluso hay un Excel para volcar los resultados y crear gráficos que ayuden a analizarlos. Así que más que explicar los pasos de la retro les voy a contar mi experiencia.

Resumen de las actividades

  • Cada uno ordena sus motivadores y luego los explica al equipo
  • Cada uno pone un puntaje (de 0 a 8) a cada motivador que representa el grado de satisfacción actual y se comparte entre el equipo
  • Se hace un debriefing de lo sucedido y se busca el primer punto de acción para trabajar en la motivación

Sigue leyendo

¡Ahora sí, empieza el 2017!

¡Ahora sí, ya pasaron los reyes, se terminan las mini-vacaciones y empieza el 2017! Pero antes quiero hacer un repaso de lo conseguido en el 2016 y pensar que quiero conseguir este nuevo año que viene.

El 2016 fue un año bastante activo para mí, lo podría llegar a considerar un año de inflexión, donde decidí ser públicamente más activo en temas de agilísmo y una de las formas para conseguirlo fue empezar a escribir este blog. El balance general del 2016 es muy bueno, estos son mis logros más significativos…    Sigue leyendo

Retrospectiva XXL en tiempo XXS en el primer Agile & DevOps Day de GFT

Hace un poco más de un año en la CAS 2015, cenando con el equipo de GFT se nos ocurrió que para el 2016 teníamos que hacer un evento similar internamente… hoy ese evento ya es realidad, lo hicimos y fue todo un éxito.

Apenas empezamos a pensar en cómo sería el evento tuvimos claro que al final haríamos una retrospectiva y fui el elegido para facilitarla.

Así que me puse a leer un poco de cómo hacer una retro grande, leí varios posts y obviamente llegué a los de Thomas Wallet donde explica varias experiencias de retros XXL. Después supe que Thomas iba a venir a España e iba a dar un taller de Retrospectivas XXL en la CAS, así que ese fue el primer slot de la conferencia que tuve claro que iba a ir. ¡Qué mejor que hacer el taller y poner en práctica lo aprendido solo tres semanas después!

Resumen de las actividades

¡Estas son todas las actividades que hicimos en unos 40 minutos con 70 personas! Sigue leyendo

Agile y los sistemas complejos

La principal base “teorica” sobre la que Agile funciona está en entender al desarrollo de un producto como un sistema complejo y en cómo gestionar dicha complejidad.

Para un trabajo de un máster estuve re-leyendo un poco sobre el tema y se me ocurrió aprovecharlo para compartir un mini resumen de algunos de los principios más importantes para gestionar la complejidad y como se aplican en el desarrollo ágil de un producto.

Método empírico vs predictivo: en un sistema complejo es muy difícil (o casi imposible) poder predecir lo que sucederá, por lo que la mejor forma de controlar el sistema es aprendiendo de las acciones tomadas. El framework Cynefin es un modelo que describe cómo actuar y tomar decisiones dependiendo de la complejidad de las situaciones. Y para las situaciones complejas propone encontrar soluciones emergentes basadas en la prueba y aprendizaje empírico. Sigue leyendo