Acerca del blog ¿Quieres ser colaborador del Blog?

La metodología Scrum: concepto, roles y herramientas

La metodología Scrum: concepto, roles y herramientas

El segundo método que repasamos a fondo después de un primer post sobre las principales metodologías ágiles y otro dedicado en exclusiva a Lean Startup, es Scrum. Fue concebido originalmente para desarrollar software y aplicado por primera vez hace más de 20 años por Ken Schwaber y Jeff Sutherland, quienes lo documentaron en detalle en el libro Metodología Scrum.

El viejo modelo: en cascada

Hasta entonces, el desarrollo de software usaba secuencias para cada una de las etapas en las que se dividían los proyectos. Generalmente eran tres: diseño, desarrollo y prueba. A esta secuencia de tres pasos se le conoce como Desarrollo en cascada. Recibe este nombre porque, de la misma forma que el agua, fluye hacia abajo a medida que va completando cada una de ellas. Sin embargo, este método basado en grupos especializados no era muy efectivo y entre otras, presentaba las siguientes complicaciones:

  • Cada departamento interpretaba los requerimientos del cliente a su manera.
  • Generalmente había poca o nula comunicación entre departamentos y eso acarreaba incongruencias entre las distintas fases del proyecto.
  • El desarrollo secuencial no estaba preparado para hacer cambios a última hora y eso solía retrasar el feedback, el aprendizaje y el potencial retorno de inversión debido a que hasta la fase final del proyecto no había software alguno funcionando.

Una visión general de Scrum

Scrum es un marco de trabajo en el que equipos multifunción autogestionados pueden crear productos o desarrollar proyectos de una forma repetitiva e incremental.

El desarrollo se estructura en ciclos de trabajo llamados sprints (también conocidos como iteraciones). No suelen durar más de cuatro semanas cada uno (la duración más habitual es de dos) y tienen lugar uno tras otro y sin pausa alguna entre ellos. Es importante destacar que están acotados en el tiempo, por lo que finalizan en una fecha determinada independientemente de si el trabajo ha finalizado por completo o no y jamás se prorrogan. Normalmente los equipos Scrum establecen una duración y la mantienen para todos sus sprints hasta que mejoran su rendimiento y se ven capacitados para emplear ciclos más cortos.

Al principio de cada sprint, un equipo multidisciplinar con las especialidades necesarias para llevar a cabo el proyecto (generalmente de unas siete personas) confecciona una lista priorizada con las peticiones del cliente.

El equipo acuerda un objetivo colectivo respecto a lo que creen que podrán entregar al final del sprint; algo que, en cualquier caso, deberá ser tangible y estar terminado por completo. Durante el sprint no se podrán añadir nuevos elementos. Cualquier cambio solicitado se introduce en el siguiente sprint, ya que el que está en curso requiere de la concentración de todo el equipo en un objetivo simple, claro y estable.

El equipo se reúne todos los días durante unos pocos minutos para inspeccionar su progreso y ajustar los siguientes pasos necesarios para completar el trabajo pendiente. Al final del sprint, el equipo revisa el avance con los diferentes interesados e involucrados en el producto y realiza una demostración de lo que ha desarrollado. Se obtiene feedback y si fuera necesario, se incorpora al siguiente sprint.

La metodología Scrum es como el rugby

Definición de un producto o servicio terminado

Scrum pone el foco en un producto terminado que funcione al final del sprint. En el caso del software, significa un sistema integrado, testado, con la documentación de usuario preparada y potencialmente entregable.

Esto requiere previamente que, antes del primer sprint, el product owner y el equipo acuerden una definición de la palabra terminado: qué subconjunto de actividades son necesarias para crear un incremento de producto potencialmente entregable.

Las distintas actividades de Scrum al detalle

Planificación del sprint

Esta acción se realiza el primer día de trabajo. Tiene dos partes:

  • Selección de requisitos (máximo 4 horas). El cliente presenta al equipo la lista priorizada de requisitos del producto. El equipo pregunta al cliente las dudas que surjan y se compromete a completarlos en el orden acordado para poder ser mostrados en cualquiera de las fechas acordadas que este último requiera.
  • Planificación del sprint (máximo 4 horas). El equipo elabora la lista de tareas de la iteración necesarias para desarrollar los requisitos a los que se ha comprometido. La estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se asignan a sí mismos las tareas.

Ejecución del sprint

Cada día, el equipo hace una reunión de sincronización (15 minutos máximo), normalmente delante de una pizarra llama daily. Cada miembro del equipo inspecciona el trabajo que el resto está realizando (la dependencia entre tareas, el progreso hacia el objetivo de la iteración, los obstáculos que podrían impedir este objetivo, entre otros) para poder hacer las adaptaciones necesarias que permitan cumplir con el compromiso adquirido.

En la reunión, cada miembro del equipo responde a tres preguntas: ¿qué he hecho desde la última reunión de sincronización?, ¿qué voy a hacer a partir de este momento? y ¿qué impedimentos tengo o voy a tener?

Durante la iteración, el facilitador (Scrum Master) se encarga de que el equipo no disminuya su productividad y cumpla con su compromiso. Para ello, si es necesario, elimina los obstáculos que el equipo no puede eliminar por sí mismo y lo protege ante interrupciones externas que pudieran afectar a su productividad.

El equipo en reunión con el cliente también refina la lista de requisitos y cambia o planifica de nuevo los objetivos del proyecto pensando siempre en la utilidad de lo que se desarrolla y, en último término, en el retorno de la inversión.

Inspección y adaptación

El último día de la iteración se realiza una reunión de revisión. Generalmente tiene dos partes:

  • Demostración (máximo 4 horas). El equipo presenta al cliente los requisitos completados en la iteración en forma de incremento de producto preparado para ser entregado con el mínimo esfuerzo. En función de los resultados mostrados y de los cambios que haya habido en el contexto del proyecto, el cliente solicita las adaptaciones necesarias y si procede, se planifica de nuevo el proyecto.
  • Retrospectiva (máximo 4 horas). El equipo analiza cómo se desarrolló el trabajo hasta entonces y cuáles podrían ser los problemas que impedirían progresar de manera adecuada en el futuro, afectando a la productividad del proyecto. De haber una previsión de dificultades a la vista, el facilitador se encargaría de eliminar los obstáculos identificados.

Roles y responsabilidades

En Scrum, a la hora de definir los diferentes roles que pueden asumir cada una de las partes relacionadas con un proyecto, se recurre a la fábula del cerdo y la gallina, que dice así:

Una gallina y un cerdo paseaban por el campo. La gallina le preguntó al cerdo: “¿Quieres abrir un restaurante conmigo?”. El cerdo consideró la propuesta y respondió: “Sí, me gustaría, pero ¿qué daríamos de comer?”. La gallina respondió: “Huevos con jamón”. Y el cerdo que no era del todo tonto, se quedó pensando y contestó: “Pensándolo mejor, creo que no voy a abrir un restaurante contigo. ¿Por qué? le preguntó la gallina; es una idea fantástica! A lo que el cerdo respondió: “En este negocio, el que estaría realmente comprometido sería yo mientras que tú sólo estarías implicada”.

Animales Metodología Scrum

Los cerdos, que no sólo están implicados en el proyecto sino que también están comprometidos; serían:

Product Owner (Cliente)

El cliente puede ser interno o externo. Sus principales responsabilidades son:

  • Representar a todos los interesados en el proyecto.
  • Ser el único interlocutor ante el equipo con autoridad para tomar decisiones.
  • Definir los objetivos del proyecto y maximizar su retorno de la inversión.
  • Colaborar con el equipo en la planificación, revisión y consecución de los objetivos de cada iteración.

Scrum Master (Facilitador)

Lidera el equipo despejando el camino de obstáculos. Sus principales responsabilidades son:

  • Procurar la máxima colaboración dentro del equipo y con el cliente para que las sinergias sean máximas.
  • Asegurar que la lista de requisitos priorizada esté lista antes de la siguiente iteración.
  • Facilitar las reuniones para que sean productivas y consigan sus objetivos.
  • Enseñar al equipo a autogestionarse.
  • Proteger y aislar al equipo de interrupciones externas durante la ejecución de la iteración.

Development Team

Lo ideal es un equipo formado por entre cinco y nueve personas. Por debajo de cinco, cualquier imprevisto o interrupción comprometería el objetivo asumido y por encima de nueve, la comunicación y colaboración se complica y los miembros acaban formando subgrupos.

El equipo debe ser autoorganizado (comparten información y colaboran entre ellos) y multidisciplinar (tienen las habilidades necesarias para identificar y ejecutar todas las tareas necesarias en cada iteración) y también estable a lo largo del proyecto para que los miembros puedan aprovechar el esfuerzo que les ha costado a la hora de construir sus relaciones interpersonales. De suma importancia también es que trabajen en la misma localización física y a tiempo completo para evitar interrupciones y mermas en su productividad por traslados o cambios de tareas.

Por muy importante que sea la participación de las gallinas, el éxito o fracaso del proyecto no depende de ellas. Aunque están implicadas en el proyecto no están comprometidas con él, por lo que hay tenerlas identificadas ya que su participación puede ser decisiva (por ejemplo, si es un patrocinador). Asumen los siguientes roles:

Stakeholders

  • Clientes: son los que obtendrán beneficio con el producto o servicio (vendiéndolo o alquilándolo).
  • Vendedores.
  • Usuarios: son los que harán uso de la aplicación o el software resultante del proyecto.
  • Patrocinador (sponsor): Un aporte económico extra al proyecto puede ser decisivo en cuanto a dimensión, calidad o tiempo. A veces, hasta determina la viabilidad del proyecto.

 

Roles en Scrum

Principales herramientas del método Scrum

Product backlog

Es la lista de objetivos priorizada en función de las expectativas del cliente. Para cada objetivo se indica el valor que aporta al cliente y el coste estimado de completarlo. En la lista se indican las posibles iteraciones y las entregas esperadas por el cliente.

Burn down chart

Son gráficos con el trabajo pendiente. Suelen mostrar la velocidad a la que se están completando los objetivos y permiten predecir si el equipo podrá completar el trabajo en el tiempo estimado.

Sprint backlog

Es la lista de tareas de la iteración que el equipo elabora en la reunión de planificación (sprint planning) y sirve de plan para completar los objetivos marcados y comprometidos con el cliente. Para cada uno de los objetivos, se muestran las tareas necesarias, el esfuerzo pendiente y la auto asignación que se han hecho los distintos miembros del equipo.

La gente sueña con hacer cosas que tengan sentido. ¿Quién no ha deseado hacer del mundo un lugar mejor, aunque sea con un pequeño gesto que aporte algo de valor? La clave está en liberarse de lo que se interpone en tu camino, eliminar los impedimentos para convertirse en la mejor versión de ti mismo.

Scrum es una de las técnicas de smart working más utilizadas: establece objetivos y, sistemáticamente paso a paso, va encontrando la manera de llegar a ellos. Pero además, lo que es más importante: identifica lo que nos impide hacerlo.

Contenidos relacionados: