domingo, 10 de abril de 2011

modelo de ciclo de vida Scrum

Scrum es una Metodología Ágil[14] para desarrollar el software en equipos. La filosofía en la que se basa es que el proceso de desarrollo software es muy complejo y imprevisible y que la única manera de manejarlo e intentar controlarlo es tratarlo como una caja negra y no como un proceso lineal definido en todas su etapas. Las motivaciones más importantes en las que se enfoca esta idea son las que todos los ingenieros del software conocen: es muy difícil entender bien los requisitos desde las primeras fases del proyecto, los requisitos pueden cambiar durante el desarrollo y la evolución del sistema es imprevisible cuando se necesite cambiar o añadir tecnologías y herramientas en marcha.

En los modelos clásicos de ciclo de vida del software (Modelo en cascada, Modelo incremental,
Modelo de prototipo, Modelo en espiral, ..) las etapas de desarrollo consisten básicamente en cuatro actividades principales:
  • Análisis;
  • Diseño;
  • Desarrollo;
  • Evaluación;
Estas actividades se llevan a cabo con un orden definido que suele vincular el proceso de desarrollo.
Sin embargo, si se opta por seguir la metodología SCRUM, el ciclo de vida no se trata como un flujo lineal en el que se puedan distinguir exactamente estas actividades; además no se precisa seguir un orden preciso en el proceso de desarrollo. El proyecto puede empezar con cualquier actividad y se puede pasar de una actividad a otra en cualquier momento maximizando la flexibilidad y la productividad del equipo. Hay que trabajar en equipos pequeños para reducir
problemas de comunicación y coordinamiento y, a la vez, maximizar la cooperación; se precisa finalmente que todas las actividades y las entregas, tienen que ser flexibles. Data su flexibilidad, esta metodología se puede utilizar incluso como wrapper para modelos de desarrollo ya existentes.


Visión global de SCRUM

El nombre SCRUM deriva de una analogía con el Rugby: en este deporte se llama SCRUM una manera de reiniciar rápidamente el juego cuando se haya interrumpido por alguna infracción accidental. Otras analogías con el Rugby son que el entorno (recursos, requisitos, tecnología,..) determina la evolución y la terminación del proceso de desarrollo; como el Rugby ha nacido violando las reglas del fútbol, así SCRUM se ha desarrollado anteponiendo las prioridades de unos proyectos concretos a las reglas de la Ingeniería del Software. Pero la analogía mas representativa es que el primer objetivo del equipo, bien en SCRUM como en el Rugby, es siempre lo de adelantar la pelota (el proyecto!).

Técnicas usadas en SCRUM

Para aplicar SCRUM y aprovechar su flexibilidad, hay que utilizar las siguientes técnicas:

Creación del Equipo, Definición de Los Backlog, Segmentación del Proyecto, SCRUM Meetings.

Creación del Equipo: un equipos de desarrollo tiene que estar compuesto al maximo por 8 personas; hay un facilitator del equipo (Scrum master) que orquesta los miembros del equipo a lo largo del proceso, actua como interfaz con las influencias externas y intenta resolver los problemas encontrados por los miembros del equipo. El equipo define las practicas, la terminología, la evolución del producto coralmente y el facilitator del equipo se preocupa que se éstos respecten.
Definición de Los Backlogs: los Backlogs definen los trabajos que hay que hacer. Hay 3 diferentes tipologias: los Backlogs del producto, que son los requisitos a cumplir en una dada version del producto; los Backlogs de la release que son los requisitos elejidos para cumplir en una dada release del producto y finalmente los Sprint Backlogs que son los requisitos a realizar en una unidad de trabajo de máximo 4 semanas; mas cada elemento atomico del Sprint Backlog necesita 8-16 horas de trabajo.

1 comentario: