domingo, 26 de octubre de 2008

SCRUM (I)

Qué es SCRUM

Scrum es un marco de trabajo para el desarrollo ágil de proyectos de software, aunque lo podéis aplicar a cualquier otro ámbito. Si quereis gestionar vuestra vida de pareja con Scrum, adelante!

Scrum, cómo buena metodología ágil y moderna divide el trabajo en iteraciones, a las que llama sprints, que generalmente se alargan entre 2 y 4 semanas. Cada sprint parte de un conjunto de histórias de usuario ( el llamado product backlog ) de las que el equipo de desarrollo con la ayuda del product owner y en la reunión de inicio de sprint escogen aquellas que entraran en el sprint, decidiendo así el sprint backlog. A lo largo del sprint el equipo realiza una reunión diária ( sprint daily meeting ) en la que cada miembro describe el estado de su tarea. Al final del sprint se realiza una demo para mostrar el avance del proyecto en el sprint y después una reunión para evaluar el sprint y su desarrollo ( sprint review meeting ). El objetivo de todo esto es poder entregar un incremento de valor del producto al cliente cada cierto periodo de tiempo de una manera regular.

Si todo esto os suena a chino, no os precupéis que ahora lo vamos detallando un poco.

Los actores de Scrum

Antes de ver cuáles són los diferentes roles en un equipo de Scrum os voy a contar un cuento. Resulta que un dia se encontraron una gallina y un cerdo en el campo. La gallina le dijo al cerdo: He tenido una idea. Vamos a montar un restaurante entre tu y yo. El cerdo le preguntó que cómo se llamaría el restaurante, a lo que la gallina le respondió que huevos con jamón. Cuando lo escuchó el cerdo desestimó la idea alegando que el estaria realmente comprometido con el proyecto, mientras que la gallina sólo estaria involucrada. Si aplicamos esto a Scrum, significa que los desarrolladores són los cerdos ( con perdón :D ) y son los que están realmente comprometidos con el avance del proyecto, ya que son los que lo desarrolan, mientras que la demás gente son gallinas, y aunque de alguna manera u otra están involucrados en el proyecto no estan tan involucrados como los desarrolladores.

Scrum define básicamente tres roles: El equipo, el scrum master ( o facilitador ) y el product owner.

Product owner
O propietario del producto. Es el encargado de mantener el product backlog ( la lista con las historias de usuario ) actualizado y priorizado. Representa al cliente y está presente con voz y voto en la reunión de inicio de sprint para explicar al equipo de trabajo las historias con detalle y llegar a un acuerdo con este sobre las que entran en el sprint backlog.

Equipo de desarrollo
Son los más cerdos de todos ( en el sentido scrumiano de la palabra ). Són los responsables de desarrollar el proyecto. Se reunen con el product owner para aclarar todas las dudas sobre las histórias, estiman lo que van a tardar en hacerlas y se reunen cada dia con el scrum master para controlar el avance del proyecto. Al finalizar el sprint, realizan la demo para mostrar el resultado de su trabajo y se reunen con el scrum master para hacer la evaluación del sprint.

Scrum master
O facilitador. Es el encargado de hacer todo lo posible para que el equipo de desarrollo pueda realizar su faena de la mejor de las maneras. Es su representante en el exterior. Se encarga de eliminar todos los problemas que pueda tener el equipo y de hacer que las reglas de Scrum se cumplan.

El resto de personajes que puedan estar en el proceso son las gallinas de nuestra historia. Pueden asistir a las reuniones pero no tienen voto en ninguna de ellas y voz en muy pocas. Entre estas gallinas podemos encontrar a otros grupos de desarrollos, gente de la empresa interesada en el proyecto, comerciales, etc. Pueden dar su opinión, en ocasiones muy valiosa, pero no pueden interferir en el desarrollo del proyecto.

Y por hoy ya está todo. En próximas entregas veremos la documentación asociada y las diferentes reuniones. Nos leemos!

No hay comentarios: