Agile Project Management
Agile Project Management
Management
Este libro fue diseñado como guía para la gestión de proyectos en entornos ágiles. Se puede usar
como base para la integración de prácticas descritas en marcos como Scrum, Kanban o Lean.
1. Contratación
2. Finanzas
3. Seguimiento y control
4. Riesgos
5. Cambios
Introducción a la gestión de
proyectos
Las consideraciones para la gestión de proyectos basados en Scrum describen 6 elementos que
debe considerar el Equipo Scrum para garantizar que un proyecto entrega los resultados
esperados.
Estas consideraciones se relacionan con las prácticas descritas en el Ciclo de vida de un proyecto
basado en Scrum.
1. Contratación
1. Contratación
Esta consideración toma un enfoque en la contratación (selección) del personal del equipo, el
contrato del proyecto, y la contratación de proveedores que son externos al Equipo Scrum
El primer enfoque que veremos es la contratación (selección) del personal del equipo:
Roles Comprometidos
Los comprometidos son los roles que obligatoriamente se requieren para construir el producto
del proyecto, por ende, son los responsables del éxito de cada iteración del producto y del
proyecto en sí.
El Product Owner.
El Scrum Master.
El Equipo de Desarrollo.
Roles Involucrados
Los involucrados son los roles que no son obligatoriamente necesarios durante la ejecución del
proyecto Scrum. Ellos pueden interactuar con el equipo Scrum, pero NO son responsables del éxito
del proyecto.
Clientes.
Usuarios.
Proveedores (Ej: Freelancers; Proveedores de servicios; etc).
Oficina de Gestión de Proyectos Ágiles (APMO) (Más detalles de la APMO en la
consideración 6.3 Seguimiento y control).
Nota: Esta matriz está basada en el Modelo de desarrollo de habilidades de Dreyfus explicado más
adelante.
matriz-competencias
Image not found or type unknown
Aunque generalmente para la contratación de los miembros del equipo se realiza con base en el
conocimiento o habilidades técnicas, en Scrum se reconoce que también es necesario que los
miembros del equipo cuenten con otro tipo de habilidades que le permitan desarrollar mejores
interacciones, mejor comunicación y mayor cohesión. Las necesidades del equipo Scrum, se toman
como criterios adicionales a tener en cuenta para la adecuada contratación de los miembros.
Habilidades técnicas: Son las habilidades especificas que requieren los miembros que
desarrollarán los entregables del proyecto. (Ej, Diseño – Desarrollo de Software –
Conocimiento de una herramienta específica, etc)
Habilidades esenciales: También llamadas habilidades blandas, son las habilidades que
permiten lograr la empatía y buenas relaciones entre todos los Stakeholders del proyecto.
Procesos y prácticas: Las personas deben conocer los entregables, eventos, o
herramientas a usar dentro del proyecto. Scrum, por ejemplo, describe 17 prácticas
aplicables a los proyectos.
Herramientas: Para desarrollar los entregables del proyecto siempre será indispensable
el uso de herramientas, por ejemplo, herramientas de prototipado, herramientas
colaborativas, herramientas de integración, etc.
necesidades-equipo
Image not found or type unknown
Analistas.
Desarrolladores.
Probadores.
Integradores.
Diseñadores.
Arquitectos.
Etc.
Realizar una combinación entre novatos y expertos, puede desmotivar a los expertos, aunque
también puede darse la situación en la que los novatos crezcan rápido y se logre el equilibrio
esperado.
3. Contratación de proveedores
Para garantizar que se trabaja con los mejores proveedores, la selección se realiza considerando
las opiniones de todo el Equipo Scrum.
Algunos de los criterios que se pueden considerar para la selección de los proveedores son:
Precio.
Curva de Aprendizaje.
Facilidad de uso.
Velocidad de la Solución.
Soporte.
Seguridad.
Complejidad para la migración de Datos.
Tiempo de Implementación.
Reputación.
Facilidad de Pago.
Referencias.
Los “Freelancers”
En algunos proyectos, podría ser necesario el apoyo de personal no disponible en el Equipo de
Desarrollo, por ejemplo “Arquitectos”, “Diseñadores”, “Administradores de Bases de Datos”, etc.
Este tipo de personal es considerado como proveedor, y normalmente solo se contrata por días, y
en momentos muy específicos del proyecto.
freelancer
Image not found or type unknown
Consideraciones para la gestión de un proyecto ágil
2. Finanzas
Las finanzas del proyecto son una de las consideraciones más importantes en la gestión de un
proyecto (sobre todo en proyectos externos a la organización), ya que, de no realizarse una
adecuada gestión financiera, el proyecto podría generar pérdidas, comportamiento no deseados, e
incluso la cancelación total de un proyecto.
Las finanzas del proyecto se ven reflejadas principalmente en los siguientes momentos:
Inicio del proyecto: En la definición del presupuesto inicial del proyecto, que permitirá
evaluar la viabilidad de iniciar un proyecto, además de asegurar los recursos financieros
del proyecto, e incluso identificar posibles riesgos financieros.
Ejecución del Proyecto: Al final de cada Sprint, podría realizarse seguimiento y control
financiero del proyecto, para así evitar desviaciones o la ocurrencia de posibles
problemas, al ser realizada de forma iterativa, supone menor desgaste para la persona
que asuma esta responsabilidad (normalmente es el Product Owner), además de
garantizar que siempre se encuentra actualizada la información.
Cierre del Proyecto: Por lo general, las organizaciones solicitan a los equipos de
proyecto un reporte final que describa los costos del proyecto, en relación al presupuesto
solicitado. En Scrum la función encargada de analizar dicha información se conoce como
la APMO (Agile Project Management Office). Además esta información servirá para
alimentar el portafolio de proyectos.
finanzas
Image not found or type unknown
Nota: Es responsabilidad del Product Owner y el Patrocinador del proyecto (cliente), discutir,
negociar y aceptar el presupuesto para asegurar que haya suficientes fondos disponibles para el
proyecto.
Algunas de las técnicas y herramientas que se pueden utilizar para gestionar las finanzas del
proyecto son:
Retorno de la Inversión
El ROI (Return Of Investment) es el cálculo de las utilidades (o valor financiero) generado por un
proyecto. Esto sirve a muchas organizaciones para determinar si los proyectos externos son
exitosos o no.
roi
Image not found or type unknown
Nota: No todos los proyectos están diseñados para generar utilidades (ganancias), así que, cuando
a un proyecto no se le puede calcular el ROI, lo que se mide es el valor entregado (es decir, los
beneficios) utilizando VOI (Value of Investment).
El objetivo de esta técnica es calcular en una escala porcentual el grado de conocimiento sobre el
negocio y a partir de allí calcular la reserva financiera o presupuestal.
Algunos factores para el cálculo del coeficiente de conocimiento sobre negocio son:
El seguimiento y control del proyecto, es una actividad que debe hacerse de forma continua a lo
largo del ciclo de vida del proyecto. Por lo general los momentos donde se realiza de forma
intensiva son: Al inicio, a intervalos predefinidos durante el proyecto o en cualquier momento
cuando surgen problemas o riesgos de viabilidad.
Consideraciones para la gestión de un proyecto ágil
3. Seguimiento y control
dibujo
Varias prácticas de proyección de tendencias se han utilizado para predecir el progreso, como
trabajo pendiente (Burn Down), trabajo completado (Burn Up) y el flujo acumulado (Cumulative
Flow). Estas han probado ser útiles, sin embargo, no reemplazan la importancia del empirismo. En
entornos complejos se desconoce lo que ocurrirá. Solo lo que ya ha ocurrido puede utilizarse para
la toma de decisiones con miras al futuro.
Todos los equipos tienen diferente velocidad, así hagan parte del mismo proyecto. A
continuación, la fórmula para calcular la velocidad de un equipo Scrum:
dibujo
¿Para qué se
Métrica ¿Qué se mide? Responsable Responsable
utiliza?
Historias de Usuario
• Monitorear el
Completadas
progreso del equipo.
Historias de Usuario
Flujo acumulado • Evitar la deuda Scrum Master Sprint
Pendientes Historias
técnica del equipo en
de Usuario En
cada sprint.
Progreso
Encontrar el punto de
equilibrio del trabajo
al que se puede
Velocidad de Equipo Velocidad de Equipo Scrum Master Sprint
comprometer el
equipo en cada
sprint.
Garantizar la
# Cambios aceptados
estabilidad de los
# Cambios
proyectos y
Cambios rechazados # Product Owner Semanal
Garantizar que los
Cambios pendientes
cambios son
por revisar
atendidos a tiempo.
Errores en pruebas
unitarias Errores en
pruebas de colegas Garantizar la calidad
Errores Equipo de Desarrollo Sprint
Errores en del producto.
producción Errores
en Validación
Normalmente los controles de calidad son realizados por el Equipo de Desarrollo y el Scrum Master
durante la práctica de Desarrollo del Sprint, y por el Product Owner en la Revisión del Sprint.
4. Riesgos
La gestión de riesgos es una actividad que se realiza proactivamente y a través del ciclo de vida
del proyecto.
Un riesgo es definido como una situación inesperada que puede afectar los objetivos de
un proyecto.
Los riesgos pueden tener un impacto tanto positivo como negativo sobre el proyecto.
Falta de seguimiento y control sobre los proyectos: La falta de seguimiento y control del
portafolio de proyectos puede provocar su obsolescencia y/o fracaso.
Posible rotación del personal actualmente involucrado en el proyecto: Uno de los mayores
riesgos a los que normalmente se encuentra expuesto un proyecto, es la posible renuncia de los
miembros del equipo, por lo que se recomienda:
dibujo
Capacidad de Riesgo
La capacidad de riesgo es el nivel de riesgo máximo que se puede permitir antes de que el
proyecto se desvíe de tal forma que no entregue valor al cliente. En caso de superar la capacidad
de riesgo, por lo general se da por terminado el proyecto (Sección - Etapa 6: Cierre del proyecto).
dibujo
Al inicio del proyecto: Se identifican los riesgos globales del proyecto, por ejemplo,
riesgos relacionados con el presupuesto, el personal, etc.
Los Sprints: Se identifican los riesgos que pueden afectar el desarrollo de ese Sprint
particular, por ejemplo, riesgos del producto. Esta actividad se realiza se forma iterativa
durante todo el proyecto principalmente en las reuniones de Planificación de los Sprint.
Solo mirando el proyecto desde diferentes perspectivas y utilizando una variedad de técnicas, se
puede hacer la identificación de los posibles riesgos. La técnica más utilizada es la lluvia de ideas.
dibujo
dibujo
Ejemplo: Una organización que implementa sistemas de energía solares detecta una posible
tormenta tropical que le impediría continuar con la instalación de los paneles previstos para el
próximo Sprint. Para calcular el impacto que esto tendría en el proyecto se identifican factores
como posibles multas, salario de las personas, etc. Llegando a la conclusión de que para este
riesgo se perderían 538 dólares. El siguiente paso es calcular la probabilidad de ocurrencia del
riesgo, que según el instituto meteorológico es del 35%. Al aplicar la técnica como se explica, el
Valor Monetario de ese riesgo es de 188.3 dólares.
dibujo
dibujo
dibujo
[Link].1 – Mitigación
La mitigación se enfoca en reducir la probabilidad de ocurrencia o el impacto del riesgo.
Comprende acciones que se toman por adelantado o acciones Proactivas.
Se reduce la exposición al riesgo (probabilidad vs impacto) dentro de límites aceptables
para el proyecto.
[Link].2 – Contingencia
La contingencia se enfoca en definir una respuesta que se utiliza si el riesgo se
materializa o se identifican señales de advertencia.
Comprende acciones Reactivas y acciones de monitoreo en caso de que el riesgo sea
inevitable.
Por lo general, la comunicación del Riesgo es llevada a cabo por el Scrum Master hacia el Product
Owner y por el Product Owner hacia el cliente.
Esta comunicación siempre está en curso y debe ocurrir en paralelo durante los cuatro pasos
secuenciales discutidos hasta ahora.
Consideraciones para la gestión de un proyecto ágil
5. Cambios
Ágil implica la apertura al cambio, por lo que es común que todos los proyectos ágiles estén
expuestos a cambios, y es de vital importancia que los miembros del equipo estén preparados para
enfrentar los cambios en cualquier etapa del proyecto.
Es aún más importante que la organización sea consciente de la exposición a los cambios para
crear sinergia con los equipos Scrum y buscar aprovechar los beneficios minimizando el impacto
negativo que pudiese resultar del cambio.
Dada la naturaleza iterativa o incremental de Scrum, es posible manejar los cambios sobre el
producto de una manera ordenada y cíclica, respondiendo continuamente a lo que espera el
cliente; en correspondencia con el manifiesto ágil, “Aceptamos que los requisitos cambien, incluso
en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar
ventaja competitiva al cliente”.
Aunque en Scrum hay una fuerte inclinación a no mantener grandes cantidades de información sin
valor, una forma apropiada de solicitar los cambios sobre los productos Scrum, es a través del
formato para Solicitud de Cambios – RFC (Request For Change), sin embargo esto no implica que
necesariamente haya documentación de por medio.
Es importante que detrás de cada cambio solicitado exista un “iniciador” para mantener la traza
entre el cambio y saber de dónde proviene. Además dentro de la gestión de cambios en Scrum se
reconoce la autoridad del Product Owner en la aprobación/rechazo de los cambios, por lo que es
importante que durante todo el proyecto, el Product Owner esté enterado de lo que sucede con el
producto.
dibujo
Normalmente, estos requerimientos se ubicarían como alta prioridad dentro del Product Backlog.
En muchas ocasiones el Lean Canvas se utiliza como el artefacto sustituto del caso de negocio.
El Lean Canvas está compuesto por 9 cuadrantes, tal como los que se describen a continuación:
dibujo
3. Simplicidad: Reducir el número de acciones que debe realizar el usuario o consumidor del
producto para poder operarlo, en función de la experiencia de usuario (UX) Ej: Reducir la cantidad
de botones de un producto; Reducir la cantidad de clics necesarios para lograr una acción en una
aplicación.
6. Diseño o apariencia: Construir productos con diseños atractivos, simples y que reflejen la
calidad de los materiales o componentes. Además, realizar un cambio de imagen a los productos,
refleja a los clientes que existe una innovación constante.
8. Autoservicio: Se refiere a que el producto sea útil por sí mismo y no dependa de acciones de
terceros para ser utilizado (diagnóstico de fallas, configuración, implementación) Ej: Autos
modernos con sistema de ayuda para la identificación y prevención de fallas; Aplicaciones en la
nube que no requieren de capacitación previa para ser usadas.
Estos principios son genéricos y aplicables a cualquier producto o servicio, y harán parte de la
práctica “Definición de la Arquitectura de Producto”.
Etapa 1: Inicio del proyecto
Etapa 1: Inicio del proyecto
dibujo
7.1.1 - Definir la visión del proyecto Product Owner: Alto - Scrum Master:
1
(1) Nulo - Equipo de desarrollo: Nulo
dibujo
Empleados que trabajan para el proyecto, su respectivo rol y el tiempo en horas que
dedican al proyecto.
Proveedores del proyecto.
Clientes / Usuarios que serán entrevistados, revisarán el proyecto o brindarán información
útil para la construcción del producto.
Los miembros del equipo deben tener un entendimiento compartido de lo que significa que el
trabajo esté completado para asegurar la transparencia. Esta es la definición de “Terminado”
(“Done”) para el Equipo Scrum, y se utiliza para evaluar cuándo se ha completado el trabajo sobre
el Incremento de producto.
Esta misma definición guía al Equipo de Desarrollo en saber cuántos elementos del Product
Backlog puede seleccionar durante la Planificación del Sprint. El propósito de cada Sprint es
entregar Incrementos de funcionalidad que potencialmente se puedan poner en producción y que
se ajusten a la Definición de “Terminado” (Done) actual del Equipo Scrum.
Cada Incremento se integra con todos los Incrementos anteriores y es probado de manera
exhaustiva, asegurando que todos los Incrementos funcionan en conjunto.
A medida que los Equipos Scrum maduran, se espera que su definición de “Terminado” (Done) se
amplíe para incluir criterios más rigurosos para una mayor calidad. El uso de las nuevos criterios
puede descubrir trabajo por hacer en los incrementos previamente “Terminados” (Done). Cualquier
producto o sistema debería tener una definición de “Terminado” (Done) que es un estándar para
cualquier trabajo realizado sobre él.
Un sólo Sprint.
Un Conjunto de Sprints.
Un Proyecto.
Un Programa.
Toda la Organización.
Los elementos fueron revisados por otros miembros del equipo (se realizaron las pruebas
de colegas).
Todos los defectos están arreglados.
Se completaron las pruebas unitarias de la Historia de Usuario.
Se finalizó toda la documentación técnica y de usuario final.
Todos los archivos y documentos del proyecto están en el repositorio de la organización.
Se hizo la demostración exitosa a los Socios y/o representantes de la empresa.
El cliente dio su visto bueno a los entregables.
Por ejemplo, cuándo y cómo se llevarán a cabo las reuniones, qué tipo de herramientas de
comunicación se utilizarán, y quién debe estar involucrado en las diversas reuniones.
En proyectos grandes y complejos, especialmente con equipos distribuidos, este artefacto tiene
mucha más formalidad. En otros proyectos pequeños, a veces puede ser simplemente un
entendimiento verbal.
Por lo general es un artefacto que se construye en una reunión breve (30 minutos máximo), y se
tiene en cuenta la opinión del todo el equipo.
dibujo
En esta etapa también se definen las reglas del equipo, su propósito y su identidad (un nombre
para el equipo), lo cual hace parte de un buen entorno de trabajo para el equipo.
En esta fase el Scrum Master toma una posición de “director” dado que los miembros del equipo
dependen de él para la definición del rumbo del equipo y su orientación.
Aunque la fase hace alusión al enfrentamiento, también es necesario que esos enfrentamientos se
resuelvan para asegurar el buen rendimiento del equipo.
En esta fase el Scrum Master toma una posición de “coach”, brindando acompañamiento al equipo
y guiando a los miembros para mantener los conflictos bajo control. También debe mantener la
calma y dar ejemplo del comportamiento deseado para que los demás miembros del equipo lo
imiten y adopten sanamente. El Scrum Master también es responsable de promover actividades
que aumenten la motivación del equipo e identificar cuáles son las interacciones que mejoran o
deterioran la convivencia en el equipo.
En esta fase el Scrum Master es un “facilitador”, ya que toma un enfoque hacia la mejora y
acondicionamiento del entorno para facilitar el rendimiento del equipo. Dado que en esta fase el
Scrum Master conoce más al equipo, puede identificar de qué manera encajan mejor sus miembros
y cómo puede aumentar su rendimiento y motivación.
Es común que en esta fase se puedan incorporar nuevos miembros al equipo, por lo que el Scrum
Master tiene que velar por mantener la estabilidad del equipo asegurando que los nuevos
miembros se integren fácilmente al equipo sin disminuir su rendimiento ni su motivación.
4. Desempeño En esta fase se cuenta con un equipo maduro con suficiente confianza,
motivación y autonomía por lo que los miembros están en la capacidad de tomar
ciertas decisiones sin la presencia de un “jefe”, y se le pueden delegar tareas que
antes eran exclusivas del Scrum Master (como llevar a cabo reuniones diarias,
identificar impedimentos, etc.). Además, los miembros del equipo ya son capaces de
resolver los desacuerdos o diferencias positivamente y en poco tiempo.
Se debe reconocer que no todos los equipos llegan a esta etapa pues se logra después de
enfrentar conflictos y grandes dificultades, convivir y compartir experiencias, lo que implica que
muchos equipos no logren completamente la etapa de Normalización y se queden estancados en la
etapa de Enfrentamiento.
En esta etapa no se requiere de mucho esfuerzo por parte del Scrum Master, lo que le permite
enfocarse mucho más en mantener y mejorar el entorno de trabajo del equipo favoreciendo el alto
rendimiento de los miembros.
La finalización del equipo se presenta cuando acaba el proyecto y los miembros del equipo pasan a
ser parte de otro proyecto o de otra empresa, lo cual implica que, aunque se haya alcanzado
exitosamente el objetivo del proyecto, entre los miembros se genera una sensación de “pérdida”
pues las interacciones que ya estaban establecidas y que ya funcionaban adecuadamente se
terminarán junto con el proyecto. En algunos casos el mismo equipo puede hacer parte de un
próximo proyecto, sin embargo, al tratarse de un nuevo proyecto no necesariamente significa que
las interacciones permanecerán de la misma manera.
Es necesario que el Scrum Master brinde acompañamiento al equipo, pues ya sea si se trata de la
disolución o la finalización, representa un cambio significativo para los miembros del equipo.
Este modelo permite a las organizaciones identificar jóvenes talento con potencialidad para
desarrollar sus habilidades desde un nivel novato a un nivel experto a través de una combinación
de aprendizaje y práctica, así como determinar los perfiles necesarios para el desarrollo de un
proyecto. El modelo Dreyfus se divide en cinco (5) etapas:
dibujo
Épicas.
Historias de Usuario.
Errores.
Tareas.
Pruebas de Concepto.
Las épicas permiten agrupar los elementos del Product Backlog, permitiendo una mejor navegación
por el mismo. Algunas ideas de las que se podrían definir las épicas son:
Módulos.
Componentes.
Hitos.
Entregables.
Funcionalidades.
Tiempo.
Esfuerzo.
Valor Funcional.
Dependencias.
Riesgos.
Opinión de los Stakeholders.
Opinión del equipo de desarrollo.
Valor de Mercado ($).
Nota: La prioridad de los elementos puede cambiar durante la ejecución del proyecto.
Los elementos que aporten más valor al negocio y tengan una mayor urgencia tendrán una mayor
prioridad dentro del Product Backlog:
dibujo
Este representa la secuencia de iteraciones de desarrollo de los productos (de izquierda a derecha
se organizan los componentes según su prioridad de desarrollo, tal como se ve en la imagen):
dibujo
En esta práctica, podrían determinarse la duración estimada de los diferentes Sprints (dado que se
ya tienen los elementos del Product Backlog priorizados).
Este cronograma incluye la descripción de alto nivel de las actividades, compromisos, tareas
asignados específicamente a los miembros del equipo de desarrollo, los cuales se irán refinando a
lo largo del proyecto, en las reuniones de Planificación de cada sprint.
dibujo
Nota: Este cronograma se irá actualizando de manera iterativa durante los Sprints.
Para garantizar que la arquitectura de producto que se defina cumple exactamente con los
requerimientos del cliente se debe hacer en conjunto entre el equipo de desarrollo y el Product
Owner.
Antes de iniciar la construcción del producto es importante identificar la relación entre todos los
componentes que harán parte del mismo.
Ejemplo: Una empresa de desarrollo de software planea construir una aplicación para realizar
cursos virtuales. Al ser un proyecto de software, en la definición de arquitectura se deberán tener
en cuenta los siguientes elementos:
Bases de datos.
Servidores de almacenamiento.
Servidores de procesamiento.
Nombres de dominio.
Servidores de procesamiento de correo electrónico.
Firewall.
Web services.
Entre otros.
En esta actividad se analizan y evalúan las posibles soluciones que se pueden establecer para el
desarrollo del proyecto.
Herramientas.
Soluciones Tecnológicas.
Soluciones técnicas.
Por cada solución escogida se deberá realizar una prueba de concepto, en donde se deben tener
en cuenta los siguientes criterios:
Curva de aprendizaje.
Escalabilidad (Solo si es solución técnica o tecnológica).
Soporte.
Costo. Nota: Este sprint solo se utiliza para los casos en que el equipo de proyecto tiene
poca o nula experiencia en la tecnología en la cual se va a construir el producto o incluso
si cuenta con poca o nula experiencia en el tipo de producto que se va a desarrollar.
dibujo
Etapa 2: planificación
7.2.1 - Escribir las historias de usuario Product Owner: Alto - Scrum Master:
7
y tareas (7) Medio • Equipo de desarrollo: Alto
Por lo general, las historias de usuario se complementan de otros aspectos que ayudan al equipo a
entenderlas mejor, algunos de estos pueden ser:
Criterios de aceptación
Criterios de prueba
Prototipos
Bill Wake inventó el acrónimo INVEST para describir las características de una buena historia de
usuario:
Los criterios de aceptación son únicos para cada historia de usuario o tarea a completar
Estos criterios suelen ser definidos por el Product Owner
Estos criterios permiten saber si esa historia de usuario es funcional y cumple las
necesidades, expectativas y/o requerimientos de los usuarios y/o clientes.
Los mockups normalmente son un conjunto de bocetos, diseños, diagramas y/o representaciones;
y es especialmente necesario contar con un mockup o prototipo previo al Sprint, pues éstos
servirán de guía a los miembros del equipo.
dibujo
Realizar las entrevistas o investigaciones necesarias para escribir las historias de usuario.
Realizar los prototipos y confirmar el valor con el usuario.
Dependencias obligatorias.
Dependencias discrecionales.
Dependencias externas.
Dependencias internas. Algunas técnicas que pueden ser usadas para desglosar las
Historias de Usuario en tareas son:
Los Diagramas de Flujo.
Los Diagramas de Gantt.
7.2.2 - Priorizar las Historias de
Usuario (8)
Esta práctica está relacionada con la planificación en paralelo, debido a que mientras el equipo
termina de desarrollar lo establecido para el último Sprint, el Product Owner realiza una
priorización de las historias de usuario que pueden considerarse para el siguiente Sprint y que se
pueden tomar como base para guiar el rumbo del equipo.
Es importante que esta priorización se realice antes de que se lleve a cabo la Reunión de
Planificación del Sprint con el fin de optimizar el tiempo.
Los elementos que se deben considerar para la priorización de las historias de usuario son:
La entrada a esta reunión está constituida por el Product Backlog y tomando la priorización de
historias de usuario realizada por el Product Owner, incluyendo además:
Durante la Planificación del Sprint el Equipo Scrum define el objetivo del Sprint. El objetivo del
Sprint debería lograrse durante el Sprint a través de la implementación del Product Backlog y
proporciona una guía al Equipo de Desarrollo del por qué se está construyendo el incremento.
Para garantizar una estimación más precisa, se deberían considerar criterios como:
Tamaño.
Complejidad.
Duración.
Cantidad de recursos.
Riesgos.
Limitaciones.
Normalmente las técnicas de estimación usadas por Scrum están basadas en el juicio de expertos,
sin embargo existen otras técnicas que se pueden utilizar y combinar:
Planning Poker
El póker de planificación consiste en un conjunto de tarjetas numéricas que sirven para realizar la
estimación de tareas o historias de usuario.
Fist of Five
Es una técnica que permite lograr el consenso en los Equipos Scrum. Se hace usando los dedos de
la mano, donde el número de dedos que se utiliza para la votación indica el nivel de acuerdo y el
deseo para el debate:
Suele suceder que en equipos Scrum donde se encuentran combinados miembros expertos y
miembros novatos existirá un “desequilibrio” en etapas tempranas del proyecto, pues los
miembros expertos contarán con más capacidad de trabajo mientras los miembros novatos se
nivelan en su curva de aprendizaje.
Durante la Planificación del Sprint se debe asegurar que se planifica el suficiente trabajo como para
que el Equipo de Desarrollo pueda hacer una proyección de lo que cree que puede completar en el
Sprint que comienza.
Para el final de esta reunión, el trabajo planificado por el Equipo de Desarrollo para los primeros
días del Sprint es descompuesto en unidades de un día o menos. El Equipo de Desarrollo se
autoorganiza para asumir el trabajo del Sprint Backlog, tanto durante la Planificación del Sprint
como a lo largo del Sprint.
El Product Owner puede ayudar a clarificar los elementos del Product Backlog seleccionados y
hacer concesiones. Si el Equipo de Desarrollo determina que tiene demasiado trabajo o que no
tiene suficiente trabajo, podría renegociar los elementos del Product Backlog seleccionados por el
Product Owner. El Equipo de Desarrollo podría también invitar a otras personas a que asistan para
proporcionar asesoría técnica o relacionada con el dominio.
Definir el objetivo del Sprint brinda al Equipo de Desarrollo cierta flexibilidad con respecto a la
funcionalidad que ha de ser construida en el Sprint.
Los elementos seleccionados del Product Backlog ofrecen una orientación sobre lo que
puede ser el objetivo del Sprint.
El objetivo del Sprint garantiza que el Equipo de Desarrollo trabaje en conjunto y no en
iniciativas separadas.
Por lo general el objetivo del Sprint suele ser una frase corta que explica de forma simple
el incremento esperado al final del Sprint. A medida que el Equipo de Desarrollo trabaja
mantiene el objetivo del Sprint en mente. Si el trabajo resulta ser diferente de lo
esperado, los miembros del equipo escalan la situación con el Scrum Master para
contactar al Product Owner y se pueda negociar el alcance del Sprint.
[Link].2 - Spikes
Un Spike sirve para incluir en un sprint tareas que NO implican desarrollar una historia de usuario y
por tanto NO aportan directamente al incremento de producto que se está desarrollando.
Como se aprecia en el gráfico a continuación, el Scrum Diario es una práctica que se realiza en
forma paralela al desarrollo de los entregables del Sprint.
dibujo
Nota: En conjunto con esta práctica, se ejecutan los Scrums Diarios, y Las pruebas de los
entregables.
dibujo
Pruebas unitarias: Son escritas por el mismo desarrollador siguiendo los criterios de
aceptación de la historia de usuario. Estas pruebas suelen realizarse de manera
automatizada.
Pruebas de colegas: Suelen ser manuales, en las cuales el colega revisan no solo el
funcionamiento, sino la calidad del código, y compara el resultado vs prototipos.
Pruebas de integración: Suelen ser automatizadas. Éstas se ejecutan en cada integración
y antes de cada entrega.
Pruebas manuales.
Pruebas automatizadas.
Aprobada: Se cumple con todas las expectativas y/o criterios de aceptación de las
historias de usuario que se están probando.
Rechazada: NO se cumple con todas las expectativas y/o criterios de aceptación de las
historias de usuario que se están probando. Cuando se rechaza una historia de usuario
durante las pruebas, se debe reportar el error en un “Log de Errores”, normalmente
dentro del Product Backlog.
Reporte de errores Es importante tener en cuenta que los errores deben pasar por un proceso de
estimación igual que las Historias de Usuario (se planifica su resolución en los diferentes Sprints
del proyecto).
[Link].3 – Documentación
La documentación es un aspecto vital en los proyectos de software, esto permitirá el posterior
entendimiento del código fuente y así garantizar la propiedad colectiva del producto. Para que la
documentación sea efectiva, se debe garantizar que:
[Link].4 – Refactorización
El objetivo de esta técnica es mejorar el mantenimiento del código existente y hacerlo más simple,
más conciso y más flexible. Refactorizar significa mejorar el diseño del código actual, sin cambiar
el comportamiento del código. Algunas de las ventajas de la refactorización son:
Durante esta etapa del ciclo de vida, también se realiza el monitoreo y control del proyecto, dando
paso a: Gestión de Cambios, Gestión de Riesgos y la Gestión Financiera.
dibujo
7.4.1 - Reunión de Revisión del Sprint Product Owner: Alto - Scrum Master:
12
(12) Alto - Equipo de desarrollo: Alto
A continuación, se listan las actividades que se realizan durante la Reunión de Revisión del Sprint:
¿Cómo se realizan las validaciones? En esta reunión se presenta el incremento de producto ante
los interesados, los cuales se cerciorarán que cada una de las funcionalidades establecidas y
solicitadas en el Sprint estén terminadas (bajo los lineamientos de los criterios de aceptación y los
criterios de “terminado”).
La Retrospectiva del Sprint tiene lugar después de la Revisión de Sprint (Sprint Review) y antes de
la siguiente Planificación de Sprint. Se trata de una reunión restringida a lo máximo de 4 horas
para Sprints de un mes.
El Scrum Master enseña a todos a mantener el evento positivo y productivo; y participa de esta
reunión como un miembro del equipo ya que parte de la responsabilidad de los incrementos recae
sobre él.
El Scrum Master motiva al equipo para que mejore su proceso de desarrollo y sus prácticas para
hacerlos más efectivos y amenos para el siguiente Sprint. Durante cada Retrospectiva del Sprint el
Equipo Scrum identifica y planifica formas de mejorar la calidad del producto mediante el
mejoramiento de la calidad de las prácticas, que pueden ser implementadas en el próximo Sprint.
Uno de los elementos que se deben tener en cuenta, es que el realizarla siempre de la misma
manera (monotonía), podría disminuir el interés de los equipos en participar. Así que muchos de los
Scrum Máster, suelen utilizar la reunión de retrospectiva del Sprint como un evento en el cual
experimentar e introducir nuevas técnicas.
1. Preparación de la sesión
2. Recolección/Análisis de los datos
3. Generar ideas de mejora/cambio
4. Definir los planes de acción (experimentos a aplicar en los próximos Sprint)
5. Recolección de retroalimentación de la retrospectiva
A continuación, se mencionan algunas de las tantas técnicas disponibles que se pueden realizar
como parte de una Retrospectiva del Sprint.
Índice de felicidad del Equipo El índice de felicidad del equipo es una técnica utilizada para
medir el nivel de felicidad alrededor del tiempo de cada uno de los miembros de un equipo. Se
caracteriza por su facilidad de aplicación, además de tener el anonimato como uno de sus pilares
centrales.
Para aplicar la técnica, el Scrum Master suele construir un tablero (canvas) como el que se muestra
a continuación:
dibujo
Suele estar en un lugar visible de las oficinas de trabajo del equipo Scrum
Si está físico (recomendable), se utilizan stickers de colores para completar el tablero y
así mapear el estado de ánimo
Las variaciones en la felicidad del equipo, pueden ser el reflejo de las situaciones vividas
en la organización.
Es una medición subjetiva, por lo que los resultados deben manejarse con precaución
Le aportan bastante valor a las labores realizadas por el Scrum Master, ya que se puede
enfocar en hacer la vida más feliz a todos los miembros de los equipos que lidera.
Siempre se debe garantizar el anonimato, ya que, de lo contrario, los resultados
mostrados en el tablero no serán precisos o acordes a la realidad
Aunque los datos se recolectan a lo largo del desarrollo de un Sprint, su análisis se puede
hacer en conjunto con todo el equipo como parte de una retrospectiva.
4L’s
Esta técnica descrita ampliamente en el libro “Agile Retrospectives” se utiliza como ejercicio en las
retrospectivas. Consiste en un tablero (canvas) dividido en 4 cuadrantes:
1. Liked: Aquí cada uno de los miembros puede poner todas las cosas que les gustaron
durante el desarrollo del Sprint (Ej: La planificación organizada, la nueva herramienta con
la que se trabajó, una nueva técnica implementada por el Scrum Master, etc)
2. Learned: En esta sección, se listan todos aquellos elementos que el equipo siente que
aprendió y que le servirán para próximos Sprints (Ej: La importancia de comentar el
código, nuevas técnicas para revisar los entregables, nuevas técnicas de retrospectiva,
etc)
3. Lacked: Aquí se colocan todas las cosas que faltaron durante el Sprint, así como las
necesidades que el equipo tiene. (Por lo general suelen estar asociadas a impedimentos
que haya tenido el equipo)
4. Longed For: Acá los integrantes del equipo colocan todas aquellas cosas que quieren que
sucedan en el futuro próximo (Ej: Mayor participación del cliente, mejor redacción en las
historias de usuario, una nueva herramienta, etc)
dibujo
Suele tenerse el canvas impreso y disponible en la oficina, para ser completado con
sticky-notes
Todos los datos son analizados por el Scrum Master, en conjunto con los miembros del
equipo para así definir planes de acción para los próximos Sprint.
Feedback
Con el fin de que los equipos de trabajo tengan oportunidades de mejora en sus enfoques y
desarrollo del trabajo, es necesario que el líder del equipo o incluso entre colegas, una vez
finalizado un Sprint (o en cualquier momento que se considere necesario), se brinden
retroalimentación.
• Dar sugerencias para el futuro y aprender tanto como se pueda. • No se deberían tratar hechos
pasados. • Es más productivo que el feedback, puesto que ayuda a las personas a hacer lo
“correcto” más que probar que estaban “equivocados”.
Etapa 5: Entrega de los
incrementos
Etapa 5: Entrega de los incrementos
7.5 - Etapa 5:
Implementación
Durante la etapa de implementación se realiza la entrega y/o puesta en marcha de todos los
entregables desarrollados por el Equipo Scrum, durante esta etapa, se realiza el valor del producto.
Está compuesta por 2 prácticas que se realizaran en forma iterativa (hasta donde sea posible y así
lo permita la naturaleza del producto).
dibujo
Etapa 5: Implementación
Según la naturaleza de la organización, es común que éstas prácticas sean ejecutadas por grupos
distintos al Equipo Scrum, sin embargo es altamente recomendable que sea el mismo Equipo el
que se haga responsable de este trabajo, así se garantiza un real compromiso por la calidad de los
entregables, a la vez que se evita la aparición de una cultura de la culpa.
7.5.1 - Planificación de la
implementación (14)
El objetivo de esta práctica es preparar todos los elementos necesarios para realizar una
implementación exitosa de los incrementos generados en los Sprint, disminuyendo
significativamente los riesgos que puedan impactar negativamente las operaciones de los
usuarios/clientes.
La cantidad de entregas (despliegues) dependerá de lo acordado con el cliente o patrocinador del
proyecto, y por lo general, dependen del valor para la organización.
Nota: Es altamente recomendable que los equipos de operaciones hayan participado de las
reuniones de Revisión de los Sprint.
7.5.2 - Implementación de
entregables (15)
Esta práctica busca poner a disposición de los usuarios los incrementos finalizados y utilizables
previamente desarrollados por el Equipo Scrum.
Cabe aclarar que esta práctica no es posible aplicarla en todos los tipos de proyectos, ni es
obligatorio ejecutarla al finalizar cada Sprint, solo será aplicable cuando el incremento de producto
genere valor para los usuarios o para la organización.
La implementación de entregables puedes realizarse de varias formas, las 2 más comunes son:
Big bang: Este tipo de implementación, busca poner el incremento a disposición de toda
la comunidad de usuarios al mismo tiempo. También se le llama “Implementación
masiva”.
Por fases: Este tipo de implementación se usa en caso de que se quiera hacer una
segmentación de los usuarios para implementar el incremento (ej: entregarlos solamente
a usuarios específicos).
[Link] - Confirmación de implementación
exitosa
Una vez el incremento de producto está en ambientes productivos, es importante confirmar que no
hubo afectaciones a la operación, por lo que podrían ejecutarse revisiones o pruebas post-
implementación.
dibujo
Cierre exitoso del proyecto: Se cumplió con todos los entregables programados dentro del
presupuesto asignado y de acuerdo con los criterios de aceptación (satisfacción total del
cliente).
Cierre parcial del proyecto o aplazamiento: Se cumplió parcialmente con los entregables
programados, se está superando el presupuesto asignado o no se ha cumplido
completamente con todos los criterios de aceptación (satisfacción parcial del cliente).
Cancelación del proyecto: No se cumplió con ninguno de los entregables programados, se
agotó el presupuesto asignado antes de tiempo, no se cumplió con ningún criterio de
aceptación (insatisfacción total del cliente).
Producto o incremento de producto desarrollado por el equipo: Para registrar el estado del
producto al momento de cierre del proyecto.
Acta de Inicio del Proyecto: Para validar el alcance, objetivos y aspectos iniciales del
proyecto.
Resultados de las pruebas de integración: Incluye un informe de las pruebas que se
realizaron tras la entrega de cada incremento del producto para garantizar la correcta
integración entre componentes.
Criterios de aceptación del producto: Para verificación y validación de lo esperado en
comparación con lo que se entregó.
Documentación/Capacitación al cliente: Para garantizar que el cliente cuenta con el
conocimiento sobre el uso, instalación, configuración o soporte básico del producto.
Informes de proyecto: Que muestran el estado actual del progreso del proyecto (Se
mostrarán informes como: diagrama de flujo acumulado y diagrama de presupuesto).
Es importante que quede un artefacto como evidencia del cierre del proyecto, con lo cual se
garantiza la terminación oficial de las actividades del proyecto, o el cumplimiento de los
compromisos posteriores (en caso que existan).
Scrum Master.
Product Owner.
Equipo de Desarrollo.
En algunas ocasiones incluso podría participar el cliente.
La gestión de riesgos en un equipo Scrum se garantiza a través de su naturaleza iterativa, que permite una evaluación continua de los riesgos del proyecto. Cada Sprint incluye revisiones que otorgan al equipo la oportunidad de identificar nuevos riesgos y evaluar los existentes. Esta iteración constante asegura que la gestión de riesgos se mantenga ágil y adaptable . Además, durante cada Reunión de Revisión del Sprint y Retrospectiva, los equipos evalúan el impacto de los riesgos y deciden acciones correctivas para mitigar cualquier problema potencial . Esto garantiza que la gestión de riesgos sea un proceso continuo y parte integral de la ejecución de cada Sprint.
La APMO (Oficina de Gestión de Proyectos Ágiles) juega un papel crucial en el seguimiento y control de los proyectos basados en Scrum. Su principal responsabilidad es asegurar que los proyectos ágiles estén alineados con los objetivos estratégicos de la organización mientras facilita la coordinación y comunicación entre los equipos ágiles . La APMO monitorea el progreso del proyecto, proporciona apoyo mediante prácticas ágiles, y ayuda a gestionar riesgos y cambios, asegurando así que el equipo Scrum pueda adaptarse rápidamente al feedback y cambios necesarios durante el ciclo de vida del proyecto .
Establecer un objetivo de Sprint claramente definido en Scrum es crucial porque proporciona una guía focal para el equipo en cada iteración. Este objetivo alinea el esfuerzo del equipo con el Product Backlog y asegura que todos los miembros comprendan la finalidad del trabajo a completar . Un objetivo claro permite flexibilidad al decidir qué funcionalidades implementar y proporciona un marco que ayuda a priorizar tareas y evaluar el progreso. Además, en caso de desviaciones, el objetivo de Sprint actúa como un punto de referencia para renegociar el alcance y ajustar el trabajo .
Un equipo Scrum maneja la deuda técnica asegurando que se identifique y aborde en el contexto de cada Sprint. La priorización frecuente de las Historias de Usuario contribuye a disminuir la deuda técnica al permitir iteraciones que refinan continuamente el Product Backlog . Durante las Retrospectivas de Sprint, el equipo discute las causas de la deuda técnica, como la evaluación inadecuada de Historias de Usuario o la falta de coordinación, para tomar medidas correctivas. La filosofía ágil enfatiza no prolongar la deuda técnica más allá del Sprint en que se identificó, integrando soluciones en ciclos de desarrollo futuros para mantener el producto de manera sostenible .
La selección de proveedores en un proyecto Scrum debe considerar múltiples criterios para garantizar que se colabora con los más aptos. Estos criterios incluyen el precio, la curva de aprendizaje, la facilidad de uso, la velocidad de la solución, el soporte ofrecido, la seguridad, la complejidad de la migración de datos, el tiempo de implementación, la reputación, la facilidad de pago y las referencias . Involucrar al equipo Scrum en el proceso de selección asegura que las decisiones reflejen una perspectiva amplia y estén alineadas con las necesidades del proyecto, maximizando el impacto positivo de las interacciones con los proveedores .
La capacidad y carga de trabajo de un equipo durante una reunión de planificación del Sprint en Scrum se determinan evaluando el Product Backlog junto a la priorización de historias de usuario previamente realizada. El Product Owner expone el objetivo del Sprint y los elementos que lo componen, y el equipo de desarrollo estima el trabajo seleccionando elementos viables para el Sprint . Se consideran factores como la capacidad proyectada del equipo, su velocidad histórica, y los recursos disponibles. Solo el equipo de desarrollo puede evaluar con precisión qué es capaz de lograr, permitiendo decisiones consensuadas sobre qué tareas asumir en el Sprint .
Los Spikes en un proyecto Scrum son tareas utilizadas para investigar o experimentar sin desarrollar directamente una historia de usuario, contribuyendo a la preparación de futuros trabajos complejos. Al integrar Spikes en un Sprint, el equipo puede realizar actividades como capacitación, documentar el proyecto, o evaluar nuevas herramientas necesarias para la entrega de incrementos futuros . Esto permite que el equipo gestione de forma proactiva incertidumbres técnicas o conceptuales, reduciendo así riesgos potenciales y ajustando el backlog para optimizaciones futuras. De este modo, pese a no contribuir directamente al incremento de producto, Spikes aseguran que se confronten y resuelvan interrogantes clave antes de las implementaciones .
El aprendizaje continuo se integra en un proyecto ágil principalmente a través de las Reuniones de Retrospectiva del Sprint, donde el equipo Scrum evalúa qué procedimientos han funcionado bien, cuáles necesitan mejoras, y qué nuevas ideas desean intentar en futuros Sprints . Este proceso permite al equipo no solo mejorar la calidad del producto, sino también optimizar las prácticas de desarrollo y fomentar un ambiente de trabajo más efectivo y colaborativo. La integración del aprendizaje continuo es crucial como fuente de mejora en el desempeño del equipo y en la calidad del producto resultante, ya que asegura que las lecciones aprendidas se implementen inmediatamente, permitiendo al equipo avanzar constantemente en su eficiencia y eficacia .
La priorización de Historias de Usuario en Scrum es esencial para la planificación y ejecución de Sprints, ya que determina qué elementos del Product Backlog serán trabajados durante el Sprint. Dicha priorización es realizada por el Product Owner basado en criterios de valor para el negocio, riesgo, y dependencias . Esto ayuda a alinear el desarrollo con los objetivos estratégicos del proyecto y asegura que el equipo Scrum se enfoque en completar las tareas que más aportan al incremento del producto. La priorización debe realizarse antes de la Reunión de Planificación del Sprint para maximizar la eficiencia y efectividad del proceso .
Un "Contrato por Sprints" en la gestión de proyectos ágiles se caracteriza por su flexibilidad y adaptabilidad. Este tipo de contrato se compone de un componente fijo, generalmente el precio, y un componente variable, como la cantidad de horas o unidades trabajadas, permitiendo ajustes basados en las necesidades y resultados de cada iteración del proyecto . A diferencia de un contrato tradicional, que puede tener plazos y costos fijos para todo el proyecto, el "Contrato por Sprints" se adapta a la naturaleza iterativa de Scrum, permitiendo que el cliente tome decisiones después de cada Sprint, como aceptar el entregable, solicitar modificaciones, o incluso detener el desarrollo . Esto fomenta una mayor colaboración y transparencia entre el equipo y el cliente a lo largo del desarrollo.