Introducción al desarrollo ágil con Scrum



Hace un tiempo me picó la curiosidad y me cogí un libro en la biblioteca, “Métodos Ágiles y Scrum“, ya que es algo que ni te mencionan en la carrera y que hoy en día lo utiliza cualquier pequeña PYME o startup.

Hoy por fin lo he terminado y me ha parecido una metodología ciertamente interesante y por eso me dispongo a escribir un pequeño resumen que permita entender cuando menos su funcionamiento básico.

Scrum es una metodología de desarrollo ágil que basa su funcionamiento en la flexibilidad, la comunicación, la colaboración y la simplicidad, todo esto a través de un desarrollo basado en pequeñas iteraciones llamadas Sprints.

Esta metodología se autodenomina flexible sin embargo esta característica no aplica a su implementación ya que muchos puristas consideran que hasta los pequeños cambios en su aplicación son desviaciones de ella y por lo tanto no conseguirán los mismos beneficios que si realmente se aplicara al 100%.

El nombre de Scrum proviene de la formación scrum que los jugadores de rugby utilizan a través del trabajo en equipo para avanzar en el terreno de juego, una muy apropiada metáfora que describe fielmente los valores de la metodología.


Los roles de Scrum


  • El cliente:

Es la persona externa a la empresa que tiene unas necesidades que el proyecto va a tratar de cubrir. Esta persona propondrá las funcionalidades que precise y modificará sus requisitos a medida que el proyecto avance, recibirá entregas periódicas perfectamedivisionesnte funcionales que utilizará para dar feedback al equipo de desarrollo.

  • El Product Owner:

Es el representante de todos los interesados en el resultado del proyecto, que habitualmente coincide con el cliente, y es quién dirige los objetivos del producto. Así mismo se debe responsabilizar de la lista priorizada de requisitos (Product Backlog), conociendo lo que aportan todos ellos y tratando de maximizar el Retorno de Inversión. También colabora con el equipo planificando los diversos Sprints y estableciendo el calendario de entregas y los objetivos de las mismas.

  • El Scrum Master

Le llaman el facilitador, se encarga principalmente de velar por que los principios de Scrum se cumplan, que el Product Backlog exista y se actualice, que se realicen todas las reuniones que la metodología propone o ayudar y proteger al equipo de los impedimentos que puedan surgir.

  • El equipo

Es el grupo de personas que desarrollan el proyecto, suele estar formado por entre 4 y 9 personas y se basan en la autoorganización y la confianza mutua de sus miembros. Seleccionan requisitos, estiman su complejidad y se autoasignan las tareas a realizar, colaborando entre ellos para maximizar su productividad y aprendiendo de los errores y retrasos.

Proceso


Scrum se basa en una serie de iteraciones de corta duración (entre 2 y 4 semanas) que proporcionan un producto funcional, cada una de esas iteraciones se denomina Sprint.

Product Backlog


Es la representación de la lista de requisitos de un proyecto, se encuentra priorizada en función de las prioridades del cliente. Esta representación contiene las diversas entregas que se realizarán y por lo tanto las divisiones en Sprints, de forma que se pueda consultar de manera sencilla y totalmente visual los trabajos a realizar así como los que ya han sido terminados.

Figura 2: Aplicación de Product Backlog con Post-Its

Sprint planning


Antes de comenzar cada Sprint el equipo se debe reunir para planear lo que se va a realizar durante toda la iteración. Esta reunión se dividirá en dos partes:

  • Reunión con el Product Owner que transmite la lista de requisitos priorizada al equipo, mostrando todo lo prioritario mientras el equipo aprovecha para preguntarle dudas y seleccionar finalmente los requisitos que se compromete a entregar al final del Sprint.
  • Se reúne el equipo para planificar la iteración, concretar las diversas tareas para cumplir cada requisito y estimar el esfuerzo necesario para cada una. De aquí saldrá el Sprint Backlog que contiene la lista de tareas de cada iteración.

El Sprint


Una regla fundamental de Scrum es que no se pueden cambiar los requisitos durante la duración de un Sprint, si para la consecución del proyecto los requisitos cambian muy rápidamente debe pensarse en reducir la duración de los Sprints.

Daily Meeting


Todos los días los miembros del equipo se reúnen brevemente para revisar lo que se ha realizado el día anterior en las llamadas “reuniones de sincronización“, donde se habla de las dificultades encontradas para minimizar su impacto y se actualiza el Sprint Backlog.

Sprint Review


Con la finalización del Sprint se realizará una nueva reunión con el Product Owner con el objetivo de mostrarle los requisitos que se han implementado para obtener feedback con el cliente para posibles mejoras en el próximo Sprint.

Retrospectiva


Con el objetivo de estar continuamente evolucionando y mejorando, el equipo debe reunirse una vez finalizado el Sprint e intercambiar opiniones sobre dicho Sprint, analizando cómo han trabajado y por qué se lograron o no los objetivos.

Se buscan cosas como ver qué ha ido bien, que se debe mejorar, que hemos aprendido y que problemas se han identificado o pueden aparecer en un Sprint posterior.


Figura 3: Gráfico resumen del proceso de Scrum.


Conclusiones

Y básicamente esto es Scrum, quizás un poco resumido de más pero creo que es suficiente para entender y comenzar a aplicar la metodología aunque sería interesante profundizar un poco más en el tema.

Todas las reuniones tienen un marco temporal que respetar, así como los roles tienen alguna función más que no he comentado, realmente esto simplemente es una pequeña introducción, si te interesa y quieres seguir en el tema a continuación te dejo un par de links que te pueden ser útiles.

Referencias de interés:


Imágenes de: