sábado, 26 de diciembre de 2009

Calendario de Sprint

Uno de los mayores problemas que se pueden dar en una implantación de Scrum es el empezar con la idea preconcebida de que es una metodología que no requiere "mucho esfuerzo". Esto le sucede a mucha gente que ha oído hablar de Scrum o metodologías ágiles en general y que únicamente se han quedado con la idea de que Scrum es "no documentar" o barbaridades similares. Pero la realidad es que implantar Scrum en una empresa o departamento requiere de mucho esfuerzo y ganas por parte de todos los implicados. En este post voy a tratar de explicar una manera de enfocar Scrum que creo que puede ser muy útil, sobretodo al inicio de una implantación. Para ello lo único que se necesita es crear un Calendario de Sprint.

Aunque parezca algo trivial, hacer un calendario nos puede ayudar sobretodo en las primeras etapas de la implementación de la metodología, cuando aún no están claras las diferentes prácticas y artefactos que intervienen en Scrum. El calendario de Sprint que os propongo está basado mas o menos en cómo funcionamos en nuestra empresa (Sprints de dos semanas y de miércoles a miércoles) pero obviamente se puede adaptar a lo que mas convenga a cada equipo y/o empresa.

El calendario propuesto es el siguiente:




Ahora vamos a detallar que significa cada uno de los diferentes puntos del calendario:

Project Review

Descripción: Revisión del estado de los proyectos. Comunicación de cambios de requisitos, modificaciones, problemas, riesgos,impedimentos, etc...
Duración:
1h
Asistentes:
Responsables de proyectos y personas implicadas (clientes, gestores, gerentes, etc.)
Documentación:
Acta de reunión documentando todos los cambios y las decisiones tomadas.

Project Planning

Descripción: Adición, eliminación o división de historias de usuario de cada proyecto (en base a lo detectado en la reunión de Project Review). Priorización y estimación de las nuevas historias de usuario y preselección de aquellas a desarrollar en el nuevo Sprint.

Duración: 1h

Asistentes: Responsables de proyectos y miembros del equipo de desarrollo (no tienen porque ser todos)

Documentación: ProductBacklog y documentos de diseño si son necesarios.


Sprint Planning

Descripción: Decidir los puntos a hacer durante el Sprint (basado en los días laborables, recursos disponibles y proyectos en curso). División en tareas de las historias escogidas y estimación (en horas ideales o puntos de historia). Escoger nuevas historias si caben en el Sprint. Preparación del Task Board

Duración: 2h

Asistentes: Equipo de desarrollo

Documentación: SprintBacklog y toda la información adicional necesaria(decisiones de diseño, dudas, comentarios...).


Daily Scrum

Descripción: Sincronización de las tareas diarias hechas y actualización del Task Board.

Duración: 10 mins.

Asistentes: Equipo de desarrollo.

Documentación: Actualización del estado del Sprint Backlog.


Sprint Review

Descripción: Demostración funcional de las historias desarrolladas durante el Sprint.

Duración: 1h

Asistentes: Equipo de desarrollo, cualquier persona interesada en el proyecto

Documentación: Acta de la reunión con el feedback proporcionado, y con posibles errores y bugs encontrados durante la demo (Esta información se utilizará en la siguiente reunión de Project Review)


Sprint Retrospective

Descripción: Valoración del sprint (objetivos, gestión, resolución de impedimentos, etc.)

Duración: 1h

Asistentes: Equipo de desarrollo

Documentación: Acta de la reunión con las conclusiones y los objetivos para el siguiente sprint.


Lab

Descripción: Tiempo dedicado a investigación/pruebas sobre temas interesantes para cada persona

Duración: 1h

Asistentes: Equipo de desarrollo


Cómo se puede ver el calendario es simplemente una guía o base para seguir durante los Sprints, y no se tienen en cuenta todos los aspectos que pueden ir apareciendo durante el mismo (reuniones con clientes, sesiones de diseño, etc...), pero a pesar de todo creo que puede ser una buena práctica para aquellos equipos u organizaciones que están empezando con la implantación de Scrum.