Scrum es una metodología ágil de
desarrollo de proyectos que toma su nombre y principios de los estudios
realizados sobre nuevas prácticas de producción por Hirotaka Takeuchi e Ikujijo
Nonaka a mediados de los 80.
Aunque surgió como modelo para el
desarrollo de productos tecnológicos, también se emplea en entornos que
trabajan con requisitos inestables y que requieren rapidez y flexibilidad;
situaciones frecuentes en el desarrollo de determinados sistemas de software.
Jeff Sutherland aplicó el modelo Scrum al desarrollo
de software en 1993 en Easel Corporation (Empresa que en los macro-juegos de
compras y fusiones se integraría en VMARK, luego en Informix y finalmente en
Ascential Software Corporation). En 1996 lo presentó junto con Ken Schwaber
como proceso formal, también para gestión del desarrollo de software en OOPSLA
96. Más tarde, en 2001 serían dos de los promulgadores del Manifiesto_ágil. En
el desarrollo de software scrum está considerado como modelo ágil por la Agile
Alliance.
Definición de proyecto
Según la definición que nos
proporciona PMI en su guía PMBOOK, un
proyecto se podría definir como “un servicio temporal que se lleva a cabo para
crear un producto, servicio o resultado único”.
Se puede decir entonces que un
proyecto tiene un inicio y un fin, este fin se tiene que alcanzar dentro de un
tiempo fijado.
En un proyecto la consecución de
los objetivos al final del mismo es la máxima deseada, pero la mayor parte de
las veces, bien por una mala planificación, o bien por una mala gestión de los
recursos, es importante finalizar el proyecto con éxito.
Teoría de Scrum
Scrum se fundamenta en la teoría
empírica de control de procesos, o empirismo. El empirismo asegura que el
conocimiento procede de la experiencia y de tomar decisiones basándose en lo que
se conoce. Scrum emplea una aproximación iterativa e incremental para optimizar
la predictibilidad y controlar el riesgo.
Tres pilares soportan toda
implementación del control empírico de procesos: transparencia, inspección y
adaptación.
Transparencia
Los aspectos significativos del
proceso deben ser visibles para aquellos que son responsables del resultado. La
transparencia requiere que dichos aspectos sean definidos por un estándar
común, de modo que los observadores compartan un entendimiento común de lo que
se está viendo.
Inspección
Los usuarios de Scrum deben
inspeccionar frecuentemente los artefactos de Scrum y el progreso hacia un
objetivo, para detectar variaciones no deseables. Su inspección no debe ser tan
frecuente como para que interfiera en el trabajo. Las inspecciones son más
beneficiosas cuando son realizadas de forma diligente por inspectores expertos,
en el mismo lugar de trabajo.
Adaptación
Si un inspector determina que uno
o más aspectos de un proceso se desvían de límites aceptables, y que el
producto resultante no será aceptable, el proceso o el material que está siendo
procesado deben ser ajustados. Dicho ajuste debe ser realizado cuanto antes
para minimizar desviaciones mayores.
Las reuniones
·
Planificación de sprint: Jornada de trabajo previa
al inicio de cada sprint en la que se determina cuál va a ser el trabajo y los objetivos
que se deben cumplir en esa iteración.
·
Reunión diaria: Breve revisión del equipo del trabajo
realizado hasta la fecha y la previsión para el día siguiente.
·
Revisión de sprint: Análisis y revisión del incremento
generado.
Los elementos
·
Pila del producto: lista de requisitos de usuario
que se origina con la visión inicial del producto y va creciendo y
evolucionando durante el desarrollo.
·
Pila del sprint: Lista de los trabajos que debe realizar
el equipo durante el sprint para generar el incremento previsto.
·
Incremento: Resultado de cada sprint
Los roles
·
El Dueño
de Producto (Product Owner)
El Dueño de
Producto es el responsable de maximizar el valor del producto y del trabajo del
Equipo de Desarrollo. El cómo se lleva esto a cabo puede variar ampliamente
entre distintas organizaciones, Equipos Scrum, e individuos.
El Dueño de
Producto es la única persona responsable de gestionar la Pila de Producto
(Product Backlog). La gestión de la Pila de Producto incluye:
Ø
Expresar claramente
los elementos de la Pila de Producto;
Ø
Ordenar los
elementos en la Pila de Producto para alcanzar los objetivos y misiones de la mejor
manera posible;
Ø
Asegurar el valor
del trabajo desempeñado por el Equipo de Desarrollo;
Ø
Asegurar que la
Pila de Producto es visible, transparente y clara para todos, y que muestra aquello
en lo que el equipo trabajará a continuación; y,
Ø
Asegurar que el
Equipo de Desarrollo entiende los elementos de la Pila de Producto al nivel necesario.
El Dueño de
Producto puede hacer el trabajo anterior, o delegarlo en el Equipo de
Desarrollo. Sin embargo, en ambos casos el Dueño de Producto sigue siendo el
responsable de dicho trabajo.
·
El Equipo
de Desarrollo (Development Team)
El Equipo de
Desarrollo consiste en los profesionales que desempeñan el trabajo de entregar
un Incremento de producto “Hecho”, potencialmente utilizable, al final de cada
Sprint. Sólo los miembros del Equipo de Desarrollo participan en la creación
del Incremento.
Los Equipos de
Desarrollo se estructuran y reciben poderes por parte de la organización para organizar
y gestionar su propio trabajo. La sinergia resultante optimiza la eficiencia y
efectividad general del Equipo de Desarrollo. Los Equipos de Desarrollo tienen
las siguientes características:
Ø
Son
autoorganizados. Nadie (ni siquiera el Scrum Master) indica al Equipo de Desarrollo
cómo convertir elementos de la Pila de Producto en Incrementos de funcionalidad
potencialmente entregables;
Ø
Los Equipos de
Desarrollo son multifuncionales, contando como equipo con todas las habilidades
necesarias para crear un Incremento de producto;
Ø
Scrum no reconoce
títulos para los miembros de un Equipo de Desarrollo, todos son Desarrolladores.
Independientemente del trabajo que realice cada persona, no hay excepciones a
esta regla;
Ø
Miembros
individuales del Equipo de Desarrollo pueden tener habilidades
especializadas o áreas en las que estén más enfocados, pero la responsabilidad
recae en el Equipo de Desarrollo como un todo; y,
Ø
Los Equipos de
Desarrollo no contienen sub-equipos dedicados a dominios concretos como pruebas
o análisis de negocio.
·
El Scrum
Master
El Scrum Master
es el responsable de asegurar que Scrum es entendido y llevado a cabo. Los Scrum
Masters hacen esto asegurándose de que el Equipo Scrum trabaja ajustándose a la
teoría, prácticas y reglas de Scrum. El Scrum Master es un líder servil, al
servicio del Equipo Scrum.
El Scrum Master
ayuda a las personas externas al Equipo Scrum a entender qué interacciones con
el Equipo Scrum pueden ser de ayuda y cuáles no. El Scrum Master ayuda a todos
a modificar estas interacciones, para maximizar el valor creado por el Equipo
Scrum.
El Servicio del Scrum Master al Dueño de
Producto
El Scrum Master
da servicio al Dueño de Producto de varias formas, incluyendo:
Ø
Encontrar técnicas
para gestionar la Pila de Producto de manera efectiva;
Ø
Comunicar
claramente la visión, los objetivos y los elementos de la Pila de Producto al Equipo
de Desarrollo;
Ø
Enseñar al Equipo
Scrum a crear elementos de la Pila de Producto claros y concisos;
Ø
Entender la planificación a largo plazo del
producto en un entorno empírico;
Ø
Entender y
practicar la agilidad; y,
Ø
Facilitar los
eventos de Scrum según se requiera o necesite.
El Servicio del Scrum Master al Equipo de
Desarrollo
El Scrum Master
da servicio al Equipo de Desarrollo de varias formas, incluyendo:
Ø
Entrenar al Equipo
de Desarrollo en ser autoorganizado y multifuncional;
Ø
Formar y liderar al
Equipo de Desarrollo en la creación de productos de alto valor;
Ø
Eliminar
impedimentos al progreso del Equipo de Desarrollo;
Ø
Facilitar los
eventos de Scrum según se requiera o necesite; y,
Ø
Entrenar al Equipo
de Desarrollo en el entorno de organizaciones en las que Scrum aún no ha
sido adoptado y entendido por completo.
El Servicio del Scrum Master a la
Organización
El Scrum Master
da servicio a la organización de varias formas, incluyendo:
Ø
Liderar y entrenar
a la organización en su adopción de Scrum;
Ø
Planificar
implementaciones de Scrum en la organización;
Ø
Ayudar a los
empleados e interesados a entender y llevar a cabo Scrum y el desarrollo
empírico de producto;
Ø
Causar cambios que
incrementen la productividad del Equipo Scrum; y,
Ø
Trabajar con otros
Scrum Masters para incrementar la efectividad de la aplicación de Scrum en
la organización.
No hay comentarios:
Publicar un comentario