You are on page 1of 7

SCRUM

Scrum es una metodología para la gestión y desarrollo de software basada en un proceso


iterativo e incremental utilizado comúnmente en entornos basados en el desarrollo ágil de
software.

Aunque Scrum estaba enfocado a la gestión de procesos de desarrollo de software, puede


ser utilizado en equipos de mantenimiento de software, o en una aproximación de gestión
de programas: Scrum de Scrums.

CARACTERÍSTICAS DE SCRUM

Scrum es un modelo de referencia que define un conjunto de prácticas y roles, y que


puede tomarse como punto de partida para definir el proceso de desarrollo que se
ejecutará durante un proyecto. Los roles principales en Scrum son el ScrumMaster,
que mantiene los procesos y trabaja de forma similar al director de proyecto, el
ProductOwner, que representa a los stakeholders (clientes externos o internos), y el
Team que incluye a los desarrolladores.

Durante cada sprint, un periodo entre 15 y 30 días (la magnitud es definida por el
equipo), el equipo crea un incremento de software potencialmente entregable
(utilizable).

Un principio clave de Scrum es el reconocimiento de que durante un proyecto los


clientes pueden cambiar de idea sobre lo que quieren y necesitan (a menudo
llamado requirements churn), y que los desafíos impredecibles no pueden ser
fácilmente enfrentados de una forma predictiva y planificada. Por lo tanto, Scrum
adopta una aproximación pragmática, aceptando que el problema no puede ser
completamente entendido o definido, y centrándose en maximizar la capacidad del
equipo de entregar rápidamente y responder a requisitos emergentes.

ROLES EN SCRUM:

En Scrum se definen varios roles, estos están divididos en dos grupos: cerdos y
gallinas. El nombre de los grupos están inspirados en el chiste sobre un cerdo y una
gallina que se relata a continuación.

De esta forma, los cerdos están comprometidos a construir software de manera


regular y frecuente, mientras que el resto son gallinas: interesados en el proyecto
pero realmente irrelevantes porque, si éste falla, no son un cerdo, es decir, no son
los que de manera comprometida ponen su propio pellejo (y carne) para sacar el
proyecto adelante. Las necesidades, deseos, ideas e influencias de los roles gallina se
tienen en cuenta, pero no de forma que pueda afectar, distorsionar o entorpecer el
proyecto Scrum.
Roles "Cerdo":

Los Cerdos son los que están comprometidos con el proyecto y el proceso Scrum;
ellos son los que "ponen el jamón en el plato".

Product Owner

El Product Owner representa la voz del cliente. Se asegura de que el equipo


Scrum trabaja de forma adecuada desde la perspectiva del negocio. El Product
Owner escribe historias de usuario, las prioriza, y las coloca en el Product
Backlog.

ScrumMaster (o Facilitador)

El Scrum es facilitado por un ScrumMaster, cuyo trabajo primario es eliminar los


obstáculos que impiden que el equipo alcance el objetivo del sprint. El
ScrumMaster no es el líder del equipo (porque ellos se auto-organizan), sino que
actúa como una protección entre el equipo y cualquier influencia que le
distraiga. El ScrumMaster se asegura de que el proceso Scrum se utiliza como es
debido. El ScrumMaster es el que hace que las reglas se cumplan.

Equipo

El equipo tiene la responsabilidad de entregar el producto. Un pequeño equipo


de 5 a 9 personas con las habilidades transversales necesarias para realizar el
trabajo (diseñador, desarrollador, etc).

Roles "Gallina":

Los roles gallina en realidad no son parte del proceso Scrum, pero deben tenerse en
cuenta. Un aspecto importante de una aproximación ágil es la práctica de involucrar
en el proceso a los usuarios, expertos del negocio y otros interesados (stakeholders).
Es importante que esa gente participe y entregue retroalimentación con respecto a
la salida del proceso a fin de revisar y planear de cada sprint.

Usuarios

¡El software es construido para alguien! Como bien lo dice la paradoja, El árbol
cae en el bosque cuando no hay nadie ¿Hace ruido? Aqui la definicion sería Si el
software no es usado ¿fue alguna vez escrito?.

Stakeholders (Clientes, Proveedores)

Se refiere a la gente que hace posible el proyecto y para quienes el proyecto


producirá el beneficio acordado que lo justifica. Sólo participan directamente
durante las revisiones del sprint.
Managers

Es la gente que establece el ambiente para el desarrollo del producto.

A. Scrum aplicado al Desarrollo de Software


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. En el
desarrollo de software Scrum está considerado como modelo ágil por la Agile
Alliance

Descripción de Roles, artefactos, reuniones y proceso de desarrollo de Scrum.

La intención de Scrum es la de maximizar la realimentación sobre el


desarrollo pudiendo corregir problemas y mitigar riesgos de forma temprana.
Su uso se está extendiendo cada vez más dentro de la comunidad de
Metodologías Ágiles, siendo combinado con otras – como XP – para completar
sus carencias. Cabe mencionar que Scrum no propone el uso de ninguna
práctica de desarrollo en particular; sin embargo, es habitual emplearlo como
un framework ágil de administración de proyectos que puede ser combinado
con cualquiera de las metodologías mencionadas.

EL PROCESO:

 En Scrum un proyecto se ejecuta en bloques temporales cortos y fijos (iteraciones de un


mes natural y hasta de dos semanas, si así se necesita). Cada iteración tiene que
proporcionar un resultado completo, un incremento de producto final que sea
susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.

El proceso parte de la lista de objetivos/requisitos priorizada del producto, que actúa como
plan del proyecto. En esta lista el cliente prioriza los objetivos balanceando el valor que le
aportan respecto a su coste y quedan repartidos en iteraciones y entregas. De manera
regular el cliente puede maximizar la utilidad de lo que se desarrolla y el retorno de
inversión mediante la re planificación de objetivos que realiza al inicio de cada iteración. 

 Las actividades que se llevan a cabo en Scrum son las siguientes:

 Planificación de la iteración

 El primer día de la iteración se realiza la reunión de planificación de la iteración. Tiene dos
partes:

1. Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista de


requisitos priorizada del producto o proyecto. El equipo pregunta al cliente las dudas
que surgen y selecciona los requisitos más prioritarios que se compromete a completar
en la iteración, de manera que puedan ser entregados si el cliente lo solicita.
2. Planificación de la iteración (4 horas máximo). El equipo elabora la lista de tareas de la
iteración necesarias para desarrollar los requisitos a que se ha comprometido. La
estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se
autoasignan las tareas.

B. Ciclo de Vida de Scrum


El ciclo de vida de Scrum es el siguiente:
1. Pre-Juego: Planeamiento. El propósito es establecer la visión, definir
expectativas y asegurarse la financiación. Las actividades son la escritura de la
visión, el presupuesto, el registro de acumulación o retraso (backlog)
del producto inicial y los ítems estimados, así como la arquitectura de alto
nivel, el diseño exploratorio y los prototipos. El registro de acumulación es de
alto nivel de abstracción.
2. Pre-Juego: Montaje (Staging). El propósito es identificar más
requerimientos y priorizar las tareas para la primera iteración. Las actividades
son planificación, diseño exploratorio y prototipos.
3. Juego o Desarrollo. El propósito es implementar un sistema listo para
entrega en una serie de iteraciones de treinta días llamadas “corridas”
(sprints). Las actividades son un encuentro de planeamiento de corridas en
cada iteración, la definición del registro de acumulación de corridas y los
estimados, y encuentros diarios de Scrum.
4. Pos-Juego: Liberación. El propósito es el despliegue operacional. Las
actividades, documentación, entrenamiento, mercadeo y venta.
Usualmente los registros de acumulación se llevan en planillas de cálculo comunes,
antes que en una herramienta sofisticada de gestión de proyectos. Los elementos
del registro pueden ser prestaciones del software, funciones, corrección de bugs,
mejoras requeridas y actualizaciones de tecnología. Hay un registro total del
producto y otro específico para cada corrida de 30 días. En la jerga de Scrum se
llaman “paquetes” a los objetos o componentes que necesitan cambiarse en la
siguiente iteración.
La lista de Acumulación del Producto contiene todos los rasgos, tecnología, mejoras
y lista de bugs que, a medida que se desenvuelven, constituyen las futuras entregas
del producto. Los rasgos más urgentes merecerán mayor detalle, los que pueden
esperar se tratarán de manera más sumaria. La lista se origina a partir de una
variedad de fuentes. El grupo de mercadeo genera los rasgos y la función; la gente
de ventas genera elementos que harán que el producto sea más competitivo; los de
ingeniería aportarán paquetes que lo harán más robusto; el cliente
ingresará debilidades o problemas que deberán resolverse. El propietario de la
administración y el control del backlog en productos comerciales bien puede ser
el product manager; para desarrollos in-house podría ser el project manager, o
alguien designado por él. Se recomienda que una sola persona defina la prioridad
de una tarea; si alguien tiene otra opinión, deberá convencer al responsable. Se
estima que priorizar adecuadamente una lista de producto puede resultar
dificultosa al principio del desarrollo, pero deviene más fácil con el correr del
tiempo.

Al fin de cada iteración de treinta días hay una demostración a cargo del Scrum
Master. Las presentaciones en PowerPoint están prohibidas. En los encuentros
diarios, las gallinas deben estar fuera del círculo. Todos tienen que ser
puntuales; si alguien llega tarde, se le cobra una multa que se destinará a obras de
caridad. Es permitido usar artefactos de los métodos a los que Scrum acompañe,
por ejemplo Listas de Riesgos si se utiliza UP, Planguage si el método es Evo, o los
Planes de Proyecto sugeridos en la disciplina de Gestión de Proyectos de Microsoft
Solutions Framework. No es legal, en cambio, el uso de instrumentos tales como
diagramas PERT, porque éstos parten del supuesto de que las tareas de un proyecto
se pueden identificar y ordenar; en Scrum el supuesto dominante es que el
desarrollo es semi-caótico, cambiante y tiene demasiado ruido como para que se le
aplique un proceso definido.
Algunos textos sobre Scrum establecen una arquitectura global en la fase de
pre-juego; otros dicen que no hay una arquitectura global en Scrum, sino que la
arquitectura y el diseño emanan de múltiples corridas. No hay una ingeniería del
software prescripta para Scrum; cada quien puede escoger entonces las prácticas
de automatización, inspección de código, prueba unitaria, análisis o
programación en pares que le resulten adecuadas.

Como ya se ha mencionado antes, es muy habitual que Scrum se complemente


con XP; en estos casos, Scrum suministra un marco de management basado en
patrones organizacionales, mientras XP constituye la práctica de programación,
usualmente orientada a objetos y con fuerte uso de patrones de diseño. Uno de
los nombres que se utiliza para esta alianza es XP@Scrum. También son viables
los híbridos con otras metodologías ágiles.

You might also like