Scrum

Scrum (melé en español) es un modelo de desarrollo ágil que, aunque surgió como modelo para el desarrollo de productos tecnológicos, es empleada en entornos que trabajan con requisitos inestables y que requieren rapidez y flexibilidad, como el desarrollo de software. Está centrada principalmente en la gestión del equipo de desarrollo.
Comenzaremos por ver los roles y artefactos para luego describir cómo se produce el desarrollo, describiendo las importantes reuniones que caracterizan el proceso.

Roles Scrum

Roles

En Scrum hay tres roles fundamentales: Product Owner, Scrum Master y equipo (de desarrollo), que forman en su conjunto el equipo scrum. Además de estos roles está el del cliente, agente externo, que es el origen del proceso al indicar las necesidades del producto al Product Owner. Veamos estos roles con más detenimiento.

Scrum master

Es el responsable de la correcta aplicación de la metodología en el desarrollo del proyecto por parte de el/los equipo/s, guiando las reuniones, eliminando impedimentos y ayudando al equipo. Es desarrollador 50% y toma decisiones rápidas, asegurando que el equipo es completamente funcional y productivo, estando además a su servicio. Representa al equipo frente al propietario de producto y al propietario frente al equipo.

Equipo

El equipo es multifuncional, auto-organizado y su único propósito es cumplir con el objetivo del sprint. Cada equipo estará formado por un número pequeño de personas, siendo 7 el número ideal (± 2 personas), que trabajan estando en contacto constante.

Cliente o usuario

El cliente es el beneficiario final del producto. Viendo los progresos pueden aportar ideas, sugerencias o necesidades no contempladas. Su participación es fundamental.

Product Owner (propietario del producto)

El propietario del producto es la persona encargada de la dirección y control del Product Backlog, así como las fechas de las entregas, que han de ser establecidas en acuerdo con el equipo. Define las funcionalidades del producto y toma las decisiones de negocio, siendo responsable de la rentabilidad del producto. Puede ser el propio cliente u otra persona que esté en contacto directo con el cliente. A su vez, ha de asistir a todas las reuniones de planificación y revisión de cada sprint y estar en contacto contínuo con el equipo.

Product Backlog
(agenda del producto)

Se trata de la lista completa de funcionalidades que quedan por añadir al producto. El propietario del producto es el que prioriza el Product Backlog de forma que el equipo trabaje en las características más importantes en cada momento. El Product Backlog se llena de historias de usuario, que describen la funcionalidad necesaria desde la perspectiva del usuario.

Sprint Backlog

En el primer día de un sprint, durante la reunión de planificación, los miembros del equipo crean el sprint backlog, que contiene las tareas que el equipo hará durante el sprint para conseguir la funcionalidad descrita en el Product Backlog.

Burndown Chart

Aquí tenemos dos Burndown Charts, la del sprint y la de las entregas. Éstas muestran el trabajo que queda en un sprint o para finalizar una entrega, y ayuda a determinar si se está cumpliendo la planificación.

Artefactos

El principal artefacto es obviamente el propio producto, pero dentro del modelo Scrum hay tres artefactos principales que permiten la puesta en práctica del modelo:

El desarrollo Scrum y las reuniones

En Scrum los proyectos avanzan en una serie de “Sprints” de duración constante, generalmente entre 2 y 4 semanas, durante los que no se producen cambios.

Al inicio de cada sprint se produce una reunión de planificación del sprint (Sprint Planning Meeting). En esta reunión los miembros del equipo definen el sprint backlog listando las tareas a realizar para conseguir el producto final de ese sprint.

Durante el sprint, el producto es diseñado, codificado y testeado. Durante esta fase se produce la reunión scrum diaria (Daily Scrum Meeting), que dura un máximo de 15 minutos, en la que los miembros del equipo comparten el trabajo del día anterior, lo que harán ese día y los problemas o impedimentos que han encontrado para progresar. De esta forma se sincroniza el trabajo de todos los miembros.

Al final de cada sprint se realiza una revisión del sprint (Sprint review) donde el equipo muestra las nuevas funcionalidades al Product Owner y/o al cliente,, que podrá aportar realimentación que influenciará los siguientes sprints. Además, se realiza una reunión conocida como retrospectiva (Sprint retrospective), que se produce también al final de cada sprint y a la que asisten el PO, el SM y el equipo. El objetivo de esta reunión es reflexionar acerca del sprint que acaba de terminar tratando de identificar oportunidades de mejora.

Proceso Scrum

La metodología Scrum ha sido empleada por multitud de grandes empresas como Microsoft, Google, Electronic Arts, Philips, Siemens, BBC, Time Warner, etc. para numerosas aplicaciones: software comercial, videojuegos, sitios web, teléfonos móviles, proyectos a precio fijo, aviones de combate, software de control satelital, etc.