Unidad 03
Unidad 03
Unidad 03
Índice
Introducción y objetivos
1. Documentos
1.1. Introducción
1.2. Product Backlog, historias de usuario y la ordenación
1.2.1. Introducción
1.2.2. Las historias de usuario, épicas y temas
1.2.3. Ordenar los elementos del Product Backlog
1.3. Criterios de estimación
1.3.1. Puntos de historia
1.3.2. Método de triangulación
1.3.3. Estimación por afinidad
1.3.4. Reestimar
1.3.5. Planning poker o póker de planificación
1.4. El sprint backlog y la velocidad
1.4.1. Sprint Backlog
1.4.2. La velocidad
1.5. Incrementos, DoD y planificación de entregas
1.5.1. Incrementos
1.5.2. Definición de "Completo" DoD (Definition of Done)
1.5.3. Planificación de las entregas
4. El Scaling Scrum
4.1. Scrum de Scrums (SoS)
4.2. Otras metodologías para escalar Scrum
Resumen
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
INTRODUCCIÓN Y OBJETIVOS
En Scrum la transparencia es un pilar básico, por lo que el seguimiento sobre el
avance que se realiza sobre la iteración y sobre el propio proyecto está disponible. Es
una información que está al día y es útil para todo el Equipo Scrum y para
stakeholders.
La gestión de los proyectos ágiles puede hacerse con tableros y Excel o utilizando
diferentes herramientas que sirven al equipo para estar sincronizado cuando está
deslocalizado, o para dejar evidencias de la gestión del proyecto o por razones de
auditoría de procesos.
• Comprender cuáles son los diferentes gráficos utilizados para conocer el grado
de avance del proyecto, el trabajo realizado por el equipo y el tiempo estimado
para la finalización del proyecto. Nos familiarizaremos con el tablón que se
utiliza en el sprint.
• Descubrir las metodologías y herramientas para llevar Scrum a otro nivel, tanto
en escalado como en su ejecución a través de diferentes tips..
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
1. DOCUMENTOS
1.1. INTRODUCCIÓN
1. El Product Backlog.
2. El Sprint Backlog.
3. Incremento.
Recuerda
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Una vez que el Product Owner ha calculado el valor (la importancia) de cada
elemento, el Product Backlog se reordena en función de este valor, de mayor a menor
importancia. Cuanto más arriba se sitúe un elemento, más detallado estará y más
pronto lo entregará el Team.
Cada elemento del Product Backlog incluye una estimación de trabajo. Estas
estimaciones las realiza exclusivamente el Team y se utilizan para determinar el
número de elementos que se llevarse a cabo durante un sprint, en comparación con la
capacidad de trabajo que el equipo pueda desarrollar en un sprint.
El equipo Scrum realiza un refinamiento del Product Backlog que consiste en añadir
detalles, estimaciones y ordenar los elementos del Product Backlog a lo largo de todo
el proyecto. Esta actividad también es conocida como Backlog Grooming.
Los elementos más comunes del Product Backlog son las historias de usuario. Son
pequeñas descripciones de los requerimientos del cliente. Al redactar las historias de
usuario se debe tener en cuenta describir el rol, la funcionalidad y el resultado
esperado en una frase corta. Para su construcción deben seguir el formato:
Ejemplo
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Las historias de usuario nuevas, por lo general, serán más grandes y menos claras.
Pasado un tiempo, podemos trabajarlas y convertirlas en historias de usuarios más
pequeñas y, por último, aclararlas si fuera necesario.
Las historias de usuarios que son demasiado grandes se conocen como historias de
usuario épicas. Es normal tener historias de usuario épicas en la parte baja del
Product Backlog. Llegado el momento, deberemos dedicar tiempo a "trabajar" estos
elementos y convertirlos en otros más pequeños e independientes (historias de
usuario).
Temas:
Las historias de usuario tienen que ser independientes. Se denomina tema a una
colección de historias épicas relacionadas para describir un sistema o subsistema en
su totalidad.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Comprender los temas es muy útil a la hora de planificar las entregas y asignar valor
de negocio a las historias de usuario individuales.
- Beneficios:
¿Cuáles son los beneficios de la solución? Los beneficios se definen en función
de las estrategias de la organización y no son los mismos para todas. Sin
embargo, los beneficios monetarios son los más comunes.
- Costes:
La cantidad de recursos necesarios para el articulo o, en otras palabras, el
coste del artículo, es también un punto muy importante. Algo puede ser valioso
si es posible desarrollarlo con poco de esfuerzo, pero no si se necesita invertir
una gran cantidad de recursos.
- Riesgos:
Ordenar los elementos del Product Backlog es una de las principales formas de
gestionar los riesgos en un proyecto Scrum.
Nota
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Los Product Owners prefieren mantener los cálculos tan simples como sea
posible. Ten en cuenta que cada estimación del valor de negocio es una
estimación aproximada y no se debe perder el tiempo en detalles innecesarios
que no representen cambios significativos.
- Se debe partir de una referencia para determinar los puntos de cada historia.
- Se puede comenzar eligiendo una historia de usuario simple y que sea clara
para todos, que ya haya sido realizada varias veces antes y en la que se
conozca exactamente el esfuerzo requiere.
Nota
La historia de referencia no tiene por qué ser una historia real, solo algo lo
suficientemente pequeño, sencillo, claro, y familiar para todo el equipo de
desarrollo.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Es un método para realizar las estimaciones. En vez de utilizar una única historia de
usuario como referencia, se emplean múltiples historias de usuario de referencia en
función de su tamaño, y así utilizarlas para estimar cada historia de usuario.
Ejemplo
Una muy buena práctica para triangular las estimaciones es utilizar una tabla de
triangulaciones con columnas para cada valor y colocar las tarjetas de las historias
de usuario en su correspondiente columna, en función de la estimación asignada.
Logramos una comparación completa entre todas las historias y será mucho más fácil
encontrar cualquier problema de planificación y darle solución.
Estimar por afinidad es, a veces, una buena opción. En esta metodología de
estimación, el equipo de desarrollo empieza a clasificar las historias en función del
esfuerzo relativo que requieren cada una de ellas de menor a mayor, o viceversa.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
1.3.4. REESTIMAR
Las estimaciones que hacemos sobre el esfuerzo relativo requerido para llevar a cabo
una historia de usuario pueden volverse a realizar para resolver algún malentendido o
como consecuencia de nuestro mayor conocimiento del proyecto. Cuanto mayor sea
nuestra experiencia en el proyecto, nuestras estimaciones serán más precisas.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
- En el "planning poker" cada miembro del equipo de desarrollo cuenta con una
baraja de cartas, elige una carta que muestra su estimación y la coloca hacia
abajo. Cuando todos estén listos se muestran las cartas al mismo tiempo.
Si hay una gran diferencia entre los valores propuestos, entenderemos que no
todo el equipo lo comprende de la misma manera. Por lo tanto, se discute y se
vota de nuevo hasta que los valores están en el mismo rango.
- La historia de referencia no tiene por qué ser siempre la más pequeña, por lo
que podemos agregar cartas con el valor 1/2 punto. Incluso algunas historias
pueden ser más pequeñas de 1/2 punto de historia.
- Por otro lado, 100 puntos de historia o cualquier otro número mayor puede no
ser suficiente para algunas de las historias de usuario épicas que se
encuentren en la parte inferior del Product Backlog, por lo que también se
añade una carta con el valor ∞ (infinito), lo que demuestra que la historia es
demasiado grande para ser estimada y tendrá que ser descompuesta en algún
momento.
- No hace falta que las cartas estén en papel. Se pueden utilizar aplicaciones
móviles para el póker de planificación. Estas aplicaciones son solo un conjunto
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
de cartas electrónicas; tienes que elegir una y mostrar el teléfono móvil a la vez
que todo el mundo, como si se empleara una baraja convencional.
El Sprint Backlog se crea durante el evento de Sprint Planning, que es el primer evento
en un sprint. Durante el evento de Sprint Planning, todo el Equipo Scrum colabora en
la creación del Sprint Backlog, que, como hemos visto anteriormente, consiste en lo
siguiente:
Recuerda
Sin embargo, podría ser necesario obtener más información, justificar o aclarar
algunos de los elementos, lo que debe realizarse siempre en presencia del Product
Owner. El plan detallado del sprint, que habitualmente no está completo al final del
evento de Sprint Planning, continuará actualizándose a medida que avanza.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
1.4.2. LA VELOCIDAD
Definición
Para calcular la velocidad solo se tendrán en cuenta los puntos de historia de las
historias de usuario "completas" hasta el final del sprint.
Definición
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
- Al comenzar con Scrum, definimos unos requisitos iniciales para el DoD que
debemos ir afinando, si fuera necesario, como resultado de una retrospectiva
para mejorar el desarrollo del trabajo para los siguientes sprints.
Recuerda
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Se puede utilizar sprint burn-down chart (diagrama de avance del sprint) para
visualizar el progreso durante el desarrollo de un Sprint. Pero también se puede
realizar un seguimiento de todo el proyecto -Project burn-down chart.
Radiadores de Información:
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Nota
Por lo general agregamos una segunda línea para representar la distribución del
volumen de trabajo estimado inicialmente para los sprints. Esta línea actúa como
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Hay varias maneras de mostrar los cambios en el Product Backlog junto con el
desempeño real, una de ellas es utilizando un gráfico de barras.
La línea muestra el rendimiento real, y cada barra muestra el volumen de las historias
restantes.
La parte superior de las barras solo cambia en función del volumen de historias
"completas" y, por lo tanto, solo se reduce. Por lo general, se añade una línea en la
parte superior de las barras para visualizar mejor el rendimiento real.
2.3. BURN-UP
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
El burn up es una herramienta de planificación propia del Product Owner, que presenta
visualmente la evolución previsible del producto. Proyecta en el tiempo la construcción
del producto, en base a la velocidad del equipo.
Ejemplo
Mientras que la línea azul muestra el volumen total de puntos de historia del
Product Backlog hasta un determinado momento, incluidas las que se han
eliminado, la línea de color negro muestra el volumen de historias "completo".
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Observa como las barras negras representan los puntos de historia "completos" y la
barra azul el total de puntos de historia pendientes. Aunque esta es una muy buena
manera de mostrar los cambios en el Product Backlog y el avance del proyecto, los
diagramas de avance son más comunes y conocidos.
Esta medición se basa generalmente en las tareas. Es una medición más detallada y
genera un gráfico de avance más preciso, que es a su vez más útil para el control del
sprint.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Ejemplo
4) Incluye una gráfica de avance del sprint (Sprint Burn-down chart) que nos
ofrece información para el seguimiento del Sprint, y que podría actualizarse
después de cada reunión de Scrum Diario.
En
Objetivo del sprint Pendiente Completado
progreso
Item #1 t1.1
t1.2 t1.3
t1.4 t1.5
Habilitar todas las partes de la tienda
online para permitir que los usuarios t1.6
puedan experimentar un proceso de t2.1 t2.2
compra completa. Esta hará que otras Item #2
características de la página web sean más t2.3
significativas.
Item #3 t3.1
t3.2 t3.3
t3.4 t3.5
Item #4
t4.1 t4.2
t4.3
Item #5
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Según los resultados del estudio del 12th anual State of Agile Report -2018, las cinco
principales barreras o frenos más importantes son:
Para superar las barreras relativas a la gestión del cambio es necesario que
el champion o promotor esté completamente convencido de que los enfoques ágiles
van a generar claros beneficios a la organización.
Por ejemplo, se itera solo en la parte de desarrollo. Las demás fases son realizadas
conforme a la tradicional metodología en cascada (waterfall). La entrega de valor al
cliente, con sus fallos y aciertos, tiene lugar al final del proyecto, eliminando las
principales ventajas y mejoras del marco de trabajo ágil.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Sin esta figura, nadie revisa la prioridad en los desarrollos (historias de usuario), ni la
utilidad de las entregas, ni aporta feedback. El Product Owner es responsable de
optimizar el valor del producto, y eso requiere un contacto y trabajo constante con el
resto del equipo Scrum, participando en todos los eventos y manteniendo la relación
con los stakeholders. Este ambiente de colaboración es necesario para que se
obtengan buenos resultados.
Puede ser que las historias de usuario no estén priorizadas o no atiendan a criterio de
proporcionar el mayor valor para el cliente. También puede suceder que las historias
de usuario no sean independientes entre sí y no cumplan con el criterio I.N.V.E.S.T., o
que sean demasiado largas o mal expresadas.
Las épicas y las historias de usuario deben tener un nivel de detalle homogéneo a lo
largo del todo el proyecto.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Si los miembros del equipo se interrumpen mucho, se puede utilizar un objeto que
indique quién puede hablar.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Para cumplir con las expectativas, el Team debe tener en cuenta los burn-down charts
y la velocidad para hacer una buena estimación y compromiso con el sprint.
Calcular con mayor precisión el esfuerzo necesario para completar las historias de
usuario.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
- Haz que las diferentes reviews la hagan diferentes miembros del Team, para
que todos ellos se sientan participes y los stakeholders interactúen con todo el
equipo.
- Solicita que los stakeholders compartan su feedback con todo el Equipo Scrum.
- Agrupa y prioriza. Respecto a todas las cosas que han funcionado bien y las
que han funcionado mal. La priorización debe realizarse por todo el Team.
Para comenzar, durante los primeros sprints se utilizan post-its y hojas de Excel,
aunque después se pueden utilizar herramientas específicas. Cuando se ha empezado
a utilizar Scrum surge la necesidad de plantearse utilizar una herramienta digital para
la gestión del Product Backlog y del flujo de trabajo.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
1. Atlassian JIRA.
2. VersionOne.
A raíz de una fuerte colaboración con Scaled Agile Inc, VersionOne ha ido
ganando popularidad durante los últimos años. Ofrece un stack similar al de
Atlassian, quizás más enfocado en el framework SAFe. Es una de las
herramientas de agile más utilizada, ya que es fácil de instalar y usar y tiene
una interfaz intuitiva.
3. Banana Scrum.
4. Scrumblr.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
5. nTask.
6. QuickScrum.
7. VivifyScrum.
8. Taiga.
Incorpora una gestión simple de Product Backlog Ítems (aunque ellos les
llaman historias de usuario), un tablero para los equipos y permiten hacer
planificación de producto dentro de la propia herramienta.
9. Pivotal Tracker.
Esta herramienta está diseñada por Pivotal Labs, una compañía de desarrollo
ágil de software que da servicio a clientes.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
10. TargetProcess
4. EL SCALING SCRUM
4.1. SCRUM DE SCRUMS (SOS)
Definición
Recuerda
Los equipos de Scrum no deben de superar los 9 miembros para ser eficientes
y para que funcione la autoorganización. Si un producto requiere a más de 9
desarrolladores, en vez de hacer crecer a un equipo existente, el enfoque de
agilidad es crear varios equipos y distribuir el trabajo entre todos ellos. Para ello
necesitamos una forma efectiva para la coordinación, el alineamiento y la
comunicación entre estos equipos, así como una integración de las entregas a
final de sprint.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Para que esto funcione, el tamaño del equipo resulta crucial. Los equipos demasiado
pequeños o demasiado grandes podrían tener problemas a la hora de entregar
productos complejos. Lo ideal es equipos de entre 3 y 9 personas.
Dividir un equipo muy grande en dos o tres más pequeños puede ayudar a desarrollar
las relaciones personales y mantener los resultados esperados, aunque es crucial
equilibrar las habilidades entre ellos, redefinir las características de los equipos
establecidos y repartir detenidamente las tareas, ya que podrían darse dependencias
imprevistas y posibles cuellos de botella nuevos que podrían atrasar la entrega.
Estas funciones nuevas hacen uso del scrum diario a escala en una reunión de 15
minutos para alinear, mejorar y atajar los obstáculos. Un representante de cada equipo
debería analizar los obstáculos del equipo, los riesgos para lograr el objetivo del sprint
o las dependencias de otros equipos, siguiendo con cualquier mejora que se haya
detectado y que pueda resultar útil para otros equipos.
Nota
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
No hay una única metodología para escalar Scrum en las organizaciones. Las
metodologías más conocidas son:
Esta estructura suele ser atractiva para grandes organizaciones porque SAFe
emplea un enfoque escalonado para la entrega de trabajo.
Como idea general, a nivel de programa encontramos los ART (Agile Release
Train), que son equipos de equipos centrados en mantener el foco de trabajo y
entregar valor de manera sincronizada y cada cierto tiempo.
- Nexus:
Nexus puede ser visto como un contenedor sobre Scrum que se rige por los
mismos pilares valores, roles, eventos y artefactos complementado con aquello
que es necesario para escalar manteniendo la consistencia de Scrum.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
Un Nexus puede estar formado con hasta 9 equipos Scrum, para escalar más
de nueve equipos podemos usar Nexus+. Un Nexus+ puede estar formado por
hasta 9 Nexus, y de allí podríamos seguir incorporando otros Nexus o Nexus+
para escalar a toda una organización.
IFCD048PO METODOLOGÍA DE GESTIÓN Y DESARROLLO DE PROYECTOS DE SOFTWARE CON SCRUM
RESUMEN
La responsabilidad del Product Owner de hacer seguimiento del avance del proyecto
se ve reflejado en la gestión de los gráficos con los que se trabajan en Scrum, tanto
por el avance mostrado en el Project Burn-down chart como en la actividad sobre el
producto mostrada en el Burn-up chart. También podrá realizar estimaciones sobre la
finalización del proyecto.
Existen diferentes modelos para escalar Scrum, aunque puede suceder que
su implementación termine en fracaso.