Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Not A Scrump C Users
Not A Scrump C Users
qxd
3/19/07
5:25 PM
Page 54
(Management)
El mtodo Scrum
crum es, actualmente, uno de los mtodos
giles para desarrollo de software de mayor
difusin en la industria, junto con Extreme
Programming (XP). Su nombre proviene del
rugby, deporte en el que un scrum es una jugada que permite reiniciar el juego luego de una falta accidental. La
eleccin del nombre busca rescatar el principio de trabajo en equipo que se observa en un scrum de rugby: varios jugadores se toman de los hombros y se esfuerzan
para lograr por s solos y rpidamente un objetivo comn, que consiste en aduearse de la pelota y llevarla
hacia delante.
El creador de Scrum es Jeff Sutherland, uno de los 17
gures agilistas que se reunieron en el ao 2001 para establecer los postulados del desarrollo de software
gil, y redactar y firmar el mtico Manifiesto gil. En
el texto de dicho manifiesto se establecen los objetivos de las metodologas giles, entre los cuales se destaca la preferencia de algunos valores por sobre otros,
por ejemplo:
Backlog de
producto
Ciclo
diario
Scrum
Backlog de
sprint
Ciclo
mensual
Ejecutable
incremental
Sprint
Reunin de
demostracin
post-sprint
Reunin de
planificacin de sprint
[Figura 1] En el ncleo del proceso Scrum se observa un ciclo de trabajo de 30 das (sprint) y otro ciclo diario (scrum)
delimitado por reuniones breves del equipo de desarrollo.
54
users.code
3/19/07
5:25 PM
Page 55
metodologas tradicionales fallan al toparse con algunos problemas habituales del desarrollo de software, como la falta de comprensin de los
requerimientos al empezar el proceso, el cambio en los requerimientos
durante el proceso, o la dificultad para prever los resultados del uso de
nuevas herramientas y tecnologas.
Otra diferencia de Scrum con las metodologas tradicionales es que
no trata el proceso de desarrollo de software como un proceso lineal,
en el que se sigue la secuencia de anlisis, diseo, codificacin y testing. En Scrum, el proyecto puede iniciarse con cualquier actividad, y
cambiar de una a otra en cualquier momento.
Un proyecto administrado mediante Scrum se organiza en iteraciones, llamadas sprints, que normalmente tienen entre dos y cuatro semanas de duracin. Al principio de cada sprint se establece una lista de requerimientos llamada backlog, que debe completarse cuando
ste finalice. A diario se realizan breves reuniones del equipo de desarrollo, en las que se exponen los avances y los problemas encontrados, y se sealan posibles caminos para resolverlos (la resolucin
detallada de estos problemas no debe determinarse durante la reunin, para mantener su brevedad).
Gustavo du Mortier
Gerente de desarrollo en
la empresa MasterSoft
gustavo.dumortier@
mastersoft.com.ar
Sprint
Desarrollo
Empaquetado
Revisin
Ajuste
[desarrolladores]
Su majestad el backlog
Un proceso Scrum reconoce tres tipos de backlog: el backlog de producto, el backlog de versin y el backlog de sprint.
El backlog de producto es un repositorio de requerimientos enunciados por los interesados en el xito del proyecto (los llamados stakeholders, que pueden ser usuarios, administradores, tcnicos de soporte,
etc.). Por lo general, los requerimientos incluidos en este backlog son
de alto nivel, evitan detallar cuestiones tcnicas o de implementacin,
y tienen asociadas estimaciones de tiempos tambin de alto nivel, realizadas por los stakeholders.
El backlog de versin (release backlog) consiste en una lista de requerimientos extrada del backlog de producto, priorizada para la prxima
versin (release) del producto. Los elementos de este backlog tienen un
mayor nivel de detalle en cuanto a los requerimientos y tienen asociadas estimaciones ms precisas, realizadas por los miembros del equipo
de Scrum.
El backlog de sprint se arma al principio de cada sprint, y rene
aquellos requerimientos que el equipo se compromete a completar para cuando finalice dicho sprint. Completar un requerimiento implica
codificarlo, testearlo y documentarlo. El backlog de sprint se arma dividiendo los requerimientos del backlog de release en tareas que comnmente pueden completarse en perodos de 8 a 16 horas.
El equipo de trabajo
En Scrum, los equipos de desarrollo deben estar formados por una
cantidad aproximada de siete miembros. El lder del equipo es el denominado Scrum Master, y su trabajo consiste en implementar y administrar el proceso Scrum en el proyecto. Al inicio del proyecto, el equipo debe ponerse de acuerdo en cuanto a las prcticas que se van a implementar, la frecuencia de las reuniones, los artefactos por utilizar, etc.
A partir de all, es responsabilidad del Scrum Master asegurar que el
equipo se atenga a las normas establecidas.
El Scrum Master asume el rol de facilitador, y su autoridad es, en su
Revisin de Sprint
Revisin del software.
Comparacin del backlog con el
software desarrollado.
Edicin del backlog.
Agregado de nuevos puntos al backlog.
Asignar puntos del backlog a los
equipos de desarrollo.
Planificar prxima versin.
[stakeholders]
Anlisis de variables:
tiempo, requerimientos, costo,
calidad. Concuerdan con
los objetivos de
la versin?
S
Cierre.
[stakeholders]
55
3/19/07
5:25 PM
Page 56
[management]
Jeff Sutherland cre una metodologa de procesos de desarrollo
que demostr su efectividad para elevar la productividad.
mayor parte, indirecta. Su trabajo consiste en atajar las interferencias externas para que el equipo de desarrollo optimice su productividad, resolviendo los impedimentos que no pueden ser resueltos
por los miembros del equipo. Su responsabilidad tambin incluye el
hecho de asegurar la transparencia del proceso de desarrollo, manteniendo los artefactos definidos para el proceso (ver el recuadro
Los roles de un Scrum).
Controles
Compuesto por
Backlog
Afecta
Versin
Cuestin
Formado por
Paquete
Produce
Componente / objeto
del producto
Solucin
Resuelve
Cambio
Implementa
Problema
Riesgo
56
users.code
3/19/07
5:25 PM
Page 57
depuracin (debugging), luego de lo cual se construyen los entregables y el proyecto se da por finalizado. Debido a lo imprevisible de los procesos de desarrollo de software, no es posible definir exactamente cundo ocurrir la fase de cierre, de modo que
los proyectos pueden demorarse ms o menos de lo planeado. Pero mediante el uso de los controles que provee Scrum, se pueden
hacer estimaciones sobre su duracin.
57
3/19/07
5:26 PM
Page 58
[management]
proyecto obtener mtricas sobre l. Por ejemplo: el nmero de puntos del backlog define el tamao del proyecto, mientras que la cantidad de puntos finalizados
exitosamente indica el progreso logrado. A su vez, la
cantidad de riesgos define la complejidad del proyecto.
Sugerencias de su creador
En exclusiva, gracias a la gente de
Baufest (www.baufest.com), tuvimos
la posibilidad de reunirnos con el Dr.
Jeff Sutherland, creador de la metodologa Scrum y coautor del Manifiesto gil. l mismo nos cuenta cules son los beneficios de esta metodologa que, da a da, las empresas
toman como referente.
Scrum es una forma de gestionar
proyectos de software. No es una
metodologa de anlisis, ni de diseo, como podra ser RUP, sino una
metodologa de gestin del trabajo.
Una de las caractersticas ms importantes es que es muy fcil de explicar y de entender, lo que contribuye mucho a su implantacin.
Cmo ayuda Scrum en la evolucin del
desarrollo de software?
Scrum puede ser aplicada a distintos
modelos de calidad (como podra ser
CMMI), puesto que stos dicen qu
tendramos que hacer o qu deberamos gestionar en el proyecto, pero
no nos dicen cmo hacerlo. Ah es
donde entra Scrum como modelo de
gestin del proyecto. Los siguientes
son los elementos bsicos de esta
metodologa:
> Una lista, llamada Product Backlog,
con las funcionalidades de la apli-
58