Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto
En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor del proyecto.
Scrum está especialmente indicado para proyectos:
- en entornos complejos
- donde se necesita obtener resultados pronto
- donde los requisitos son cambiantes o poco definidos
- donde la innovación, flexibilidad y productividad son necesarias
- donde no se está entregando al cliente lo que necesita
- donde las entregas se alargan demasiado
- donde los costes se disparan o la calidad no es aceptable
- cuando se necesita capacidad de reacción ante la competencia
- cuando la moral de los equipos es baja y la rotación alta
- cuando es necesario identificar y solucionar ineficiencias
FUNDAMENTOS DE SCRUM (buenas prácticas)
- El desarrollo incremental de los requisitos del proyecto en bloques temporales cortos y fijos (iteraciones de un mes natural y hasta de dos semanas, si así se necesita)
- La priorización de los requisitos con valor para el cliente y coste de desarrollo en cada iteración
- El control empírico del proyecto:
- Al final de cada iteración se demuestra al cliente el resultado real obtenido, de manera que pueda tomar las decisiones necesarias en función de lo que observa y del contexto del proyecto en ese momento
- El equipo se sincroniza diariamente y realiza las adaptaciones necesarias
- La potenciación del equipo, que se compromete a entregar unos requisitos y para ello se le otorga la autoridad necesaria para organizar su trabajo
- La sistematización de la colaboración y la comunicación tanto entre el equipo como con el cliente
BENEFICIOS DE SCRUM
- Entrega mensual (o quincenal) de resultados:
- Gestión regular de las expectativas del cliente y basada en resultados tangibles
- Resultados anticipados (time to market)
- Flexibilidad y adaptación respecto a las necesidades del cliente, cambios en el mercado, etc
- Mitigación sistemática de los riesgos del proyecto
- Productividad y calidad
- Alineamiento entre el cliente y el equipo de desarrollo
- Equipo motivado
REQUISITOS PARA USAR SCRUM
- Cultura de empresa basada en trabajo en equipo, delegación, creatividad y mejora contínua
- Compromiso del cliente en la dirección de los resultados del proyecto, gestión del ROI y disponibilidad para poder colaborar
- Compromiso de la dirección de la organización para resolver problemas endémicos y realizar cambios organizativos, formando equipos autogestionados y multidisciplinares y fomentando una cultura de gestión basada en la colaboración y en la facilitación llevada a cabo por líderes al servicio del equipo
- Compromiso conjunto y colaboración de los miembros del equipo
- Relación entre proveedor y cliente basada en ganar-ganar, colaboración y transparencia
- Facilidad para realizar cambios en el proyecto
- Tamaño de cada equipo entre 5 y 9 personas (con técnicas específicas de planificación y coordinación cuando varios equipos trabajan en el mismo proyecto)
- Equipo en un mismo espacio común para mejorar la comunicación
- Dedicación del equipo a tiempo completo
- Estabilidad de los miembros del equipo
CÓMO FUNCIONA SCRUM
Actividades
- Planificación de la iteración (Sprint Planning)
- Ejecución de la iteración (Sprint)
- Reunión diaria de sincronización del equipo (Scrum Daily Meeting)
- Demostración de los requisitos completados (Sprint Review)
- Retrospectiva (Sprint Retrospective)
- Refinamiento de la lista de requisitos y cambios en el proyecto
Responsabilidades
- Cliente (Product Owner)
- Facilitador (Scrum Master)
- Equipo (Team)
Herramientas
- Lista de requisitos priorizada (Product Backlog)
- Lista de tareas de la iteración (Sprint Backlog)
- Gráficos de trabajo pendiente (Burndown Chart)
MANIFIESTO AGILE
Valorar:
- Individuos e interacciones más que procesos y herramientas
- Software que funciona más que documentación exhaustiva
- Colaboración con el cliente más que negociación de contratos
- Responder ante el cambio más que seguimiento de un plan
PRINCIPIOS DEL DESARROLLO AGILE
- La prioridad es que el cliente esté satisfecho y siempre informado del estado del proceso. Entrega temprana y contínua de software que aporte valor
- Los requisitos del proyecto pueden cambiar y no se verá como un problema, sino como una ventaja competitiva
- Las entregas se realizan periódicamente y en periodos cortos. La planificación se realizará desde las dos semanas, a los dos meses
- El equipo de desarrollo debe trabajar de forma conjunta y coordinada con la gente de negocio
- Es prioritario motivar al equipo, confiar en los miembros y proporcionarles los recursos o apoyos que necesiten
- Las reuniones Scrum son el método más efectivo de comunicarse
- El éxito depende de si el producto final funciona y es satisfactorio
- Los procesos deben ser sostenibles, tanto en recursos materiales, como en la gestión del tiempo y el ritmo de trabajo
- En todo proceso o etapa debe prevalecer la excelencia técnica
- Prevalece la ley de la simplicidad: menos es más
- La autoorganización de los equipos es esencial para buen diseño
- Los tiempos para la reflexión y buscar mejoras es necesario e igual que importante que el resto de fases