Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Tesina de Grado
MEJORA DE LA
Metodología Scrum
Resumen
Scrum es el nombre de una metodología ágil de gestión de proyectos formulada en el
año 1989 por Horitaka Takeuchi y Ikujiro Nonaka.
Sobre la base del conocimiento ganado en la carrera de grado acerca de metodologías
de desarrollo de software, la investigación realizada más dos años experiencia personal en su
utilización intensiva, el presente trabajo se propone descubrir y analizar sus puntos débiles, con
el fin de identificar oportunidades de mejora.
Como resultado, se espera ofrecer las empresas y grupos de personas que desean
utilizarla, orientaciones para aplicarla con mayor eficiencia y para resolver mejor los problemas
que enfrentan, minimizando así las probabilidades de fracaso.
1
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Índice
RESUMEN ......................................................................................................... 1
ÍNDICE ............................................................................................................... 2
1 INTRODUCCIÓN: ........................................................................................ 6
1.3 Justificación..................................................................................................................... 8
3 ANÁLISIS .................................................................................................. 33
2
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
4 DISEÑO ..................................................................................................... 39
5 CONCLUSIÓN ........................................................................................... 60
6 GLOSARIO ................................................................................................ 61
3
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
7 BIBLIOGRAFÍA ......................................................................................... 63
8 ANEXO 1 ................................................................................................... 66
8.1.1 Modelo iterativo e incremental .................................................................................... 66
8.1.1.1 Etapa de inicialización ..................................................................................... 66
8.1.1.2 9.1.2 Etapa de iteración................................................................................... 66
8.1.1.3 Lista de control de proyecto ............................................................................ 67
4
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Tabla 2.1.3-1 Metodología ágil vs Metodología Tradicional (José H. Canós P. L.). .............. 13
Tabla 2.1.3-2 Uso de las metodologías ágiles ........................................................................ 14
Gráfico 2.1.3-1 Uso de las metodologías ágiles ..................................................................... 14
Tabla 2.1.3-3 Comparación de metodologías (Schwaber, SCRUM Development Process,
págs. 10-11) ............................................................................................................................ 16
Gráfico 2.2.3-1 El flujo de trabajo en Scrum ........................................................................... 19
Gráfico 2.2.4.1-1 Sprint Planning Meeting .............................................................................. 22
Gráfico 2.2.4.4-1 Ciclo de Scrum ............................................................................................ 28
Gráfico 2.2.5-1 Burn Down detallado ...................................................................................... 29
Gráfico 2.2.5-2 Burn Down ...................................................................................................... 30
Gráfico 2.2.7-1 Proceso actual de Scrum según reglas (Autor M. Casamayor) ..................... 32
Tabla 3.1.1-1 Scrum Vs XP ..................................................................................................... 34
Gráfico 3.3-1 Mejora de productividad de software ................................................................ 37
Gráfico 4.1.6-1 Scrum enfocado a proyectos informáticos - Autor: Martín Casamayor. ........ 56
5
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
1 Introducción:
6
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Por tratarse de una metodología nacida a mediados de la década de los ‘80, existe
sobre el tema una rica bibliografía y abundantes acreditaciones internacionales. Existen
también herramientas informáticas para administrar los proyectos de desarrollo de software que
aplican Scrum. Esto dio lugar al surgimiento de múltiples foros de discusión, en los cuales se
puede obtener información, lo cual contribuye a llevar a Scrum un paso más adelante.
7
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
1.2 Objetivo
1.3 Justificación
Las metodologías ágiles son un recurso relativamente nuevo. No fue sino hasta
mediados de la década de los ‘90 cuando Scrum surgió como una metodología ágil para
proyectos de software. Sin embargo, a pesar de ser relativamente nueva, el uso de Scrum ha
crecido significativamente.
Al momento de comenzar a utilizar una metodología ágil, comienzan a surgir
eventualidades que no favorecen al desarrollo del proyecto. En el ámbito del desarrollo
informático se suele decir que, por tratarse de una metodología ágil, hay muchos aspectos en
los cuales las decisiones quedan a criterio de quien la esté implementando. Un ejemplo de esto
es la documentación.
La “libertad” propia de este tipo de metodologías genera muchas veces un resultado
negativo, ya que no existe una solida base sobre la cual referenciarse, lo que conduce a
entregas tardías, con calidad mediocre, disconformidad del cliente y/o del equipo, etc.
Por otra parte, a pesar que en este tipo de metodologías existen reglas, éstas se
pueden aplicar de diferente manera según el proyecto o el equipo de que se trate. Esto no
debería ocurrir, ya que una regla debe ser invariable. Sin embargo, la variación en cuanto a la
forma de aplicación de las reglas se observa constantemente en los diferentes equipos. Estos
son, precisamente, los puntos que llevan a replantear el tema y proponer una solución.
La solución consiste en establecer una base más robusta y sólida, en la cual no existan
ambigüedades ni tal grado de libertad que dé lugar confusión o errores en el equipo.
Asimismo,, se procurará reducir los retrasos, las deficiencias en la calidad y todo otro tipo de
inconvenientes en los desarrollos que aplican Scrum.
Se espera lograr este objetivo por medio de la incorporación a la Metodología Scrum de
buenas prácticas como la Ingeniería de Requisitos de Desarrollo, utilizada por otras
metodologías y teniendo en cuenta otras exigencias de calidad propias de los proyectos de
software.
1.4 Delimitaciones
8
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
9
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
2 Marco Teórico
Para comenzar a hablar de Scrum es necesario definir, en primer lugar, qué es una
metodología ágil y en qué aspectos difiere de una tradicional. Las metodologías tradicionales
se dividen en fases que son, por lo general, Análisis, Diseño, Desarrollo, Implementación
y Mantenimiento.
Las metodologías ágiles, por su parte, se dividen en pequeños proyectos que se van
llevando a cabo en forma incremental. A continuación se presentan las bases y significado de
las metodologías ágiles.
En el año 2001 un grupo pionero en las metodologías ágiles reunió y estableció las
bases para desarrollarlas. Este enunciado se conoce como ”Manifiesto Ágil” (Kent Beck, 2001)
(Larman, Agile and iterative development: a manager's guide, 2004) (Doug Rosenberg, 2005) y
propone:
Dar más importancia a la interacción entre personas, que a los procesos y
herramientas.
Dar más importancia a los productos que funcionan, que a la documentación
extensiva.
Incentivar la colaboración con el cliente, más que la negociación del contrato.
Responder al cambio es mejor que seguir el plan.
Existen también doce principios para el desarrollo ágil de software, redactados por los
mismos autores. Estos son:
La prioridad es satisfacer al cliente mediante tempranas y continuas entregas
de software que le aporte valor.
Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente
tenga una ventaja competitiva.
Entregar frecuentemente software que funcione desde un par de semanas a un
par de meses, con el menor intervalo de tiempo posible entre entregas.
La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del
proyecto.
Construir el proyecto en torno a individuos motivados. Darles el entorno y el
apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.
El diálogo cara a cara es el método más eficiente y efectivo para comunicar
información dentro de un equipo de desarrollo.
El software que funciona es la principal medida de progreso.
10
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
11
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Hasta hace poco, la tarea de desarrollo llevaba asociado un marcado énfasis sobre el
control del proceso por medio de una rigurosa definición de roles, actividades y artefactos,
incluyendo modelado y documentación detallada. Este esquema tradicional para abordar el
desarrollo de software ha demostrado ser efectivo y necesario en proyectos de gran tamaño
(en cuanto a tiempo y recursos), en los cuales, por lo general, se exige un alto grado de
formalidad en el proceso. Sin embargo, este enfoque no resulta ser el más adecuado para
muchos de los proyectos actuales, donde el entorno del sistema es muy cambiante, y en los
cuales se exige reducir drásticamente los tiempos de desarrollo, manteniendo una alta calidad.
Ante las dificultades para utilizar metodologías tradicionales con estas restricciones de
tiempo y flexibilidad, muchos equipos de desarrollo se resignan a prescindir de las reglas de las
“buenas prácticas” de la ingeniería del software, asumiendo el riesgo que esto implica. En este
escenario, las metodologías ágiles surgen como una alternativa para llenar ese vacío
metodológico. Por estar especialmente orientadas a proyectos pequeños, las metodologías
ágiles representan una solución a medida para ese entorno, aportando una notable
simplificación que, sin embargo, no renuncia a las prácticas esenciales para asegurar la calidad
del producto.
Las metodologías ágiles son uno de los temas que en la actualidad despiertan gran
interés en la ingeniería de software, y están ganando espacio en la mayoría de las conferencias
y workshops. Su impacto es tan grande que, inclusive, son el tema central de muchas
conferencias internacionales. (Ciencia y Técnica Administrativa). En la comunidad de la
ingeniería del software, se está viendo con frecuencia un debate abierto entre los que siguen
las metodologías tradicionales y aquellos que apoyan las ideas del “manifiesto ágil”.
La mayoría de los ingenieros de software y de los usuarios de estas nuevas prácticas
sienten que las metodologías ágiles tienen un gran futuro por delante en el campo del
desarrollo de software y en el ámbito industrial. Por un lado, para muchos equipos de trabajo
las metodologías tradicionales representan algo muy diferente de la forma de trabajo actual,
considerando las dificultades para introducirlas y la inversión que implican en cuanto a
capacitación y equipos. Por otra parte, las características de los proyectos para los cuales las
metodologías ágiles han sido especialmente pensadas, se ajustan a un amplio rango de
proyectos industriales de desarrollo de software. Precisamente aquellos en los cuales los
equipos de desarrollo son pequeños, con plazos reducidos, requisitos y alcances cambiantes, y
basados en nuevas tecnologías. (José H. Canós P. L.)
¿Se debe a esto que está siendo tan investigada y utilizada por grupos de desarrollo y
gestión de proyectos? Actualmente la gran mayoría de los proyectos de software son proyectos
de pequeños a medianos, con plazos menores de un año para cumplir las etapas de análisis,
diseño, desarrollo e implementación. Además, no se puede comenzar por hacer un análisis de
los requisitos del momento actual porque, por lo general, cambiarán en el transcurso del
12
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
desarrollo. Los requisitos no sólo cambian de manera rápida, sino que también es muy difícil
definirlos por la cantidad de información de que se dispone en la actualidad (José H. Canós).
A continuación se presenta una tabla comparativa entre ambos tipos de metodología.
Como actúa el cliente en el El cliente es parte del equipo El cliente interactúa con el
proyecto de desarrollo. equipo de desarrollo mediante
reuniones.
13
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
En consecuencia, en líneas generales, una metodología ágil puede resultar muy útil
para corregir requisitos mal formulados, mal definidos o incompletos. Por otra parte, al ser más
libre y no basarse tanto en el cumplimiento de normas, su costo tiende a ser menor.
A continuación se presenta un gráfico sobre la cantidad de proyectos que utilizan
metodologías ágiles. Agile journal (N°1, Marzo-2006 )1.
En esta encuesta, también se consultó por qué utilizan estas metodologías. Las
respuestas fueron las siguientes:
Para reducir el tiempo de desarrollo: 45%
Para mejorar la calidad: 43%
Para reducir costes: 23%
Para alinear el desarrollo con los objetivos de negocio: 39%
Otras razones: 12%.
¿Y cuál es el ranking de preferencias entre los modelos ágiles? Estos fueron los
resultados:
1. Extreme Programming (28%)
2. FDD (26%)
3. Scrum (20%)
4. Crystal (6%)
1
Encuesta realizada por CM Crossroad en el año 2006 en los Estados Unidos. (CM Crossroad).
14
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
5. DSDM (4%)
Llegada la hora de elegir una metodología ágil, estas encuestas permiten prever cuáles
son las metodologías que probablemente tendrán mayor soporte en foros de debate y grupos,
así como documentación acerca de casos ocurridos.
Todas estas consideraciones resultan muy valiosas al momento de decidirse por una.
Sin embargo, existen otros aspectos a tener en cuenta.
Cuando se pretende cambiar de una metodología de desarrollo por otra, el costo del
cambio resulta, por lo general, grande. Este costo, expresado en tiempo y dinero, comprende:
Capacitación: Del equipo que va a emplear la metodología, del cliente en caso
de que éste participe en el equipo, y a su vez para informarlo de cómo serán
las entregas de versiones del producto, etc.
Tiempo de adaptación de las personas del equipo.
Tiempo de adaptación del cliente, si es que este pasa a involucrarse
directamente con el equipo de desarrollo.
Sin embargo, los estudios realizados también revelan que, si se utilizan metodologías
tradicionales que implican normas y políticas a cumplir, aunque comenzar a utilizar una
metodología ágil implica un costo inicial mediano, éste tiende a ser bajo a largo plazo, ya que
las metodologías ágiles en general son gratuitas, hay mucho software para implementarlas y
herramientas para aplicarlas que son gratuitos, todo lo cual representa grande ventajas.
A continuación se presenta un cuadro que refleja las diferencias entre Scrum y otro tipo
de metodologías no ágiles.
Comparación de procesos
15
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Tabla 2.1.3-3 Comparación de metodologías (Schwaber, SCRUM Development Process, págs. 10-
11)
16
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
2.2 Scrum
Scrum (Schwaber, 2004) (Ken, 2007) (Ken Schwaber, 2001) (Cohn, 2004) es una
metodología de gestión de proyectos de software iterativa e incremental. Se aplica sobre la
base de reglas propias, que se deben aplicar en todo momento. También incluye dentro del
equipo de desarrollo a un usuario o dueño del proyecto (Product Owner) y a un líder de
proyecto (Scrum Master).
En la metodología se plantean todas las reglas necesarias para saber si se está
gestionando correctamente un proyecto. Sin embargo, no se plantea ninguna práctica ni
proceso de ingeniería de software para aplicarla. Esto se debe a que Scrum no se enfoca en la
gestión de proyectos de una rama específica, sino que puede aplicarse a proyectos de
informática, de electrónica, de construcción de automóviles, etc.
En la actualidad, Scrum resulta exitosa en el desarrollo de proyectos de informática, ya
que plantea reglas claras acerca de cómo gestionarlos y ofrece libertad a la hora de utilizar
prácticas de ingeniería de software. Esto último puede representar tanto una ventaja como una
dificultad. En varias experiencias se ha visto que surgen problemas al momento de decidir
cuáles procesos de la ingeniería de software aplicar, o qué herramientas para el desarrollo de
la aplicación se va a utilizar, ya que Scrum no recomienda ni menciona ninguna en particular.
Esto puede traer como consecuencia que un equipo sin experiencia en una nueva metodología
utilice, tal vez, herramientas y procesos de la ingeniería que no son los más adecuados o, peor
aún, no utilice ninguno.
A continuación se explicará qué es Scrum en la actualidad, y cuáles son sus diferencias
y similitudes con otras metodologías existentes. A partir de estas definiciones, se procurará
encontrar formas de reducir las desventajas que presenta la metodología al momento de iniciar
la gestión de un proyecto informático.
17
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
En el año 1993 se aplicó por primera vez Scrum2 en un desarrollo de software y luego,
en el año 1995, se formalizó3.
Desde entonces, miles de proyectos en todo el mundo han utilizado Scrum, tanto en
pequeñas empresas, como en grandes multinacionales.
En la actualidad, Scrum se está utilizando en diferentes tipos de negocio y,
especialmente, en el desarrollo de software. Existen organizaciones, como Scrum Alliance o
Scrum Management, que se encargan de difundir esta metodología en el ámbito de la
Informática.
2.2.2 La metodología
Scrum se basa en reglas para saber si se está aplicando correctamente la gestión del
proyecto. Estas reglas son la guía para poder aplicar y gestionar la metodología de manera
correcta, de manera que nos diga cómo aplicarlas en los proyectos, al realizar las reuniones,
reaccionar a los cambios de requisitos (Schwaber, 2004) (Corral, 2006).
A continuación se presentan datos generales de Scrum. De esta forma se tiene un
concepto más completo de la metodología para poder comprender de mejor manera las reglas
antes mencionadas.
4
2.2.3 Datos generales de Scrum
Las mencionadas reglas –que presentaremos más adelante– sirven para llevar a cabo
el proyecto. Sin embargo, es necesario saber cómo comenzar a gestionar un proyecto con
Scrum.
Antes de presentar las reglas se relevarán los datos generales de Scrum como el
vocabulario propio de la metodología, los roles que se involucran y los puntos básicos que cada
uno de éstos implica. Una vez presentada esta información, se tratará con mayor detalle cada
punto.
2
Jeff Sutherland, John Scumniotales y Jeff McKenna fueron los primeros en concebir, ejecutar y documentar el
desarrollo ágil en proyectos de software en el año 1993.
3
En 1995 Ken Schwaber formalizó el proceso para la industria de desarrollo de software.
4
Otros datos que son útiles, tipos de reuniones, duraciones y reglas dentro de estas. (10)
18
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
19
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Revisión de sprint:
Análisis y revisión del incremento generado. Esta reunión no debe tomarse como un
“acontecimiento especial” sino como la presentación normal de los resultados.
20
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
En desarrollos para clientes externos lo más aconsejable es que sea el responsable del
proceso de adquisición del cliente.
Las reglas de Scrum son claras, simples y fáciles de implementar. En general, se sabe
que si hay un problema con las reglas, hay un problema con la gestión del proyecto. Sin
embargo, el principal problema que suele aparecer es que algunos integrantes no se saben
adaptar a las reglas.
A continuación se resumen las reglas de Scrum.
21
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Product Backlog
Capacidades del
equipo
Sprint Planning Meeting Metas del Sprint
Condiciones de
negocio Sprint Backlog
Tecnología
Producto actual
Gestión / Management
La Reunión de Planificación del Sprint (o Sprint planinng meeting) tiene una duración
máxima de 8 horas, divididas en dos partes. La Primera Parte sirve para seleccionar cual será
el Product Backlog y en la Segunda Parte se prepara el Sprint Backlog con el cual se trabajará.
Los asistentes obligatorios son el equipo, incluyendo al Scrum Master y el
Product Owner. Además puede haber otras personas como los usuarios –que
conocen las necesidades– o personas que puedan brindar más información
acerca del negocio o la tecnología. Sin embargo, estas personas deberán
retirarse una vez que proporcionen la información.
El Product Owner debe preparar el Product Backlog antes de la reunión. De
estar ausente el Product Owner, será reemplazado por el Scrum Master.
El objetivo de la primera parte –es decir, de las primeras 4 horas– es que el
Equipo seleccione aquellos elementos del Product Backlog que cree que puede
comprometerse a transformar en un incremento de funcionalidad
potencialmente entregable. El Equipo deberá mostrar este incremento de
funcionalidad al Product Owner y a los involucrados en la Reunión de revisión
de sprint (o Sprint review meeting) al final del Sprint.
22
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
23
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
24
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
25
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
26
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
27
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Inicio
Cambios y
ajustes Product
Backlog
Sprint
Sprint
Planning
Retrospective
Meeting
Metas del
Sprint
Fin de Sprint
Sprint Review Sprint Backlog
Cabe destacar que, por más que se trata de respetar y cumplir todas estas reglas,
muchas veces Scrum no funciona. En general, los problemas que aparecen no son
consecuencia de las reglas escritas de Scrum sino de aquellas no-escritas. Por ejemplo: Scrum
no específica ningún proceso de software. Por lo tanto no tiene ninguna regla al respecto. Por
esta razón, el presente trabajo no se enfocó en las reglas que actualmente tiene Scrum, sino
en qué es lo que necesita para transformarla en una metodología de gestión ágil para
proyectos de software.
28
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Scrum tiene un gráfico típico llamado Burn Down (Hughes, 2008). Este gráfico se
muestra abiertamente a todos los que participan en el proyecto y refleja la cantidad de
requisitos del Backlog del proyecto que están pendientes al comienzo de cada Sprint.
Si se traza una línea que conecte los puntos de todos los Sprint completados,
podremos apreciar el progreso del proyecto. Así también, trazando una línea entre las tareas
de un Sprint que está en desarrollo, podemos saber de manera simple ”cómo viene” el
proyecto. Lo normal es que esta línea sea descendente (cuando “todo va bien” en el sentido de
que los requisitos fueron bien definidos desde el principio y no variaron nunca, y la estimación
se realizó de manera correcta), hasta llegar al eje horizontal, momento en el cual el proyecto se
ha terminado (no hay más requisitos pendientes, a completar en el Sprint). Si durante el
proceso se añaden nuevos requisitos, la línea mostrará una pendiente ascendente en
determinados segmentos; mientras que, si se modifican algunos requisitos, la pendiente variará
o incluso valdrá cero en algunos tramos. A continuación se presentan algunos casos como
ejemplo:
29
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Para aplicar la metodología existen varias herramientas que dan soporte a la gestión de
proyectos que utilizan metodologías ágiles. En general estas herramientas se pueden aplicar a
cualquier metodología ágil, ya que su forma en si es similar: sólo varían las reglas o procesos
que utilizan, las que no se ven reflejadas en el software.
Estas incluyen, por lo general, las siguientes funcionalidades:
Visión general del proyecto.
Seguimiento de control.
Búsqueda de tareas.
Lanzamientos por release y planificación por iteración.
Foros internos de discusión.
Posibilidad de describir tareas, en forma global o detallada.
Reporte de errores, defectos y correcciones.
Muchos de estos softwares también incluyen otras herramientas, como la posibilidad de
realizar el gráfico de Burn Down según los datos disponibles del proyecto, con detalles sobre
fechas e hitos, exportación de tareas y realización de gráficos de avance, gráficos de esfuerzos
del equipo y detalle de cada miembro, realización de informes de errores, etc.
30
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
En el gráfico 2.2.7-1 se muestra el proceso que se lleva a cabo para realizar las tareas
en Scrum, según el texto de Hunt (Hunt, 2005). Estos son los pasos a seguir si se están
aplicando correctamente las reglas de la metodología.
A dicho diagrama se le agregarán los pasos necesarios para que la metodología
ofrezca mayor calidad para terminar una tarea y más precisión en los tiempos estimados (Hunt,
2005).
31
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Uno de los inconvenientes de este proceso consiste en que, si se agrega una nueva
tarea al Product Backlog –el cual tiene duración determinada en horas–, existe la posibilidad de
que esta tarea se sub-divida en varias sub-tareas con una duración total en horas mayor que la
original. Aunque en este diagrama no se muestra, luego de una situación como la descripta hay
que actualizar el Product Backlog para adecuarlo a la realidad.
Otro gran inconveniente que existe es que se considera que si la tarea realizada paso
los test está correctamente realizada. Sin embargo, a veces ocurre que aunque la afirmación
anterior es cierta, la calidad con que se realizó la tarea es baja. Sería necesario, pues, agregar
la condición de “buena calidad” dentro del término Done; sin embargo, esta condición
representa algo más que una propiedad.
32
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
3 Análisis
33
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Scrum XP
Errores luego Para resolverlos se aplica Se aplica lo mismo que Scrum pero
de cada Sprint nuevamente Scrum, muchas veces durante menos tiempo ya que, en
y realizando un Sprint de corrección de general, los errores se corrigen o el
mantenimiento errores o mantenimiento. En general, mantenimiento se realiza antes de la
no duran más de 1 semana entrega, gracias a los tests que ya posee
la metodología.
Cambios de Son bienvenidos. En caso de que el No está tan preparado como Scrum para
requisitos cambio en los requisitos impacte los cambios de requerimientos.
sobre el actual Sprint, el Scrum Igualmente los acepta, aunque en
Master puede tomar la decisión de muchos casos es necesario programar
finalizarlo, para analizar el cambio de nuevos Sprints para contemplar el
requerimiento y estudiar sus cambio. Es por eso que esta metodología
impactos. sólo se desarrolla para necesidades
actuales y no tan futuras. Si el cambio es
muy drástico, puede llegar a afectar el
proyecto de manera significativa.
Tabla 3.1.1-1 Scrum Vs XP
Hoy en día Scrum está siendo utilizada muy ampliamente, habida cuenta de lo reciente
que es la metodología. Gracias a esto se puede encontrar más documentación acerca de cómo
utilizarla , cuáles son las debilidades e inconvenientes que presenta, y cuáles casos con los
que nos podemos enfrentar, todo lo cual ayuda a quien lo conozca, a evitar problemas e
incluso fracasos en los proyectos.
Sin embargo, también existen puntos de debilidad por el hecho de que no existen
herramientas de software preparados por defecto para la metodología, lo que conduce a que
con frecuencia se la aplique sin utilizar ninguna, sin aplicar métricas, según sea más cómodo,
aunque no resulte lo más conveniente para el proyecto. Como afirmó Dean Wampler5, “Scrum,
sin las prácticas de ingeniería no funcionará en el largo plazo.”
Es por esto que incorporar prácticas y proceso de la ingeniería de software a la
metodología Scrum daría una notable mejora. Se vería muy reflejado en proyectos en los
5
Líder técnico para equipos de desarrollo de software(www.deanwampler.com)
34
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
cuales la metodología nunca fue aplicada anteriormente, ya que la posibilidad de fracaso sería
menor.
Si no se cuenta con un excelente Scrum Master que guie todo el proceso, que conozca
esta metodología, sepa cómo respetar las reglas y cómo aplicar las prácticas de la ingeniería
de software, la obtención de buenos resultados será improbable.
A poco que se investigue, se observará también que son muchos los que advierten que
no recurrir a los procesos y prácticas de la ingeniería genera problemas. La solución a este
obstáculo no existe formalmente, ya que en ninguna parte de la metodología se dan
indicaciones o explicaciones acerca de esto.
De vez en cuando se ha tratado de aplicar “parches” a la metodología, adaptándole un
par de procesos con intención de mejorarla; sin embargo, al no tener la metodología reglas
básicas escritas, tampoco estas innovaciones parciales se respetan y, luego de un corto
tiempo, aparecen nuevamente dificultades en los proyectos (el tiempo estimado no es el
correcto, hay problemas de definición de requerimientos, etc.).
Entonces, ¿Qué habría que modificar para que la metodología resulte más útil? ¿Qué
respuesta dar a este problema, ya conocido pero aún sin resolver formalmente? Ese es,
precisamente, el propósito de este trabajo.
En primer lugar, se detallarán los problemas que presenta Scrum. Luego se darán
puntos claves a tener en cuenta para saber si la metodología funciona correctamente o no y,
por último, se aplicarán reglas y se le agregarán procesos de la ingeniera de software de
manera que los proyectos que la aplican tengan mayores probabilidades de éxito.
Entre los puntos a tratar para mejorar la metodología, se cuentan los siguientes:
Cambios de requerimientos: Cómo afrontar de diferente manera los cambios
que se producen en los requerimientos, en el curso de un proyecto. Por lo
general, son excesivos y generan retrasos apreciables en su desarrollo.
Errores de desarrollo: Ver tiempo necesario para la corrección de errores, así
como también prever los mismo con tiempos de contingencia que se agrega en
las estimaciones. También tiempos de test y otros tipos de forma para
minimizar los mismos.
Estimación de tiempos: Se propondrán vías alternativas para estimar con
mayor precisión los tiempos asignados a las tareas.
Equipo: Se estudiará qué perfiles resultan necesarios para llevar adelante el
proyecto con éxito. Además de los perfiles, se apreciarán las aptitudes que
pueden presentar el grupo y cada uno de sus integrantes.
Documentación: Aunque se sabe que las metodologías ágiles están
principalmente enfocadas a mantener en marcha una aplicación antes que a
que contar con la documentación completa, frecuentemente –la mayoría de las
veces– esta última es omitida por completo. De esta forma, gran parte de los
proyectos realizados terminan con documentación inexistente. Si luego de
35
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
6
El gráfico corresponde a la mejora de productividad de software expuesta por Barry W. Boehm´s. (Boehm´s, 2007)
36
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Obtener lo mejor de
las personas Facilidades
Herramientas de
software y ambientes.
Optimizar la forma de
realización de las
tareas
Estaciones de trabajo.
Automatizaciones.
Automatizar la
documentación.
Eliminar pasos
inecesarios. QA.
Automatizar la
programación.
Asistencia de
Mejoras de softwares de
productividad conocimientos (Wikis,
documentación, etc).
Practicas modernas de
Eliminar el re trabajo. programación.
Ocultamiento de la
correcta información.
Desarrollos iterativos
e incrementales.
Modelos de procesos.
Construcción de
productos simples.
Prototipados rapidos.
Librerias de
componentes.
Componentes y Generadores de
recursos. aplicaciones.
Lenguajes de 4ta
generación.
37
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
De todos estos puntos expuestos en el gráfico que antecede, sólo algunos están
comprendidos en la gestión de una metodología. Por ejemplo: la tecnología a utilizar está muy
definida, ya que se sabe que Scrum y otras varias metodologías ágiles están diseñadas para
paradigmas orientados a objetos. Esto se debe a que es posible separar muy bien el código de
cada tarea bien definida. De esta manera, resulta fácil mantener el orden y una administración
de lo realizado.
Por otro lado, hay otros aspectos mejor cubiertos por otras metodologías ágiles. La
más importante, muy utilizada y con ciertas similitudes respecto a Scrum es XP. En
consecuencia, la combinación de estas dos metodologías ágiles, nos puede ofrecer un
complemento único. Esa combinación es, precisamente, la que se describirá a continuación,
con la suma de algunos factores no tenidos en cuenta por ninguna de ambas.
38
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
4 Diseño
Cuando se comienza a aplicar la metodología Scrum por primera vez existe una
pregunta constante. ¿Cómo saber si Scrum está funcionando? (Corral, Geeks, 2008) La
verdad es que Scrum es simple, ya que se basa en sus reglas para gestionar el proyecto. En
consecuencia, si se respetan las reglas, se puede estar casi seguro de que se el proyecto está
llevando de manera correcta. De todas maneras, se necesita un período de aprendizaje, más
aún si la mayoría de los miembros del Equipo están implementando Scrum por primera vez.
Existen numerosos casos de fracasos al implementar metodologías nuevas que, por lo
general, siempre definen reglas y formas de aplicación. Esto no es ajeno a Scrum. Entonces, si
se respetan las reglas, ¿Por qué se puede fracasar utilizando Scrum?
Aquí es necesario hablar de las dificultades presentes en los equipos que la
implementan, ver qué detalles se observan y hacerlos objeto de análisis. Las principales
dificultades que surgen son generalmente las más básicas y se describen a continuación:
39
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Backlog, no hay Scrum. Sin Product Owner, sin Equipo y sin Scrum Master, no hay Scrum. Sin
Sprint Planning Meeting, no hay Scrum. Sin Sprint Review, no hay Scrum.
En definitiva, sin seguir de manera estricta las reglas de Scrum, no hay Scrum. La
solución para este problema es simple: seguir rigurosamente las reglas de Scrum. Es fácil caer
en la tentación de hacer adaptaciones a la metodología para cubrir los aspectos que no son
satisfactorios en el proyecto. Sin embargo, cuando esto sucede en un equipo que es nuevo en
la metodología es probable que resulte contraproducente.
Si se contara con procesos de ingeniería de software que ayuden, las cuales se tengan
que cumplir mediante reglas de la metodología, es altamente factible que no exista necesidad
de realizar modificaciones en la metodología cuando se comienza a utilizar. Si bien es posible
realizar estas adaptaciones, no es recomendable. Es mejor volver al procedimiento normal ya
que, por lo general, luego de una adaptación que no funciona, se trata de adaptar otra cosa y
así sucesivamente, hasta que se deja de aplicar Scrum por completo. El que más atento debe
estar a todo esto es el Scrum Master.
Construir un equipo es muy difícil y construir uno multidisciplinario aún más. Es una de
las metas que se debe alcanzar para poder lograr utilizar Scrum y es una tarea muy dura.
Un equipo multidisciplinario es muy productivo y, además, minimiza los riesgos
asociados a la rotación de personal. Los miembros de este equipo se deben llevar bien entre
sí, colaborar, y cada uno de ellos debe asumir los roles que les corresponden. Sólo de esta
manera se puede decir que esta tarea está cumplida. Además, cada integrante del equipo
debe poner la misma cantidad de esfuerzo en el proyecto. Y ninguna persona debe restar
motivación a las demás.
Cuando se va a asignar una tarea a un miembro del equipo, es necesario tratar de que
éste resulte conforme con la tarea que debe desarrollar. Es posible que esto no siempre ocurra
pero, si se puede, es lo recomendable. De esta forma, el Scrum Master logrará que, al estar
conforme con la tarea que está desarrollando, la calidad del producto de la tarea de cada uno
sea superior. Por otra parte, es importante tratar de evitar los cambios de tareas una vez que
éstas fueron iniciadas. Aunque las reglas de Scrum prohíben esto, la realidad es que ocurre
muchas veces.
Una tarea muy importante del Scrum Master es mantener al equipo constantemente
motivado. Debe encontrar la forma de hacerlo en todo momento, de modo que todos sigan
enfocados en el proyecto. Además de esto, debe mantenerse atento a cualquier detalle o
síntoma que el equipo o cualquier miembro del mismo manifieste. Algunos libros (como “Agile
Project Management with Scrum” por Ken Schwaber) ofrecen consejos recomendaciones de
suma utilidad respecto de este punto.
40
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
41
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Existe una gran dificultad en integrar las tareas de mantenimiento con el nuevo
desarrollo, ya sea de tareas o de proyectos. En general los problemas se deben también a los
recursos no dedicados.
Aquí lo fundamental también es minimizar los cambios de contexto. Lo ideal sería que
quienes realizan mantenimiento de los proyectos pasados sea un equipo diferente al que
realiza el desarrollo de los nuevos. Por el contrario, si se trata de corrección y mantenimiento
de un proyecto reciente lo ideal es que el mismo equipo que lo desarrollo sea el encargado de
esta tarea ya que todavía se tiene en conocimiento como se desarrollo el mismo.
Sin embargo, esto no es siempre posible. Otra táctica habitual consiste repartir el día
entre actividades; por ejemplo, dedicar las mañanas para desarrollar un nuevo producto y las
tardes para las tareas de mantenimiento o soporte de versiones o productos anteriores.
Evidentemente, a la hora de planificar un Sprint, tendremos que restar de la capacidad de
nuestro equipo el esfuerzo que estimamos que será necesario dedicar a tareas de
mantenimiento y soporte.
Se debe tener en cuenta que una tarea a desarrollar a la hora de elaborar un nuevo
producto es la documentación, la cual tiene mucha importancia para el mantenimiento, como
así también para el soporte.
4.1.6 Estimación
La estimación de proyectos es una tarea compleja, este es uno de los puntos más
críticos en todo proyecto de software, ya que si no se hace se es considerablemente preciso,
puede conducirlo al fracaso.
En Scrum, al igual que en otras metodologías, la estimación es un aspecto central y se
trata de mejorarla Sprint tras Sprint. Estimamos el Product Backlog y estimamos las tareas de
cada Sprint. La estimación es el primer paso para todo el proceso de planificación, tanto a
mediano como a corto plazo. Aquí el principal problema con en el que nos encontramos es que
los equipos no tienen experiencia en estimar, sea porque nunca estimaron o porque no
conocen la tecnología o la aplicación sobre la cual van realizar un desarrollo y, por lo tanto, se
les vuelve costoso hacerlo con acierto. Esta dificultad hace que muchos equipos omitan las
actividades que Scrum propone en relación con la estimación.
Resulta imposible hacer una planificación realista sin realizar las actividades de
estimación. Ejecutar los procesos de estimación propuestos por Scrum permite obtener una
estimación realista y, además, aprovechar el propio proceso de estimación para obtener
información acerca de qué debemos y qué se pretende construir.
42
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
4.1.7 Documentación
El Manifiesto Ágil afirma que hay que preferir el software desarrollado por sobre la
documentación completa y correcta. La fórmula para analizar el retorno de inversión de Scrum
es la siguiente:
Valor Generado / Costo = RIO (Retorno de inversión).
Este RIO se calcula por cada tarea. Consecuentemente, las principales tareas serán
aquellas que tienen un RIO mayor. Este valor producido es establecido por el cliente. Y he aquí
que la documentación, especialmente la documentación técnica, es algo que al cliente le
genera un valor nulo.
Sin embargo, este punto de vista cambia cuando piensa ve a mediano o largo plazo.
De surgir la necesidad de modificar el software desarrollado hace ya algún tiempo o de
implementar en él nuevas funcionalidades, el valor de tener una documentación clara y real es
muy alto. Porque evita perder tiempo (que implica un mayor costo) en desentrañar cómo
funciona la aplicación desde el punto de vista técnico.
Por lo general, se documentan datos básicos como métodos, alto los principales rasgos
y algunos procesos del negocio. No obstante, con frecuencia, el código fuente termina por ser
la única documentación acerca de la aplicación. Es por eso que, por lo general, se deberían
agregar tareas orientadas a documentar con sus respectivas horas, o bien agregar a la
definición de “terminado” la documentación acerca de lo realizado.
La documentación también puede ser útil para el usuario final. Aunque se piense que el
usuario aprenderá de la aplicación por medio de la experiencia, no todos proceden así. Cuando
esto sucede, es bueno disponer de documentación para el usuario, como un manual de la
aplicación, de forma que se facilite el aprendizaje. En muchas empresas esta tarea forma parte
del rol del usuario cuando reciben el producto terminado; en otras, del Área de Sistemas;
mientras que en otras no se realiza nunca.
4.1.8 Calidad
8
Agile retrospectives
43
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
participantes, como ser las personas que toman los requerimientos, quienes los comunican,
quienes desarrollan, etc. La forma en que hacen conocer los requerimientos, el modo en que
éstos se traducen a una forma técnica para que los desarrolladores puedan llevar a cabo el
proyecto, es algo fundamental que también requiere de un proceso, como la ingeniería de
requisitos, capaz de garantizar cierto grado de calidad y éxito.
Hay muchas formas de proporcionar calidad a lo largo de todos estos pasos. En la
realidad suele suceder que ante atrasos que surgen en un proyecto, la calidad es la primera en
ser sacrificada, apresurando la toma de requerimientos, haciendo nulos controles de cambios y
desarrollando apresuradamente sin aplicar los patrones y practicas correspondientes.
En tales momentos, es necesario recordar que, ya sea con apuro o sin él, es necesario
trabajar correctamente para darle calidad a lo realizado. Aunque no sea una tarea fácil, menos
aún si hay presión por retrasos y cuando la base de Scrum no posee prácticas de ingeniería de
software, es necesario vigilar que se trabaje lo mejor posible en este punto.
4.2.1 Requisitos
Los requisitos son un tema problemático en todo proyecto, ya sea que se gestione con
una metodología ágil o no. Las metodologías ágiles se mantienen abiertas a los cambios de
requisitos o a la llegada tardía de éstos, y esto muchas veces genera problemas.
Todos los atrasos, modificaciones y reformas en los requisitos se deben por lo general
a que no se ha aplicado en ningún momento proceso alguno para la captura de aquéllos. Sin
embargo, la aplicación de la Ingeniería de Requisitos ayudaría a mejorar la captura,
minimizando los cambios, la aparición de requisitos tardíos, o su mala captura, todo lo cual
genera demoras en el desarrollo del código. A continuación se explica cómo se desarrolla la
Ingeniería de Requisitos y como se aplicaría a las metodologías ágiles.
9
Blog de discusión acerca de la ingeniería de requisitos. (José Manuel Márquez (Docente de la Universidad de
Valladolid), 2008)
44
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
En Scrum los requisitos de negocio se obtienen al principio del proyecto. Con éstos se
arma el Product Backlog una vez que el cliente les asigna un valor, el cual deriva del el que le
generará una vez realizado. El equipo, por su parte, también les asigna un valor, pero en este
caso el valor representa el costo de realizarlo. De esta forma se obtiene el RIO.
Los requisitos hasta aquí mencionados son los requisitos generales del negocio. Se
seleccionan para el próximo Sprint aquellos que tengan RIO mayor y, de esta manera, el
Equipo comienza a subdividir estas tareas generales en tareas técnicas. Cuando esto sucede,
el Product Owner debería estar presente ya que, en caso de que se presente alguna duda
sobre una tarea, el Product Owner es la mejor persona para aclararla. Sin embargo, no siempre
está.
Entonces, ¿Por qué la propuesta de aplicar a Scrum la Ingeniería de Requisitos? Si se
analiza la cantidad de cambios de requisitos en un proyecto que utiliza la metodología, se
puede descubrir que el número es alarmante. Se estima que un 35% de los requisitos cambian
constantemente, y que 65% de las funcionalidades implementadas no se usan casi nunca
(Garrido, 2009). Si a esto le sumamos una toma de requisitos mediocre, la posibilidad de
cambios por mala toma es muy grande. A pesar de que la metodología da la bienvenida a
estas modificaciones, el exceso de cambios permanentes hace que el proyecto se atrase, o su
alcance varíe constantemente (Frauke Paetsch, pág. 1).
La Ingeniería de Requisitos especifica que el costo de un requisito mal especificado en
una metodología tradicional, va de un 2% a un 10% en la fase de análisis y diseño, mientras
que en la etapa de desarrollo puede llegar a costar entre 5 a 100 veces más del total
previsto.10
En Scrum, los cambios de requisitos pueden llegar cuando el requisito afectado fue
desarrollado, está siendo desarrollado o todavía no fue desarrollado. Cuando los cambios de
requisitos impactan sobre elementos ya desarrollados o que están en proceso de desarrollo, el
costo es mayor. A pesar de que estos cambios de requisitos impactan sobre el desarrollo y, en
consecuencia, sobre el tiempo restante para la finalización del proyecto, muy pocas veces
existe la intención de mover la fecha de finalización o de reducir el alcance del proyecto. Este
es el punto en el cual, dadas las circunstancias, se comienza desarrollar con apresuramiento.
La atención del Equipo en tales momentos no suele ponerse en evaluar si lo que se cambió o
lo que se realizará es o no totalmente correcto, sino en qué es lo que hay que finalizar con
mayor urgencia. Este error conduce comúnmente a que la necesidad de hacer nuevos
cambios, generando aún mayores retrasos. Cabe destacar que, además de retrasos, la
situación genera también un desgaste en el Equipo.
Muchas veces este factor depende del Scrum Master. Sin embargo, sse implementa de
manera eficiente la Ingeniería de Requisitos los miembros del Equipo podrán confiar en que los
10
Dato obtenido del grupo de investigación Kybele (Carlos)
45
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
requisitos que se van a desarrollar son los correctos, evitándose de esta forma tener que
corregir en un futuro el sistema a raíz de malos entendidos.
Tomar erróneamente los requisitos erróneos y advertirlo luego de realizado el
desarrollo son dos hechos que nunca deberían suceder según Scrum, ya que el Product Owner
debería estar acompañando el desarrollo del proyecto constantemente. Sin embargo, la
realidad es algo diferente. En general, es prácticamente imposible que el Product Owner esté el
100% del tiempo con el equipo de desarrollo, por lo cual la tarea de comprender cabalmente
los requisitos continua siendo responsabilidad del Scrum Master.
Algunas técnicas para la toma de requisitos que se pueden aplicar son las siguientes:
46
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
47
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
necesidad de utilizar el valioso tiempo de otros miembros del grupo. Además, la buena
documentación reduce el riesgo de pérdida de información cuando algún integrante del Equipo
deja de ocupar su puesto.
Por lo general, esta clase de problemas se manifiestan en el mediano o el largo plazo.
La necesidad de documentación aparece cuando el cliente consulta acerca de un tema y la
persona que lo desarrolló no se encuentra presente o disponible.
Una documentación significativa en Scrum debe incluir documentación de código (con
herramientas como “Javadoc”), documentación de negocio de las tareas, cambios de requisitos
y modelados realizados. Estas son tareas que no consumen prácticamente nada de tiempo si
se va realizando a medida que se realizan las tareas. Y el resultado final es una documentación
solida y útil para un futuro.
Gestión de cambios: La Ingeniería de Requisitos establece que debería ser posible
rastrear los cambios de requisitos, diseño o documentación, a fin de conocer la razón de estos
cambios. Hacer posible esta trazabilidad en los requerimientos, enriquece mucho el aspecto
relacionado con la documentación y es algo que no demanda mucho tiempo.
Aunque muchas herramientas para la gestión de metodologías ágiles –tales como Jira,
Bugzilla, Version One– ofrecen esta posibilidad, son pocos los Equipos que utilizan estas
ventajas que los programas ofrecen. Sin embargo, éste es un punto en el cual la aplicación una
buena práctica puede llegar a significar una gran diferencia en poco tiempo.
En Scrum, el Product Backlog se maneja por versiones, eliminándose por lo general las
versiones más antiguas. Esto debería dejar de ser así ya que mantener las versiones
superadas permite rastrear los cambios en los requerimientos.
4.2.2 El equipo:
48
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
La solución a este problema reside en entender que lo pedido por Scrum es algo ideal.
Al mismo tiempo, asimilar la idea de que el Product Owner no un miembro del Equipo, si no
alguien que le proporciona soporte y definiciones. Comprenderlo así permitiría tomar los
requisitos con cierta cautela, ya que siempre se asume que, si se presenta un error, el Product
Owner tiene la razón porque se trata de su sistema.
11
Libro enfocado a la motivación del Equipo en proyectos con metodologías ágiles.
49
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
4.2.3 Desarrollo
50
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
51
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
52
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Hace cosa de un año, uno de nuestros equipos (el más grande) estaba
trabajando un número insalubre de horas extra. La calidad de la base de código era
pésima y habían pasado la mayor parte del tiempo “apagando incendios”. El equipo de
pruebas (que también estaba haciendo horas extra) no tenía ninguna posibilidad de
hacer aseguramiento de la calidad en esas condiciones. Nuestros usuarios estaban
enojados y la prensa nos estaba comiendo vivos.
Después de unos meses, conseguimos disminuir las horas de trabajo a un nivel
decente. La gente comenzó a trabajar en horarios normales (excepto durante algunas
crisis de proyecto, a veces). Y, oh sorpresa, la productividad y la calidad mejoraron
notablemente.
Por supuesto, reducir las horas de trabajo no fue en absoluto el único aspecto
que condujo a la mejora, pero todos estamos convencidos de que tuvo mucho que ver.
53
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Si un equipo trabaja muy forzado, bajo mucha presión, sin ver resultados y encontrando cada
vez más problemas, es probable que intente hacer las cosas lo más rápido posible, con calidad
nula, haciendo que la corrección de problemas sea un parche, antes que una corrección bien
hecha. Esto termina generando un código malo y hace también que el ambiente de trabajo no
sea el mejor.
4.2.4 Calidad
Aunque Scrum y XP mencionan que los proyectos tienen que ser de buena calidad,
superiores a lo que el cliente exige, una forma de asegurarnos es aplicar QA.
54
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
satisfacción del cliente. Esto es lo que Scrum plantea en principio: satisfacer al cliente, ofrecerle
un mejor producto antes que documentación. En consecuencia, desde cualquier perspectiva,
aplicar QA en la metodología es lo mejor que se puede hacer.
55
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Según el gráfico 2.2.7-1 la metodología no posee por defecto QA, test, aunque se
pueden agregar, al igual que la actualización de tareas, las cuales se deben realizar siempre.
Luego de presentar las modificaciones necesarias en la metodología, se vuelve a definir el
diagrama de función para llevar a cabo las tareas y gestionar la metodología de manera
diferente.
En el gráfico 4.1.6-1 se presenta el nuevo esquema:
56
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Tal como se dijo, primero se implementarán reglas. Estas reglas servirán para poder
saber cuándo se podrá cambiar los procesos o herramientas de ingeniería de software tratando
de esta manera que siempre se esté aplicando alguna. En caso de no funcionar con las que
traerá por defecto, tener alternativas, tratamientos de problemas generales y demás
eventualidades que puedan suceder.
Cabe destacar que estas reglas están pensadas para lograr un mejor funcionamiento
de la metodología. Como en el caso de las reglas anteriores, Éstas pueden ser modificadas
siempre y cuando haya una razón importante que, de no resolverse, impida el avance del
proyecto.
Las reglas nuevas tienen como objetivo respetar las herramientas de la ingeniera que
se acaban de presentar. También explican cuándo se pueden modificar las mismas en caso
que exista la necesidad. A continuación se presentan las nuevas reglas para el mejoramiento
de Scrum.
57
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
58
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
su juicio las dos mejores ideas; las seleccionadas serán las que acumulen
mayor puntaje.
Cuando se quieran encontrar formas nuevas de pensar soluciones, suele
resultar productivo cambiar de lugar de la reunión. Ir a nuevos lugares ayuda a
pensar en cosas nuevas. De esta forma pueden aparecer nuevas soluciones.
Agregar a la definición de Done (Terminado) de las tareas, por defecto, Test.
Estos tests son de programación. Una tarea testeada garantiza mayor calidad.
De esta manera, en futuras entregas, sólo será necesario correr los tests para
saber si continúan funcionando de manera adecuada.
59
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
5 Conclusión
Las metodologías ágiles se están difundiendo día tras día. De esta forma, Scrum
también se vuelve más popular. Muchas personas que nunca utilizaron metodologías ágiles –
mucho menos Scrum– comenzarán a gestionar sus proyectos con estas metodologías, sin
poseer experiencia previa. Esta inexperiencia puede llevar a que el costo de adaptación sea
alto debido a que en principio, probablemente, requiera mucho esfuerzo. También es posible
que se produzcan problemas al momento de gestionarla.
Esto es lo que lleva generalmente a utilizar Scrum adaptando reglas, cometiendo
errores que son comunes y que se afirme que Scrum “es muy buena en gestión pero le hacen
falta mayores herramientas”.
Se prevé que permitirá aumentar la precisión en la estimación de los tiempos y reducir
la probabilidad de problemas con los requisitos, y que las recomendaciones sobre la
documentación y los consejos para superar los problemas serán de gran utilidad. Esto será
más evidente en la cantidad de fracasos en proyectos que aplican a la metodología por primera
vez.
De esta manera, los proyectos llevados a cabo actualmente con Scrum –e inclusive con
XP– podrán aplicar esta mejora para gestionar los proyectos, en la convicción de que si se la
aplica respetando todas las reglas – las que ya poseía y las nuevas–, se podrá gestionar e
implementar un mejor proyecto de software.
60
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
6 Glosario
61
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
Sprint: Ciclo de trabajo en Scrum. Estos pueden ser de un periodo una a cuatro
semanas por lo general.
Sprint Backlog: Documento detallado a nivel técnico de las tareas a realizar en
el Sprint. Estas están estimadas en horas.
Sprint planning Meeting: Reunión realizada para definir las tareas a llevar a
cabo en el Sprint que va a comenzar.
Sprint review meeting: Reunión realizada al final de cada Sprint para revisar el
trabajo que fue y no completado. Se presenta también lo completado al Product
Owner. Esta presentación se conoce como Demo. Tiempo máximo de la
reunión de 4 horas.
Story Points: Puntaje que se le da a las tareas del Product Backlog. Este
puntaje se obtiene según la formula de RIO (Retorno de inversión).
Procesos de ingeniería / Proceso de la ingeniería:
RIO: Retorno de inversión. En Scrum la fórmula para obtener el retorno de
inversión de una tara de negocio es la siguiente:
Valor Generado / Costo = RIO (Retorno de inversión).
XP (eXtreme Programming): Metodología ágil de desarrollo de software
formulada por Kent Beck en el 1999.
62
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
7 Bibliografía
Doug Rosenberg, M. S.-C. (2005). Agile development with ICONIX process: people,
process, and pragmatism. Apress.
63
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
64
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
65
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
8 Anexo 1
66
MEJORA DE LA METODOLOGÍA SCRUM Martín A. Casamayor
puede, en ciertos casos, representar la mayor fuente de documentación del sistema. El análisis
de una iteración se basa en la retroalimentación del usuario y en el análisis de las
funcionalidades disponibles del programa. Involucra el análisis de la estructura, modularidad,
usabilidad, confiabilidad, eficiencia y eficacia (alcanzar las metas). La lista de control del
proyecto se modifica bajo la luz de los resultados del análisis.
67