Entendiendo el valor de Refinar y técnicas para ejecutarlo

Veamos primero lo que nos dice la guía oficial de scrum “El refinamiento del Product Backlog es el acto de dividir y definir aún más los elementos del Product Backlog en elementos más pequeños y precisos. Esta es una actividad continua para agregar detalles, como una descripción, orden y tamaño. Los atributos suelen variar según el ámbito del trabajo”

Con lo anterior vemos dos temas importantes “es una actividad continua” y “encontrar especificaciones del desarrollo a realizar”. ¿Es necesario refinar? por supuesto que sí, si algo tiene esta carrera es una incertidumbre tremenda. Incluso una de las razones principales por las qué fracasan o se demoran los proyectos de ingeniería es por la incertidumbre que se debe ir sorteando en cada etapa del proyecto. 

Así como existe incertidumbre en grandes proyectos también ocurre en intervalos más cortos del proyecto como puede ser un Sprint; por experiencia propia, no saben lo frustrante que es a dos días de finalizar un sprint encontrarse con una sorpresa/problema para desarrollar y ver cómo se incumple el compromiso del sprint por falta de refinamiento.

Lo primero que debemos entender es que el refinamiento es una actividad que se realiza para tener los ítems del backlog listos para ser trabajados en el sprint siguiente, es decir, refinamos el trabajo que va a ocurrir en el futuro no el que está aconteciendo en el sprint actual. Recuerda que con un buen refinamiento es posible dar una visión de lo que estamos buscando impactar al negocio

Veamos diferentes técnicas para hacer refinamiento en las que he trabajado y después unos tips de cual elegir para tu equipo agile:

  • Subequipos y luego una sincronización: Consiste en que el PO del equipo se reúne con una parte del equipo los días 2,4 y 6 para hacer los refinamientos en tiempos aproximados de 1 hora con los developers. Después en el día 8 se realiza una reunión con todos los miembros del equipo para hacer una sincronización de las historias refinadas con los diferentes subequipos

  • Nos juntamos todos y refinamos: Esta última con la que he trabajado consiste en que todos los miembros del equipo se reúnen para hacer refinamiento los días 3 y 6. Se deja este intervalo para en caso de encontrar temas que se deban investigar o hacer validaciones externas se tenga tiempo para realizarlo y se traigan para el próximo refinamiento.
  • Refinamiento del backlog de forma individual: Consiste en que todos los miembros del equipo al conocer las historias que se van a trabajar en los siguientes sprint se autoasignan las historias a refinar y durante el daily informan cuál historia están refinando o si hay alguna novedad importante, a su vez, en el momento que informen una historia fue refinada todos los miembros de manera individual revisa el refinamiento que se hizo y comenta en la herramienta que se trabajen (ej: jira) si tiene alguna dudas.
  • Coordinamos, Dividimos, Compartimos y Conquistamos: El refinamiento comienza el día 3 del sprint (de 2 semanas) se reúne el equipo 30 minutos, se da una pequeña introducción de las historias a refinar y se reparten las historias a los diferentes miembros del equipo. Cada miembro del equipo hace una refinamiento de las historias y el día 6 del sprint se reúne el equipo nuevamente en una sesión aproximada de 2 horas en las que se sincronizan las historias refinadas y se resuelven dudas y en caso de quedar temas por refinar se reparten para ser refinadas previo al próximo planning.

Hagamos un cuadro y comparemos estas cuatro opciones.

Técnica ¿Aplica para equipos maduros?¿Aplica para equipos nuevos?Observaciones
Refinamiento del backlog de forma individualRecomendadaNoEsta técnica es super recomendada en equipos maduros por la velocidad que puede aportar 
Coordinamos, Dividimos, Compartimos y ConquistamosSiNoAplica para equipos que ya tienen una madurez previa de refinamiento
Subequipos y luego un sincronizaciónSiSiRecomendada para equipos nuevos y que sus miembros superan más de 8 personas. Las personas que no participan en el equipo de refinamiento deben revisar de manera individual las historias refinadas para estar al tanto.
Nos juntamos todos y refinamosNo recomendableRecomendaRecomendada para equipos nuevos que no superen los 5 o 6 miembros porque a mayor cantidad de miembros se pierde efectividad.
La madurez de tu equipo es algo que se logra con el tiempo y practicas para mejorarla.

¿En qué consiste un buen refinamiento?

Sabes que una historia de usuario o ítem del backlog estuvo bien refinada cuando no presentó sorpresas durante el desarrollo. Para llegar a esto debemos:

  1. Validar que la historia aporta valor al producto 
  2. Verificar que es viable tecnicamente.
  3. En caso de requerir comunicación con sistemas o servicios externos se debe validar acceso, validar inputs/outputs, tener todo lo necesario para realizar ese consumo.
  4. Hacer un desglose de las tareas técnicas que se deben ejecutar.
  5. Si se dispone del tiempo, llegar a especificar qué clases, métodos o archivos deberás modificar para cumplir con el objetivo.

Opcional: Existirán casos en los que se tenga que hacer una prueba de concepto (pequeño desarrollo para validar el funcionamiento o prueba de algo) para validar X o Y cosa, estas pruebas de concepto no se realizan en los espacios de reunión grupales sino en los tiempos entre una reunión de refinamiento y otra.

Nota: No hacer refinamiento de las historias ocasionará que la reunión de Planning se haga eterna al no tener definido el QUÉ y dará un alto porcentaje de probabilidad de fallo del sprint.

Tips:

  1. El backlog debe estar priorizado para conocer de antemano cuáles serán las historias siguientes a trabajar.
  2. Tener el backlog ahead, consiste en lograr disponer en el backlog las suficientes historias refinadas para 2 sprint de trabajo.
  3. Por supuesto que debe haber otras técnicas para ejecutarlo, si conoces una genial, te invito a compartirla.
  4. No llamen al refinamiento «Grooming», sino saben porque, busquen la palabra en google.

1 comentario en «Entendiendo el valor de Refinar y técnicas para ejecutarlo»

Deja un comentario