Patrones de colaboración en Agile

octubre 21, 2014

share

Archived

La colaboración es uno de los aspectos más importantes de los equipos exitosos de Agile. Sin embargo, luego de trabajar en muchos proyectos de este tipo, me di cuenta que la colaboración va mucho más allá del trabajo conjunto. La verdadera colaboración significa preguntar: ¿Cómo puedo ayudarte? En el sentido de ¿Cómo puedo ayudarte a cumplir tus objetivos y eliminar obstáculos? Esta pregunta debería ser parte de la cultura de los equipos y organizaciones que aprovechan Agile. El foco debe reordenarse en base al trabajo y los objetivos conjuntos.

En esta nota nos proponemos analizar patrones de colaboración de equipos Agile que están ayudando a múltiples proyectos en todo el planeta. Por Shrikant Vashishtha.

 

Swarming

Sin importar el framework de Agile con el que se trabaja, es frustrante encontrarse con un equipo que parece estar extremadamente ocupado, pero que no logra resolver ninguno de los items en progreso. Justamente, una de las claves de Kanban implica reducir el ciclo de las stories, moviéndolas a la columna DONE apenas sea posible. Hay un mantra que debería transformarse en el himno de cualquier equipo: “termina de empezar, empieza a terminar”.

Al adoptar esta filosofía, muchos equipos colaborativos han virado hacia una cultura del Swarming. En este enfoque, en lugar de un único desarrollador que trabaja en una story, múltiples miembros del equipo se esfuerzan por terminar el tema lo antes posible. Swarming se presenta así como un aspecto cultural de la organización en equipos.

 

Roles y jerarquías

La colaboración prospera en aquellos ambientes en los que no hay jerarquías firmes. Agile no busca determinar roles específicos para los integrantes del equipo, ya que todos deben trabajar según un estilo generalista y con objetivos comunes. Pero en equipos y culturas con un enfoque jerárquico, no es poco común encontrarse con miembros que reproducen esta manera de relacionarse. Este enfoque jerárquico casi siempre mata al esfuerzo colaborativo.

 

Programación en pares

Si bien las estadísticas indican que los equipos de más alta performance casi siempre trabajan en pares, la realidad es que muchos desarrolladores prefieren descartar el la programación en pares sin considerarla. Su argumento parece ser lógico: asignar dos personas a la misma tarea, ¿no implica malgastar esfuerzos o recursos?

La realidad es que pair programming es mucho más que un equipo doble de trabajo. Este enfoque permite facilitar los desarrollos en base al diseño evolutivo, que busca un progreso dinámico y en base a metas claras. Además, el trabajo de pares hace que los desarrolladores no se distraigan en tareas individuales. Esto puede parecer sorprendente, pero permite que cualquier integrante del equipo se sume a la story en cualquier momento, como si fuera un corredor de relevos. Ya no hay islas ocultas de conocimiento. Este enfoque también permite que los integrantes clave del equipo puedan moverse a nuevos proyectos sin que se retrasen por un obstáculo en el desarrollo. De esta manera, el trabajo en pares es un patrón de colaboración importante, incluso en equipos remotos.

 

KPIs colaborativos

Los desarrollos en Agile implican un cambio cultural y no pueden reducirse a modificaciones en la manera en que trabajan los equipos. En muchas organizaciones existe una desconexión entre el trabajo en Agile y la estructura de la compañía, lo que puede traer efectos adversos en la colaboración. Por este motivo, es de suma importancia definir KPIs que respondan a las necesidades del conjunto, y dejar de lado aquellos que se centren en necesidades individuales.

 

Paredes de tarjetas

Muchas organizaciones trabajan tercerizando servicios para otras compañías. Como muchos de los clientes se encuentran en otros países, resulta lógico utilizar herramientas electrónicas como Jira, Trello o Rally para monitorear el trabajo del equipo.

Sin embargo, las herramientas electrónicas no siempre satisfacen las necesidades de monitoreo, y de hecho pueden transformarse en un punto de tensión. En su lugar, es posible aprovechar tarjetas físicas en una pared, lo que representa un método mucho más efectivo para conocer el progreso del proyecto. Trabajar con tarjetas físicas permite que los integrantes del equipo puedan moverlas de un lugar a otro para organizar la información rápidamente, y también agregar cambios y aclaraciones. Esto hace que los standups se vuelvan más cortos, y que el equipo se enfoque en el sprint en lugar del progreso individual.