Scrum - Impedimentos

martes, 5 de noviembre de 2013

Muchas veces nos ha pasado en nuestro trabajo encontrarnos con eventos o situaciones imprevistas que nos obligan a buscar soluciones creativas para continuar según lo planificado o que nos llevan a modificar directamente la planificación hecha, con el cambio de humor que esto implica dentro del equipo. Este tipo de situaciones o eventos son lo que llamamos impedimentos.


Cuando recién empezamos con Scrum nos resultaba muy difícil comprender qué hacer con estas cosas y cómo tratarlas. Algo que nos sirvió y que me parece fundamental es entender claramente de qué se trata y cómo identificarlos.

Impedimentos Scrum
Entonces, qué es realmente un Impedimento? De las muchas definiciones que al respecto podemos encontrar, la que más me gusta es la que ve a los impedimentos como cualquier obstáculo que bloquea o demora el progreso del equipo. Es decir, cualquier situación que impide a una o más personas del equipo continuar con su tarea, con su correlativo impacto en el progreso del sprint en el que estén trabajando y/o en el backlog general.

Y algo que nos ayudó mucho a "aceptarlos como tales" fue comprender que no hay team que no se encuentre con trabas de cualquier tipo que impacten en los Sprint. Que todos los miembros del equipo entiendan esto suele ser "liberador" ....

Cómo detectarlos

Estas trabas o imprevistos surgen durante el trabajo diario y DEBEN ser comunicados al resto del equipo, en general durante las reuniones diarias. Pero, dado que uno de los roles más importantes del Scrum Master (SM) es el de eliminar los problemas para lograr la mayor eficiencia del team, es esperable también que sea él quien tenga la capacidad de estar muy atento a buscarlos y detectarlos.
Por otro lado existe una contrapartida a este rol del SM y es la responsabilidad que tiene el equipo de comunicarle, en cualquier momento, la aparición de toda situación que impida o retrase una tarea , para que ese problema pueda ser tratado adecuadamente.

Y, por supuesto, las retrospectivas son el mejor momento para exponer, identificar y categorizar todas las "molestias" surgidas durante el sprint.

En resumen, tanto las capacidades del SM como una fluida y abierta comunicación dentro del team son fundamentales para la detección, reconocimiento, tratamiento y resolución de los impedimentos.

Tipos de impedimentos

Una posible clasificación de los impedimentos se basa en el tratamiento que necesiten:


  • Impedimentos del equipo, que son los típicos problemas que pueden ser resueltos dentro del team, ya sea tomando medidas internas para evitar que se repitan, estableciendo cambios en la forma de trabajo, definiendo el uso de nuevas herramientas, etc.

  • Impedimentos de la organización, que son problemas que dependen de otros para ser resueltos como temas de infraestructura, demoras en los entregables de otros equipos, entre otros.

Ejemplos típicos de impedimentos:

  1. Enfermedad de algún miembro del equipo
  2. Operaciones de mantenimiento de hardware o software corporativo que afecten la continuidad de las tareas planificadas
  3. Interacción con proveedores que no cumplen con los plazos o los servicios comprometidos. Este es, tal vez, uno de los impedimentos más preocupantes dado el poco margen de intervención que puede llegar a tener el SM para solucionarlo
  4. Ausencias o poco compromiso del Product Owner que demora la toma de decisiones o aprobaciones. Particularme este caso lo hemos sufrido en algunos de nuestros proyectos y representa  realmente un gran problema, la clave está en tratar de mantener un muy buen diálogo con el PO y hacerle notar la importancia de su presencia durante todo el proceso y las consecuencias que puede provocar su no involucramiento
  5. Un backlog mal definido o con requerimientos que no estén listos o bien detallados para iniciar la planificación del sprint
  6. Reuniones largas, innecesarias o que involucren a miembros del equipo que podrían no estar, restándoles tiempo para avanzar según lo planificado

Cómo tratarlos

La lista de puntos a seguir con los impedimentos debería recorrer los siguientes pasos:
Impedimentos Scrum
  • Registrarlos
  • Piorizarlos
  • Hacerlos públicos
  • Actuar sobre su resolución
  • Informar de su resolución

Muchos de los impedimentos que pueden encontrarse en las tareas diarias suelen ser pequeños y de fácil y rápida resolución  (pedir ayuda a otro miembro del team, un mail, una llamada telefónica al equipo de operaciones, etc.). Como muchos aconsejan, estos ítems pueden ser incluídos en el backlog y tratados dentro del mismo.  Para el resto de los impedimentos se aconseja llevar un Backlog de Impedimentos.

Yendo en el mismo sentido, la Scrum Alliance nos da 5 tips para manejar la resolución de Impedimentos:

  1. Hacerlos visibles, dejarlos escritos y a la vista de todo el equipo, cerca de la pizarra de tareas. Deben estar especialmente visibles durante la reunión diaria para que el SM pueda contar al equipo cuáles se fueron removiendo y junto con el equipo re-categorizar el resto.
  2. Buscarlos, indagar, sobre todo en equipos que recién empiezan con la práctica el SM debe encargarse de detectarlos y sacarlos a la luz (por ejemplo, cuando las tareas quedan inmóviles en la pizarra por mucho tiempo, cuando hay más tareas "En Progreso" que desarolladores). Preguntar siempre qué haría que las tareas se resuelvan lo más rápido posible.
  3. Limitar el número de Impedimentos, ya sea por tiempo o por cantidad. Por tiempo implica establecer un máximo de horas que se permite a un impedimento permanecer en la lista, por ejemplo "un impedimento puede existir por un máximo de 24 hs", pasado ese tiempo tiene que ser resuelto o enviado al próximo sprint. Por cantidad implica establecer un máximo de impedimentos abiertos por sprint para ser resueltos. El equipo decidirá qué hacer en el caso en que surja alguno nuevo en el medio. En el punto siguiente hacemos una salvedad a este tip.
  4. Diferenciar entre impedimentos globales y locales. Esta categorización es importante para entender cuáles son los impedimentos que disminuyen la velocidad del equipo (globales) y cuáles los que bloquean la continuación de alguna tarea (locales o blockers). Esto nos remite al punto 3: ese tip sirve para los impedimentos de tipo global. A los impedimentos locales, que bloquean una o más tareas, la Scrum Alliance nos aconseja agregarlos a la pizarra del sprint con algo que los diferencie visualmente del resto de las historias para que sean enfrentados cuanto antes.
  5. Ayudar al equipo a resolverlos. En la medida que se pueda, es aconsejable encontrar un equilibrio entre los impedimentos que toma para solucionar el SM y aquellos que puede solucionar el team por sí solo.Si bien una de las capacidades del SM es la de "limpiar" los impedimentos, es bueno dejar que el equipo pueda hacerse cargo de algunos de ellos.
 
Para finalizar, me quedo con una una frase que encontré respecto de este tema y me pareció muy buena: "No puedes eliminar los impedimentos pero tampoco deberías ignorarlos, o peor aún, aceptarlos como algo normal". (de Impediments Management and The Agile Triangle )


Más para leer:

Identificando Impedimentos

Impedimentos en Scrum

Top ten organizational impediments