El Desarrollo ágil de Software a un paradigma de las Metodologías de desarrollo basado en procesos ágiles. Los procesos ágiles de desarrollo de software, conocidos anteriormente como metodologías livianas, intentan evitar los tortuosos y burocráticos caminos de las metodologías tradicionales enfocándose en la gente y los resultados.
El proceso ágil usa un enfoque basado en el Valor para construir software, colaborando con el cliente e incoporando los cambios continuamente.
Como veremos, Scrum es una metodología ágil para la gestión de proyectos.
Scrum es una metodología para la gestión de proyectos. Es considerada una metodología ágil para el desarrollo de software, si bien Scrum puede ser aplicado para la administración de proyectos de prácticamente cualquier índole.
En Scrum todo el desarrollo ocurre en iteraciones de duración fija. Estas iteraciones de duración fija se denominan Sprint.
La duración del Sprint, de entre 2 y 4 semanas, se establece al comienzo del proyecto, y se mantiene durante toda la vida del mismo. Esto es importante para hacer uso de las métricas que provee Scrum.
Durante cada Sprint el equipo desarrolla una porción del sistema. Lo destacable del Sprint es que este desarrollo incremental es con calidad productiva, y cumple algún requerimiento del usuario (por más chico que sea).
De esta manera, al finalizar cada Sprint se tiene una porción del producto con calidad productiva, que el usuario puede decidir poner en producción.
En Scrum hay 3 roles principales que definen distintas responsabilidades de quienes participan en el proyecto:
Entonces tenemos a los Miembros del Equipo, el Scrum Master y el Dueño del Producto (o Product Owner), que están comprometidos a construir software de manera frecuente y regular.
Los miembros del equipo de Scrum son interdisciplinarios, y se comprometen durante todo el Sprint para trabajar exclusivamente en el proyecto. Son quienes estiman las tareas, determinan cuanta funcionalidad podrán entregar en el Sprint.
El backlog del producto es el artefacto más importante de Scrum, ya que dirige la construcción. El backlog es un inventario o una lista priorizada de requerimientos funcionales, mejoras, tecnología y corrección de errores que deben incorporarse al producto a través de las sucesivas iteraciones. Representa todo aquello que esperan los clientes, usuarios, y en general los interesados en el producto.
El Dueño del Producto es el responsable del Backlog.
Los elementos del Backlog suelen ser historias de usuario, es decir, funcionalidad del sistema escrita en frases muy cortas, en el lenguaje del usuario.
En Scrum existen 4 tipos de reuniones que ocurren durante el Sprint, en distintos momentos.
La primer reunión de Scrum es la llamada Reunión de Planificación. Esta reunión ocurre el primer día del Sprint, y participan el Dueño del Producto, el Scrum Master y los integrantes del Equipo. El Dueño del Producto presenta y prioriza las historias del Backlog del Producto. El Equipo las estima, y decide así cuántas historias podrá completar durante el Sprint que inicia.
La reunión más importante de Scrum es la llamada Scrum Diario. Esta reunión corta, de no más de 15 minutos, ocurre todos los días a la misma hora. Participan todos los Miembros del Equipo y el Scrum Master. En esta reunión cada integrante explica qué hizo el día anterior, qué va a hacer este día, y cuánto le falta para completar dicha tarea.
El último día del Sprint se realiza la reunión de Demostración o Revisión del Sprint. En esta reunión el Equipo muestra el trabajo realizado durante el Sprint, demostrando el producto funcionando en una PC.
También durante el último día del Sprint se realiza la reunión de Retrospectiva del Sprint, con lo que se cierra oficialmente el Sprint. En esta reunión el equipo se fija en cómo fue su trabajo, sus relaciones con otras personas y entre ellos mismos, y proponen mejoras de todo tipo para mejorar el desarrollo en el Sprint que sigue.
La idea a este momento es que tengas una noción general de Scrum. En particular, deberías tener en claro que:
Durante los capítulos siguientes iremos profundizando estos conceptos de manera práctica, y veremos más detalladamente cómo llevar adelante una gestión de proyectos con Scrum.
Scrum es una metodología ágil para la gestión de proyectos. En este capítulo veremos los conceptos fundamentales de la metodología.