h1

¿Cuál es el rol de un Scrum Master en un proyecto ágil?

07/04/2014

Wizdoc [Icon By Buuf]  Tips & Tricks.

Caminar sobre el agua y desarrollar software a partir de una especificación son fáciles… si ambos están congelados.

— Edward V. Berard, ingeniero de software y autor estadounidense.

Desde hace tiempo, he venido predicando y evangelizando acerca de las metodologías ágiles; especialmente Scrum y Extreme Programming. Ahora bien, muchos de los neófitos suelen ser muy cautelosos y hasta escépticos en cuanto a los beneficios que éstas pueden aportar. Una de las preguntas más comunes que he escuchado, consiste en qué rol debe tomar un Scrum Master (SCM) como parte del proyecto ágil; la gran mayoría cree que el SCM es un “administrador de proyectos” o “líder técnico”, quien debe asumir la responsabilidad sobre el proyecto y los integrantes del equipo, dirigiendo las tareas o asignando responsabilidades durante de la ejecución del mismo. Nada más alejado de la verdad, ya que el SCM es el guardián del proceso… y no mucho más. De hecho, si el equipo de trabajo ya cuenta con el conocimiento necesario para llevar a cabo las ceremonias y generar los artefactos de manera adecuada, en cada ciclo o iteración de desarrollo es posible que el rol de Scrum Master sea tomado por algún miembro del equipo diferente en cada ocasión; no necesariamente el responsable técnico o el más senior del grupo. Debido a esto, presento a continuación las tareas desempeñadas por un SCM como parte de un proyecto, basándome en mi propia experiencia durante estos últimos años:

Se coordina con el Product Owner (PO). Un Scrum Master debe trabajar en conjunto con el PO para facilitar las actividades requeridas y cumplir con el release. Estas actividades incluyen aportar activamente durante la priorización del backlog, rastrear actualizaciones relacionadas al sprint actual, alzar la mano cuando se detecte algún riesgo, o trabajar con el PO para seleccionar los elementos a implementar durante el siguiente sprint.

Se convierte en el enlace entre el equipo de trabajo y el Product Owner. En muchas ocasiones, el PO es una persona con un background de negocios, por lo que hablarle en bits y bytes puede convertirse en todo un reto; esto es especialmente crítico, ya que para que Scrum sea exitoso, es necesaria una interacción constante entre el Product Owner y los desarrolladores. Por ello es importante que el Scrum Master mantenga a todos en sintonía, ya sea mediante sesiones grupales para aclaración de dudas o reuniones “uno a uno” donde el Scrum Master participa como moderador. De acuerdo a mi experiencia, el equipo usualmente pregunta poco durante la sesión de planeación del sprint, dejando casi todas las dudas para sesiones de preguntas y respuestas posteriores. Entonces, es recomendable calendarizar este tipo de reuniones una vez que inicie el análisis de historias de usuario, incluso a manera de reverse knowledge transfer, en el que el desarrollador le explica al PO, en sus propias palabras, qué es lo que entendió de la historia de usuario a implementar. Así mismo, para evitar que una sesión de este tipo se convierta en una reunión maratónica, es una buena idea acordar un tiempo fijo o timebox. El SCM debe entonces evitar que la reunión se desvíe del tema principal y todos los involucrados vayan directo al grano.

Facilita la demostración del sprint y la retrospectiva. El SCM es usualmente el indicado para calendarizar y facilitar la revisión al final del sprint, en la que los miembros del equipo muestran a los stakeholders el trabajo terminado. Ya que seguramente los participantes harán preguntas y proporcionarán retroalimentación al equipo, el Scrum Master puede actuar como escriba o moderador. Para las retrospectivas, un SCM experimentado puede ayudar a que los participantes “se aflojen”, para que las preguntas ¿Qué salió bien? ¿Qué salió mal? ¿Cómo podemos mejorar para la próxima en base a nuestras lecciones aprendidas? Puedan contestarse de forma honesta y ordenada, ayudando a que el equipo se concentre en cómo mejorar, en vez de designar culpables. Para proyectos pequeños o medianos en los que existan de uno a tres equipos de desarrollo, la revisión al final del sprint así como la retrospectiva pueden realizarse de manera combinada mediante videoconferencia; cuando el staffing del proyecto sobrepase más de 30 participantes, es mucho más cómodo que el equipo líder (Scrum de Scrum Masters, Arquitecto Líder, Product Owner de Product Owners) sea la única voz de cara a los stakeholders; dejando a cada equipo hacer sus propias retrospectivas.

Protege al equipo del Product Owner. El Scrum Master debe impedir a como dé lugar que el objetivo del sprint cambie una vez que ha iniciado. Si el SCM se da cuenta que el PO está cambiando los objetivos a mitad del sprint, su labor deberá ser la de negociar con el Product Owner cómo intercambiar historias de usuario equivalentes en esfuerzo de acuerdo a la prioridad de entrega, dejando las historias removidas de vuelta en el product backlog para su posterior implementación. Esto no es ideal, pero es bastante más sano que cancelar el sprint completo. Por otro lado, si esta re-priorización se vuelve la norma, es aconsejable adoptar un modelo de Scrumban, en el que se acuerda con el PO limitar el monto de trabajo por fase (por hacer, en ejecución, terminado), permitiendo intercambiar las tareas o entregables en cualquier momento. También es recomendable aclarar con el Product Owner que este intercambio de tareas tiene un costo: el “cambio de contexto” o tiempo mínimo necesario para cambiar de la tarea A a la tarea B, puede incrementar hasta en 24% el tiempo del proyecto si se le usa de manera constante.

Representa al equipo en el Scrum de Scrums (SoS). Sólo stakeholders de alto nivel participan en esta reunión. Si el equipo tiene múltiples reuniones internas, típicamente cada SCM representará a su equipo en un SoS. El Scrum Master puede ir acompañado durante esta reunión, ya que cualquier miembro del equipo puede proporcionar estas actualizaciones. Sin embargo, el SCM es quien debería saber lo que está pasando con su equipo en todo momento, y debería estar al tanto de cualquier plan de acción que pretenda llevarse a cabo. Durante el SoS es bastante común que se discutan cuestiones de diseño técnico así como reglas de negocio e impedimentos que afecten al proyecto en su conjunto, tales como problemas de infraestructura y regulatorios. Los participantes idealmente deberán ser Scrum Masters, Product Owners, arquitectos, gerentes de proyecto, etcétera.

Facilita los daily standups. El scrum diario es una reunión en la que los miembros del equipo proporcionan actualizaciones sobre su trabajo, comentando qué hicieron ayer, que piensan hacer hoy y qué obstáculos se encuentran en su camino. El SCM debe asegurarse que los standups tengan una duración definida y que la conversación fluya correctamente – es decir, evitar concentrarse en los detalles o permanecer demasiado tiempo hablando acerca de un tema particular. Si es necesario, el Scrum Master puede tomar nota y calendarizar sesiones adicionales para tratar temas puntuales.

Ayuda a remover impedimentos que bloqueen el trabajo del equipo. Esta es de hecho, la tarea más importante que debe desempeñar el Scrum Master. Si el equipo se enfrenta a un reto que impida entregar el trabajo acordado, el SCM debe entender de qué se trata y cómo resolverlo, coordinándose con otros stakeholders para “despejar el camino”. Si el problema está “fuera de su jurisdicción”, es indispensable que el Scrum Master escale el problema lo más pronto posible.

Se convierte en un coach ágil. En caso de que algún miembro del equipo no conozca del todo el proceso ágil, es responsabilidad del Scrum Master que todos aprendan y sigan las prácticas de la metodología correctamente.

Tiene que hacer cumplir la definición de Terminado. El SCM debe asegurarse que el equipo se adhiere a la “Definición de Terminado”; es decir, una lista previamente negociada y aceptada entre los integrantes del equipo, en la que se define bajo qué criterios el trabajo es considerado como finalizado. Por ejemplo, (1) debe cumplir con los criterios de aceptación definidos en la historia de usuario, (2) las pruebas unitarias, de integración y de aceptación deben haber sido terminadas, (3) deben existir cero defectos de severidad alta y (4) la revisión de código por algún colega debe haberse completado.

Facilita la sesión de planeación. La sesión de planeación es aquella en la que el equipo decide el objetivo del sprint y cuáles elementos del Product Backlog serán seleccionados para implementarse durante la presente iteración. Usualmente durante los primeros sprints, el Scrum Master es quien definirá o reforzará las reglas del Planning Poker usado para dimensionar las historias de usuario en términos de puntos de historia (por ejemplo: la serie de Fibonacci o “puntos perro“).

Conclusiones

Aunque la mayoría de las actividades que desempeña un SCM han sido cubiertas en este post, pueden presentarse muchas más actividades que dependen de la naturaleza del proyecto. Por ejemplo, en un equipo de desarrollo, el SCM era un excelente arquitecto en Java, por lo que además de sus funciones como Scrum Master, colaboró con el líder técnico del equipo para definir una arquitectura que fuese fácil de implementar y mantener. Por otro lado, en un caso que me tocó personalmente, en el que desempeñando la labor de Scrum de Scrum Masters, también tenía que fungir como Program Manager, llevando el tracking de varios equipos y proyectos operando simultáneamente, comunicando el avance y problemas a la alta dirección mediante presentaciones especialmente hechas para este fin – así es, de esas con portafolios, semáforos y “tiburones” listos para desayunarse al presentador si ellos ven algo que no les gusta.

One comment

  1. Excelent!



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 )

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 )

Google+ photo

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

Conectando a %s

A %d blogueros les gusta esto: