SCRUM como metodología de desarrollo
Dom, 07/03/2010 - 19:03 — omercade
En aquellos proyectos suficientemente grandes cómo para tener a más de 2 desarrolladores trabajando diariamente en el, solemos implementar una metodología de trabajo basada en la motivación, la reacción al cambio y orientada al resultado final. Dicha metodología se llama SCRUM.
Scrum asume que el proceso de desarrollo de software es complicado e impredecible y lo trata como una caja negra en lugar de un proceso teórico totalmente definido. Esta es una de las mayores diferencias entre Scrum y otras metodologías de desarrollo de software: con scrum se trata de evitar los típicos problemas de éstas otras metodologías más formales cómo:
- Los requerimientos no se entienden plenamente al principio del proceso
- Los requerimientos cambian durante el proceso
- El mismo proceso puede ser imprevisible si se está trabajando con nuevas tecnologías.
Que es scrum?
SCRUM es un "agile process" que nos permite enfocarnos en la generación de valor en el mínimo tiempo.
Nos permite tener un control continuo sobre el estado actual de nuestro software
El cliente establece las prioridades y el equipo se auto-organiza para determinar la mejor forma de entregar los requerimientos con más prioridad.
Cada Semana acaba con software entregable que se puede publicar o bien seguir mejorando.
Scrum implica una filosofía de trabajo que no sólo implica al desarrollador sino también al cliente dando prioridad a los individuos y las interacciones sobre los procesos y las tareas, prefiriendo el software funcional sobre la excesiva documentación, promocionando la colaboración con el cliente en lugar de la negociación de contratos y sobre todo teniendo capacidad de respuesta sobre los cambios en lugar de seguir estrictamente una planificación.
Creación de equipos
Scrum considera que un equipo de desarrollo debe funcionar como un equipo deportivo, cada miembro del equipo trabaja de forma independiente, pero hacia el mismo objetivo. Scrum sugiere que un equipo tiene un máximo de 6 a 7 miembros. El facilitador de equipo se llama el "Scrum master". Su trabajo es implementar y gestionar el proceso Scrum en el proyecto. El equipo de Scrum en su conjunto define las prácticas, las reuniones y la terminología de SCRUM, el Scrum Master asegura el cumplimiento de estas "normas". El Scrum master desempeña un papel facilitador y su autoridad es sobre todo indirecta: centra la mayor parte de su tiempo en la gestión de interferencias externas y la solución de los obstáculos externos o "bloqueantes" que no pueden ser resueltos por el equipo Scrum.
Creación de documentos
Hay 3 tipos de documentos:
Producto o backlog - Actúa como un reposititorio de los requisitos para una release específica. Se suelen contemplar los requisitos de alto nivel.
Lanzamiento - Requerimientos obtenidos del documento de producto identificados y priorizados para la próxima versión.
Sprint - El sprint backlog es un documento detallado donde se describe el cómo el equipo va a implementar los requisitos durante el siguiente sprint. Las tareas se dividen en horas con ninguna tarea de duración superior a 16 horas. Si una tarea es mayor de 16 horas, deberá ser rota en mayor detalle. Las tareas en el sprint backlog nunca son asignadas, son tomadas por los miembros del equipo del modo que les parezca oportuno.
La segmentación del proyecto
Todo el proyecto se divide en períodos de tiempo con una duración máxima de 4 semanas. Un período se denomina Sprint y cada equipo recibe una cartera de pedidos a ejecutar en un Sprint determinado.
Reuniones Scrum
Durante el sprint, el equipo lleva a cabo reuniones scrum diariamente.
Las reuniones se realizan en el mismo lugar al mismo tiempo, cada día de trabajo.
Las reuniones no duran más de 30 minutos.
El scrum master tiene la responsabilidad de pedir a cada miembro del equipo las tres preguntas siguientes:
- ¿Qué has hecho desde la última reunión de scrum?
- ¿Hay algo que haya impedido tu trabajo?
- ¿Qué planeas hacer entre ahora y la próxima reunión scrum?
La conversación se limita a los miembros del equipo de respuesta a las preguntas anteriores.
Se pueden planificar reuniones justo después de la reunión scrum sobre la base de las respuestas a las preguntas anteriores.
El scrum master es responsable de tomar decisiones de inmediato, si es necesario para eliminar los obstáculos al progreso.
El scrum master tiene la responsabilidad de señalar los obstáculos que deben ser resueltos externamente a la reunión para no alargar la reunión innecesariamente.
Fases
El proceso de desarrollo Scrum se compone de 5 actividades importantes
- planes de lanzamientos
- Distribución, revisión y ajuste de los estándares de producto
- Sprint
- revisión del Sprint
- Cierre
Sprint
La fase de Sprint es donde el desarrollo de software se lleva a cabo. Un Sprint consta de los siguientes sub-actividades:
- Elaborar
- Integrar
- Revisar
- Ajustar.
Esta fase no tiene una secuencia. A veces un elemento del backlog se tiene que desarrollar, integrar, y revisar cuando otras sólo debe ser revisado o ajustado.
Revisión de Sprint
Cada Sprint es seguida por una revisión de Sprint. Durante esta revisión, el software desarrollado en el Sprint anterior se revisa y si es necesario se le añaden nuevos ítems del backlog. El grupo de revisores pueden ser: las partes interesadas del proyecto, gestores, desarrolladores y, en ocasiones los clientes, ventas y marketing.
Las actividades, y la revisión de Sprint Sprint se repiten hasta que el producto se considera listo para su distribución por los participantes en el proyecto. Luego, el proyecto pasa a la fase de cierre en que el producto se prepara para el lanzamiento y la distribución.
Cierre
En esta fase tienen lugar las actividades de debugging, marketing y promoción.
Al acabar esta fase el proyecto quedará cerrado.



Comentarios
Enviar un comentario nuevo