Está en la página 1de 57

Curso:

GESTIÓN ÁGIL DE PROYECTOS


Alineado con la certificación PMI-ACP
(Agile Certified Practitioner)
Página 2

Presentación:

En esta Primera Unidad, explicaremos los principales conceptos de


las Metodologías Ágiles, a través de sus prácticas, técnicas y
herramientas más difundidas y aceptadas.
Página 3

Unidad 1:

Introducción
Página 4

Objetivo:

Al terminar la Unidad los participantes:

 Se apropiarán de los principales conceptos, filosofías,


fundamentos, marcos de trabajo y herramientas de las
“metodologías ágiles”.

 Habrán conocido y asimilado los principios Lean.

 Conocerán las principales prácticas de las metodologías


ágiles.
Página 5

Temario:

1. Introducción a Metodologías Ágiles

2. Manifiesto Ágil y sus Principios

3. Introducción a Lean, Scrum, Kanban y XP

4. Radiadores de Información

5. Adopción de Metodologías Ágiles


Página 6

Temario Detallado
0 Introducción .......................................................................................................... 8
0.1 Contexto ......................................................................................................... 8
0.2 Temario .......................................................................................................... 9
1 Introducción a las metodologías ágiles ................................................................ 10
1.1 Gestión de Proyectos .................................................................................... 11
1.2 Definición de enfoque ágil ............................................................................ 11
1.3 La Mentalidad Ágil ........................................................................................ 12
1.4 Enfoque de Gestión de las Metodologías Ágiles ............................................ 12
1.5 ¿Cuándo Si y Cuándo No? ............................................................................. 13
2 Manifiesto Ágil y sus principios............................................................................ 14
2.1 Contexto ....................................................................................................... 15
2.2 Valores.......................................................................................................... 15
2.2.1 Individuos e Interacciones sobre Procesos y Herramientas .................... 15
2.2.2 Producto Funcionando sobre Documentación Extensiva ........................ 16
2.2.3 Colaboración con el Cliente sobre Negociación Contractual ................... 16
2.2.4 Respuesta ante el Cambio sobre Seguir un Plan ..................................... 16
2.3 Principios ...................................................................................................... 17
3 Introducción a Lean, Scrum, Kanban y XP ............................................................ 18
3.1 Lean .............................................................................................................. 19
3.1.1 Conceptos .............................................................................................. 19
3.1.2 Los 7 Principios de Lean ......................................................................... 21
3.1.3 Value Stream Maping ............................................................................ 22
3.2 Scrum ........................................................................................................... 25
3.2.1 Pilares y Valores..................................................................................... 25
3.2.2 Marco de Trabajo Scrum ........................................................................ 26
3.2.3 Sprint ..................................................................................................... 27
3.2.4 Roles ...................................................................................................... 27
3.2.5 Dueño de Producto ................................................................................ 27
3.2.6 Scrum Master ........................................................................................ 27
3.2.7 Equipo ................................................................................................... 28
3.2.8 Artefactos .............................................................................................. 28
Página 7

3.2.9 Ceremonias............................................................................................ 29
3.2.10 Valores Fundacionales de Scrum ............................................................ 30
3.2.11 Conclusiones.......................................................................................... 31
3.3 XP (Extreme Programing) .............................................................................. 32
3.3.1 Introducción .......................................................................................... 32
3.3.2 Valores .................................................................................................. 32
3.3.3 Resumen de las Prácticas de XP ............................................................. 33
3.3.4 Las prácticas de XP ................................................................................. 33
3.3.5 Ejemplo de un Proyecto XP Típico .......................................................... 37
4 Radiadores de Información ................................................................................. 38
4.2 Tablero de Sprint .......................................................................................... 39
4.3 Diagrama de Burndown ................................................................................ 40
4.4 Tablero Kanban ............................................................................................. 42
5 Adopción de metodologías agiles ........................................................................ 48
5.1 Globalización, Cultura y Diversidad de los equipos ........................................ 49
5.2 Modelos de Toma de Decisión Participativos ................................................ 49
5.3 Errores y Aprendizaje .................................................................................... 50
5.3.1 Comportamientos Problemáticos .......................................................... 50
5.3.2 Comportamientos a Adoptar ................................................................. 51
5.3.3 Estrategia a Seguir ................................................................................. 51
5.4 Cambios de Metodología .............................................................................. 52
5.4.1 Anti-patrones de Adopción .................................................................... 52
5.4.2 Criterios de Adopción ............................................................................ 53
5.5 Modelos Híbridos.......................................................................................... 53
5.5.1 Ejemplo de Modelo Híbrido: Scrum con Kanban (Scrumban) ................. 54
5.5.2 Ejemplo de Modelo Híbrido: enfoque predictivo y Scrum ...................... 54
5.6 Nuevas Prácticas Ágiles ................................................................................. 54
6 Referencias ......................................................................................................... 56
Lo que vimos y lo que vendrá ...................................................................................... 57
Página 8

0 INTRODUCCIÓN
La capacidad de management de los individuos y la correcta ejecución de las prácticas
de gestión son un diferencial clave en cualquier organización. Sin embargo, no existe un
modelo único de gestión que asegure el éxito de cualquier proyecto.

En este curso revisaremos los principios y prácticas que son comprendidas en la gestión
ágil de proyectos, teniendo en cuenta también la certificación PMI® Agile Certified
Practitioner (ACP)®.

Antes que todo, veamos los objetivos principales que abordaremos

OBJETIVOS DEL CURSO


Que los participantes:
 Conozcan y estén en condiciones de aplicar las principales prácticas ágiles de
gestión de proyectos.
 Complementen su formación de gestión tradicional con metodologías ágiles.
 Conozcan la certificación propuesta por el PMI® (PMI-ACP®).
 Entiendan las restricciones, los beneficios y los contextos de aplicación de las
metodologías ágiles.

0.1 CONTEXTO
El enfoque ágil tiene su auge en varias metodologías nacidas en los años 90 (Extreme
Programming, Scrum, Lean) y más recientemente (Kanban). Si bien las metodologías
ágiles se basan en varias buenas prácticas anteriores y tienen cada una sus
especificidades, todas se diferencian de la gestión tradicional (predictiva) por considerar
esquemas más adaptativos.

El enfoque ágil incluye un conjunto de valores, principios y buenas prácticas con cada
vez más aceptación, aplicadas en todo tipo de organizaciones y dominios.
Página 9

0.2 TEMARIO
Unidad 01: Introducción
 Introducción a las metodologías ágiles
 El manifiesto ágil y sus principios
 Introducción a Scrum, XP, Kanban y Lean
 Radiadores de Información
 Adopción de metodologías ágiles

Unidad 02: Priorización, Planificación y Adaptación


 Priorización basada en valor
 Estimación ágil
 Planificación, monitoreo y adaptación
 Métricas

Unidad 03: Interacciones y Comunicación


 Gestión de compromisos e involucrados
 Contratos ágiles
 Comunicación ágil
 Consolidación de equipos ágiles
 Coaching ágil

Unidad 04: Calidad y Mejora Continua


 Calidad de producto
 Gestión de impedimentos y gestión de riesgos
 Retrospectivas
 Gestión de mejoras: de la persona, del equipo y de la organización

Unidad 05: Guía para la Certificación PMI-ACP


 La certificación PMI-ACP
 Conceptos generales
 Recomendaciones
 Planificación y otras consideraciones
Página 10

1 INTRODUCCIÓN A LAS METODOLOGÍAS


ÁGILES
Página 11

1.1 GESTIÓN DE PROYECTOS


“Un proyecto es un esfuerzo temporal que se lleva a cabo para crear un producto,
servicio o resultado único.” PMI.

Por “temporal” se refiere a que tiene un principio y un fin. El principio es cuando se


decide satisfacer a una necesidad y se inicia el proyecto. El final es cuando se cumplieron
los objetivos del proyecto, o cuando se cancela.

Otra definición interesante es la siguiente: “Secuencia única, compleja y conectada de


actividades teniendo un objetivo principal que debe ser completado en un tiempo
específico y dentro del presupuesto, y de acuerdo a una especificación” Robert K
Wysocki.

Muchos de los proyectos de desarrollo de software fracasaron, fracasan y fracasarán. En


1994 una investigación de referencia del Standish Group1 llamada Chaos Report
determinó que solo el 16% de los proyectos de TI relevados fueron exitosos (en términos
de alcance, tiempos y costos). Desde entonces a hoy, el Chaos Report presenta año a
año una importante mejora, llegando a un 30% de proyectos exitosos.

Sin embargo, esta proporción sigue resultando alarmante y motiva importantes


esfuerzos en gestión de proyectos con diversas metodologías para intentar lograr
mejorar los resultados esperados de cada proyecto. Uno de los más exitosos en este
contexto es el enfoque ágil.

1.2 DEFINICIÓN DE ENFOQUE ÁGIL


La gestión ágil tiene como meta entregar un producto o un resultado, con el mayor valor
posible para el cliente, en un tiempo dado (time-boxed).

Se emplea para ello un ciclo de desarrollo iterativo e incremental. Iterativo ya que se


sigue una secuencia de etapas cortas que terminan con la entrega de una primera
versión del producto terminada.

Se realizan entregas incrementales para reducir el riesgo y la incertidumbre. Es lo


contrario a terminar el producto y toda la funcionalidad por completo. La idea es
construir pequeñas unidades de funcionalidad y entregarlas para tener una validación
temprana.

Este ciclo se contrapone con el seguimiento de un plan pre-establecido para llegar a un


objetivo conocido, ya que permite ir descubriendo cuales son las funcionalidades que

1
http://www.standishgroup.com/
Página 12

aportan más valor al cliente a medida que se entregan las versiones del producto en
cada iteración. También permite incorporar cambios provenientes del feedback del
cliente sobre el uso real del producto (o servicio).

La gestión ágil es también conocida por otros calificativos, como por ejemplo gestión
liviana o adaptativa.

1.3 LA MENTALIDAD ÁGIL


Si bien las metodologías ágiles introducen actividades, procesos y técnicas, el enfoque
ágil requiere de un cambio de paradigma para adoptar esta nueva mentalidad ágil
además de seguir un mero proceso.

A modo de introducción a la mentalidad ágil, enumeramos algunas de las


recomendaciones más comunes al respecto:

- Enfocar el esfuerzo en la creación de valor.


- Sumar al cliente como parte del proceso.
- Aceptar la incertidumbre a través de iteraciones y adaptación.
- Maximizar la creatividad y la innovación invirtiendo en las personas y sus
interacciones.

Esta mentalidad ágil se refleja en el manifiesto ágil, los principios Lean, los valores de
XP, y los pilares de Scrum, entre otros.

Para que sea exitoso el uso de las prácticas ágiles, es vital entender para qué se hace
cada práctica, sin esto es como solo tener la costra del tronco de un árbol, sin tener el
interior… Es probable que no se pueda usar con éxito en forma sostenible.

1.4 ENFOQUE DE GESTIÓN DE LAS METODOLOGÍAS ÁGILES


El enfoque de gestión ágil revisa fuertemente las premisas del enfoque predictivo,
adoptando otras premisas:

1. Los requerimientos de un producto o servicio cambian con el tiempo.

Durante la ejecución del proyecto pueden surgir cambios regulatorios, cambios en la


organización, la operatoria o el negocio. También suele ocurrir que a medida que se
desarrolla el producto se va entendiendo mejor la problemática y las necesidades de los
usuarios. Adicionalmente es común que durante el transcurso del proyecto los
interesados definan requerimientos que no habían sido identificadas en un principio.
Página 13

2. El objetivo de un proyecto debe ser el valor del producto para el negocio o sus
interesados más que el cumplimiento del plan.

En algunos casos puede ser más importante para el negocio que el producto se adapte
a un cambio reciente, o que contemple funcionalidades surgidas luego del inicio, antes
que terminar en fecha y/o con el presupuesto acordado.

3. No se construye el mejor producto en un solo intento.

En este sentido es fundamental que el equipo de trabajo tome el proyecto como un


camino de aprendizaje, donde es necesario poder tener feedback frecuente del usuario
para ir descubriendo con él cuál es la mejor forma de solucionar su problemática.

1.5 ¿CUÁNDO SI Y CUÁNDO NO?


Para describir los contextos en los cuales el enfoque ágil es más fuertemente
recomendado, se diferencian en el siguiente gráfico los tipos de proyectos
caracterizados según 2 ejes:
 Qué tanto acuerdo existe respecto a cuáles son los requerimientos a resolver
 Qué tanto dominio o certeza se tiene sobre a la tecnología a utilizar

Alto Baja Complejidad Simple


Requerimientos Medio Complejo Baja Complejidad
Nivel de acuerdo Bajo Anarquia/ Caos
Bajo Medio Alto
Tecnologia
Nivel de Certeza

El enfoque ágil suele tener los mejores resultados en los proyectos clasificados como
Complejos (el área naranja en el gráfico). Se puede también aplicar en proyectos de Baja
Complejidad o Simples (área verde), pero en esos casos dado el bajo nivel de riesgo e
incertidumbre, el enfoque tradicional de gestión también suele resultar efectivo. En
proyectos donde no hay acuerdos fijados y se desconoce la tecnología (área roja), no
hay tampoco una fuerte recomendación para aplicar el enfoque ágil.
Página 14

2 MANIFIESTO ÁGIL Y SUS PRINCIPIOS


Página 15

2.1 CONTEXTO
Hacia fines de los años 90, los principales impulsores de esta nueva corriente
(provenientes del mundo del desarrollo del software) idearon un encuentro para
explorar juntos las similitudes en sus distintos trabajos e identificar qué valores comunes
que querían promulgar.

Este encuentro se celebró el 12 de febrero del 2001, en Snowbird, Utah, EEUU. Allí se
juntaron 17 personas, y decidieron denominar ágil a sus propuestas, para asociarles una
noción de resultados tempranos y liviandad. En ese encuentro redactaron y firmaron el
conocido Manifiesto Ágil2, que es una declaración de valores y llamados a la acción para
el desarrollo de software.

Desde entonces, el Manifiesto Ágil ha sido adoptado y firmado por miles de


profesionales de la industria del software.

2.2 VALORES
En el Manifiesto Ágil se presentan los 4 pilares fundamentales del agilisimo, como un
conjunto de aspectos a valorar por sobre otros:

2.2.1 Individuos e Interacciones sobre Procesos y Herramientas

No se niega la necesidad de procesos y herramientas: los procesos ayudan al trabajo,


sirven de guía de operación. Y seguramente las herramientas mejoran la eficiencia y
soportan a los procesos. Los procesos y las herramientas deben ser una ayuda para guiar
el trabajo. Deben adaptarse a la organización, a los equipos y a las personas; y no al
revés. Sin personas con el conocimiento y una actitud adecuada, los procesos y las
herramientas no generan resultados.

En general la mayoría de las tareas técnicas de trabajo deben gran parte de su valor al
conocimiento y al talento de las personas que las realizan. Considerar que sólo con
procesos se pueden conseguir resultados extraordinarios sin importar las personas que
los lleven a cabo, puede llevar a problemas importantes cuando se necesita de la
creatividad constante, como ocurre en el desarrollo de software.

2
Manifiesto Ágil: http://agilemanifesto.org/ - Traducción: http://agilemanifesto.org/iso/es/
Página 16

2.2.2 Producto Funcionando sobre Documentación Extensiva

Este valor del Manifiesto Ágil resalta la importancia de la entrega de valor para el
negocio. Muchas veces la documentación que se elaborar como parte del trabajo en
los proyectos no aporta un valor directo al negocio. El valor para el negocio se habilita
concretamente cuando se entrega un producto funcionando en un ambiente
operativo.

Es probable que se requiera generar algún tipo de documentación para lograr ese
objetivo, pero se reconoce la entrega de un producto funcionando como medida real
de avance de un proyecto. Por esta razón es fundamental mantenerlo como foco
permanente dentro del equipo de proyecto.

Adicionalmente, contar con (una porción de) software funcionando habilita a obtener
de parte de los usuarios un feedback mucho más concreto y válido, que si tuvieran que
leer alguna documentación sobre ese mismo producto (ejemplo: un documento de
especificación de requerimientos).

2.2.3 Colaboración con el Cliente sobre Negociación Contractual

Las prácticas ágiles cobran particular relevancia para el desarrollo de productos difíciles
de definir con detalle desde el inicio, o cuando los requisitos son muy volátiles, por
ejemplo debido a cambios en el negocio. En tales casos suelen fracasar los esquemas de
trabajo basados en modelos contractuales cerrados, con procedimientos de gestión de
cambios muy estrictos, que en general terminan en identificar si la “culpa” de los
retrasos la tiene el proveedor o el cliente.

En el desarrollo ágil, se busca sumar al cliente como un miembro más del equipo, que
se integra y colabora diariamente en el grupo de trabajo. Se trabaja en general con un
marco contractual de alto nivel sobre el cual se construye una relación de confianza
basada en los resultados logrados.

2.2.4 Respuesta ante el Cambio sobre Seguir un Plan

En entornos inestables, donde el cambio es continuo e imprevisible (como una gran


parte de los entornos para los que desarrollamos software), se requiere una capacidad
para la evolución rápida y continua. El seguimiento y aseguramiento de planes pre-
establecidos en muchos casos no permite enfrentar este desafío con éxito, y la gestión
de proyectos más predictiva y tradicional a través de planificación y control para evitar
desviaciones sobre el plan suele fracasar. La gestión ágil se enfoca en la anticipación y la
adaptación a través de mecanismos de feedback constantes, de incorporación del
cambio y de re-planificación continua.
Página 17

2.3 PRINCIPIOS
Tras los cuatro valores descritos previamente, el Manifiesto Ágil presenta los siguientes
principios del agilísimo:

1. Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y


continua de valor.

2. Aceptamos que los requisitos cambien, incluso en etapas tardías del proyecto.
Los procesos ágiles aprovechan el cambio para proporcionar ventaja competitiva
al cliente.

3. Entregamos un producto funcionando frecuentemente, entre dos semanas y un


mes, con preferencia al periodo de tiempo más corto posible.

4. Los responsables de negocio y el equipo de proyecto trabajamos juntos de forma


cotidiana durante todo el proyecto.

5. Los proyectos se realizan entorno a individuos motivados. Hay que darles el


entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.

6. El método más eficiente y efectivo de comunicar información al equipo de


proyecto y entre sus miembros es la conversación cara a cara.

7. El producto funcionando es la medida principal de progreso.

8. Los procesos ágiles promueven el desarrollo sostenible. Los sponsors, equipo del
proyecto e interesados debemos ser capaces de mantener un ritmo constante
de forma indefinida.

9. La atención continua a la excelencia técnica y al buen diseño mejora la agilidad.

10. La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es


esencial.

11. Las mejores ideas, requisitos y diseños emergen de equipos auto-organizados.

12. A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a
continuación ajustar y perfeccionar su comportamiento en consecuencia.
Página 18

3 INTRODUCCIÓN A LEAN, SCRUM, KANBAN Y


XP
Página 19

3.1 LEAN
Lean o Lean Manufacturing (manufactura esbelta) fue generado por Toyota para la
construcción de automóviles. Lean es una metodología que consta de una serie de
principios que puede aplicarse en varios ámbitos y en múltiples niveles de las
organizaciones: no solo para proyectos, sino también para contabilidad, ventas,
administración gerencial, logística, etc.

3.1.1 Conceptos

 Búsqueda de calidad

Lean busca enaltecer la calidad, reduciendo los defectos en su origen, atacando los
problemas de una manera permanente. Se opone a buscar soluciones provisorias o
work-around temporales, que solo ocasionan un alivio temporal.

Cuando no se tratan las causas originarias del problema o aun peor cuando se las
desconoce, se deja lugar a eventuales problemas mayores a futuro.

Por ejemplo, en un proyecto donde hay un retraso, se puede optar sistemáticamente


por pedir al personal que realice horas extras para compensarlo. Pero si no sabe cuál fue
la causa del retraso, potencialmente se repita el problema y se requiera horas extras
durante mucho tiempo.

 Valor para el negocio

Lean se basa en la generación de valor para el negocio. Existen tareas que se realizan
que aparentemente son de valor, pero no de valor para el negocio. Probablemente
generan un valor intermedio, pero que no llega a impactar en el valor final.

Por ejemplo, en la manufactura la generación de más de 4 puertas por auto para un auto
de cuatro puertas no genera un valor extra, sino que genera stock y por consiguiente
costo de almacenamiento.

En la elaboración de un software se puede desarrollar funciones que reduzcan el tiempo


de operatoria más de lo perceptible por el usuario, o incluso se puede realizar
funcionalidades deseables, pero realmente no necesarias.

También se pueden automatizar procesos manuales muy pocos frecuentes o


cambiantes, los cuales conllevan un mayor costo en su desarrollo, que la sumatoria del
costo de toda la vida útil de la aplicación del proceso manual.
Página 20

 Mejora continua

Lean toma la calidad como una meta móvil, ya que se sube el nivel a medida que se vaya
alcanzando. En consecuencia, la organización debe estar mejorando continuamente.

Se genera entonces el foco en reducir los costos, aumentar la productividad,


incrementar la satisfacción del usuario y mejorar las ventas, entre otros puntos.

Un buen ejemplo de mejora continua es Apple, qué persigue sin parar la simplificación
del uso de sus funcionalidades.

 Optimización de la cadena de valor

Lean prioriza la cadena de valor en orden inverso al de la cadena de construcción.

Para simplificar, la generación de un producto suele empezar por proveer las materias
primas, contratar el personal, conseguir la maquinaria, producir el producto final y
venderlo en el mercado (sistema Push).

Lean plantea no optimizar el proceso en este orden sino al revés. Se toma en cuenta
primero la solicitud del cliente, para mirar que se requiere generar en la etapa anterior,
y así sucesivamente con cada etapa (sistema Pull).

Por ejemplo, en el desarrollo de sistemas, se puede desarrollar funcionalidades en base


a demandas puntuales del momento, en vez de generar un amplio set de
funcionalidades, anticipando necesidades futuras que quizás nunca se concreten.

 Retrasar decisiones

Para lograr flexibilidad, se debe realizar lo necesario para poder adaptarnos a un futuro,
pero sin adelantarnos a hacer suposiciones y desarrollos, los cuales podrían realizarse
más adelante.

Por consiguiente, se basa en posponer la decisión hasta el último momento responsable,


para evitar tomar decisiones tempranas que pueden cambiar varias veces antes de
aplicarse debido al desconocimiento de situaciones futuras.

Por ejemplo, cuando se realiza una planificación muy detallada a largo plazo en un
proyecto de alta incertidumbre, difícilmente se puede evitar caer en múltiples re-
planificaciones, debido al alto nivel de detalle de esta y a la dificultad de poder saber
con certeza como se desarrollará el proyecto. Se podría evitar postergando la
planificación a detalle hasta que el nivel de incertidumbre haya disminuido.
Página 21

 Todos participan de la mejora

La optimización de los procesos en Lean no es una tarea exclusiva de la gerencia. AL


contrario, todos deben tener una participación activa en mejorar la cadena de valor para
el negocio y entender cuál es el aporte que realizan.

En consecuencia, es necesario fomentar el respeto por cada empleado de la


organización y darle un espacio para la participación en este ciclo de mejora continua.
En muchas organizaciones se intenta tibiamente fomentar este principio, solo con
comentar vía email o algún otro medio que la gerencia apoya este tipo de participación.
Esto no es suficiente sin un espacio claro de participación, en el cual los problemas y las
propuestas de los empleados sean escuchados y atendidos.

También es fundamental contemplar la liberación de tiempo para que el empleado


pueda tratar estos temas, y establecer beneficios asociados a la mejora continua para el
empleado.

3.1.2 Los 7 Principios de Lean

Los siete principios Lean contemplados para el desarrollo de software se pueden resumir
de la siguiente forma:

1. Eliminar Desperdicios: Quitar todo lo que no añade valor: retrasos, burocracia,


funcionalidad innecesaria, entregables que no se consumen, comunicación
innecesaria.

2. Potenciar el equipo: evitar el micro-management, valorar el conocimiento


especializado del equipo y fomentar que tomen sus propias decisiones.

3. Entrega rápida: maximizar el retorno de inversión del proyecto (ROI), haciendo


entregas rápidas e iterativas que agreguen valor y permita obtener un
aprendizaje de estas.

4. Optimizar el todo: ver el sistema como más que la suma de sus partes. Ver como
se alinea con la organización y mejorar la interrelación entre los equipos.

5. Construir con Calidad: incluir calidad en cada parte del proceso y no solo medir
al final con un test. Asegurar la calidad en forma continua en el proyecto.

6. No adelantar decisiones: no tomar todas las decisiones de entrada o planear


todo al inicio. Retrasar las decisiones tanto como sea posible para evitar re-
trabajos al tomarlas por adelantado.
Página 22

7. Amplificar conocimientos: facilitar la comunicación temprana, frecuente y el


feedback tanto como se pueda.

*Libro sugerido: Lean – Agile Software development, Achiving Enterprise Agility, de Alan
Shalloway, Guy Beaver y James R. Trott.

3.1.3 Value Stream Maping

El Value Stream Maping (Mapa de Flujo de Valor) es una técnica de Lean que es
comúnmente utilizada en las organizaciones ágiles. Está orientada a sostener el principio
de optimizar todo el proceso para generar mayor valor al negocio.

Básicamente consta de dibujar todo el proceso de negocio de principio a fin y visualizar


su el flujo de información, las colas, los tiempos de cada proceso y los tiempos de espera.
Facilita la detección de desperdicios en flujo y permite la mejora de su eficiencia.

En el siguiente gráfico, se muestra un Value Stream Map, desde una etapa temprana
de recepción de mercadería de un proveedor hasta la entrega de un producto a un
cliente:
Página 23

La técnica consta de los siguientes pasos:

1. Identificar el producto o servicio a analizar.

2. Dibujar todos los pasos del proceso, con sus duraciones y sus flujos de
información. Esto es el Mapa de Flujo de Valor actual.

3. Revisar la gráfica, el mapa, para detectar retrasos, desperdicios y restricciones.

4. Dibujar el mapa de valor deseado para futuro, reduciendo los retrasos,


desperdicios y restricciones.

5. Desarrollar un plan de acción para llegar al mapa futuro.

6. Realizar periódicamente una revisión del proceso para ajustarlo y optimizarlo.

Ejemplo de Análisis de Mapa de Flujo de Valor:

Para construir el ejemplo anterior se relevó el proceso de implementación de mejoras


desde la petición de la misma hasta la implementación.

Los pasos para la construcción de este Mapa de Flujo de Valor son los siguientes

1. El producto a analizar se identificó: “Mejora Aplicativa” (mejora de un sistema,


una aplicación de software, por ejemplo).

2. Se determinó cada uno de los procesos del flujo, y sus tiempos promedios.
También se detectaron las colas existentes en el flujo: hay una antes de
ingresar las solicitudes al proceso de desarrollo, donde quedan encoladas
esperando respuesta por 3 días. Cuando ya están desarrolladas es difícil
Página 24

contactar con el usuario para que valide la mejora. Por esta razón se tarda
aproximadamente 5 días. Las implementaciones se realizan siempre a final de
día.

3. Revisando el flujo se encontraron desperdicios en la espera para ser


desarrollada la mejora y en el tiempo de espera de ser validada por el usuario.
El tiempo de espera de 1 día para ser implementada es una restricción del
sistema que no puede ser quitada. En cambio, el tiempo que tarda el
desarrollador en tomar un tema puede ser reducido logrando que el
desarrollador no este asignado a la resolución de incidentes y con esto
reduciendo el tiempo de switch entre mejoras e incidentes. También se puede
reducir el tiempo de validación debido a lo difícil que es contactar al usuario
poniendo un tiempo fijo de 10 minutos todos los días donde el usuario se
encarga de validar.

4. Se generó el mapa de flujo de valor deseado

5. Se desarrolló un cronograma, plan, para hacer efectivo que las decisiones del
punto 4. Se planificó la capacitación de un grupo de desarrolladores
exclusivamente para incidentes y otro para mejoras aplicativas.

6. Se planificó para dentro de 3 meses una nueva evaluación del flujo.

En este ejemplo se ve en forma aplicada como se utiliza el Value Stream Mapping y se


logra un aumento de la eficiencia del 15%, generando en esto una mejor repuesta para
el negocio en la implementación de mejoras aplicativas.

*Libro sugerido: Lean-Agile Software Development: Achieving Enterprise Agility – Alan


Shallaway, Guy Beaver, James r. Trott
Página 25

3.2 SCRUM
Es el marco de trabajo más popular y utilizado en ágiles… no siempre tan bien utilizado,
no siempre logrando agilidad.

Este marco de trabajo a nuestro criterio logró gran popularidad por cubrir con las
siguientes necesidades:

1. Definir como registrar la idea que se tiene del producto a desarrollar (Backlog de
Producto)
2. Cumplir con el principio de iteraciones pequeñas de valor del manifiesto ágil
(Sprints)
3. Cubrir la necesidad de mejora continua (Retrospectivas)
4. Tratar la necesidad de adaptación diaria del equipo (Daily Meeting)
5. Ser más específico y simple qué otros marcos de trabajo. (Artefactos,
Eventos/Ceremonias, Roles, Iteraciones)
6. Definir roles haciendo un gran cambio en la forma de trabajo anterior y con esto
obligar una gran transformación. (Nuevos: Scrum Master y Product Owner
Modificado: Desarrollador tiene más responsabilidad)
7. Cubre la necesidad de indicar cómo trabajar en equipos pequeños de desarrollo
con reglas simples. (Pero que son desafiantes llevarlas a la práctica)
8. Su foco son equipos que quieren trabajar en ágiles por 1ª vez.
9. No ser pensado solo para software y con esto poder aplicar para otras industrias.
10. Y por supuesto, bien utilizado logra más valor que su antecesor (Gestión de
Proyectos Predictiva) en entornos complejos.

3.2.1 Pilares y Valores

Se basa en 3 Pilares

1. Transparencia: todo el trabajo que se realiza y los objetivos están visibles para
todos los participantes con el fin de que puedan tener una visión completa y esto
facilitar su forma de trabajo.
2. Inspección: mirar para atrás, tomar y analizar los datos con el fin de entender
cuáles son las fortalezas y las oportunidades de mejora.
3. Adaptación: ir mejorando y mejorando de acuerdo con las necesidades y
oportunidades emergentes, tomando en cuenta cada una de las experiencias
vividas, en periodos cortos.

Los 5 valores de Scrum que hace que de valor:

1. Foco: Si hubiera que resumir Scrum en una sola palabra sería foco. Foco en
clarificar el producto backlog, foco definir el objetivo de la iteración, foco en
Página 26

planificar una iteración, foco en sincronizarse diariamente, poco en obtener


feedback del producto desarrollado, y foco en mejorar continuamente.
2. Coraje: En tomar responsabilidades, y desafiarse a mejorar continuamente.
3. Apertura: en qué todos pueden expresar su opinión con el fin de mejorar y ser
más creativos.
4. Compromiso: de todos, de lograr el objetivo de cada sprint, y el éxito.
5. Respeto: Entender que todos somos limitados y merecedores de buen trato.

3.2.2 Marco de Trabajo Scrum

Cuando Jeff Sutherland creó el proceso de Scrum en el 1993, utilizó el término “scrum”
de una analogía presentada en un estudio de 1986, por Takeuchi y Nonaka3. En este
estudio se comparan equipos de alto rendimiento y multidisciplinario a la formación del
“scrum” de los equipos de rugby.

A continuación, se presenta un diagrama y una explicación del ciclo de Scrum:

Producto

 El Dueño del Producto crea una lista priorizada de requisitos llamada Backlog de
Producto.
 Durante la Planificación (2-4hs), el Equipo selecciona una pequeña porción de
esta lista, un Backlog de Sprint, y decide cómo implementar estos requisitos.

3
Hirotaka Takeuchi e Ikujiro Nonaka (1986) - New New Product Development Game - Harvard Business
Review
Página 27

 El equipo tiene un tiempo limitado, un Sprint (1 a 4 semanas), para terminar su


trabajo, pero se reúne cada día para constatar su progreso en la Reunión Diaria
(15 minutos).
 En este camino, el Scrum Master mantiene el equipo enfocado hacía su objetivo.
 Al final del sprint, el trabajo debería ser Potencialmente Entregable, o sea estar
listo para enviar a un cliente, empaquetar para su distribución o presentar a un
sponsor.
 El sprint termina con una Revisión de Sprint y una Retrospectiva.
 Cuando se inicia el próximo sprint, el equipo selecciona otra pequeña porción
del backlog de producto y empieza a trabajar de nuevo.

Este ciclo se repite hasta que el backlog de producto se haya completado, que el
presupuesto se haya gastado o que un hito definitivo haya llegado, según la
especificidad de cada proyecto.

3.2.3 Sprint

Sprint es el nombre de la iteración en Scrum. Se acuerda una duración fija para todos
los sprints, en general entre una y cuatro semanas. Los sprints se ejecutan uno tras el
otro respetando está duración, sin tiempo muerto entre el sprint que termina y el sprint
que empieza. El objetivo del sprint es de transformar un conjunto acordado de ítems del
Backlog de Producto en un Incremento de Funcionalidad de Producto Potencialmente
Entregable.

3.2.4 Roles
Scrum formaliza tres roles: el Dueño de Producto, el Scrum Master y el Equipo.

3.2.5 Dueño de Producto

Es la voz del cliente, el que establece una visión sólida del producto a desarrollar y
prioriza continuamente los requisitos para alcanzar dicha visión.

Sus principales responsabilidades:


• Canalizar las necesidades del negocio
• Maximizar el valor para el negocio
• Inspeccionar y adaptar el producto

3.2.6 Scrum Master


Página 28

El Scrum Master es un líder servicial para el equipo, pero también un facilitador y agente
de cambio para la aplicación adecuada de Scrum en el equipo y la organización.

Sus principales responsabilidades:


• Asegurar la correcta aplicación de Scrum.
• Eliminar los impedimentos que frenan el trabajo del equipo.

3.2.7 Equipo

El equipo es un grupo auto-organizado, multidisciplinario y con autonomía, que


desarrolla el producto. Su única responsabilidad es de transformar el Backlog de
Producto en incrementos de funcionalidad potencialmente entregable en cada sprint.
Se caracteriza también el equipo por su auto-gestión.

3.2.8 Artefactos
Scrum identifica tres artefactos o productos de trabajo: el Backlog de Producto, el
Backlog de Sprint, y el Incremento de Funcionalidad Potencialmente Entregable.

3.2.8.1 Backlog de Producto

El Backlog de Producto es una lista única, pública y dinámica que recopila una secuencia
priorizada de requerimientos para el producto. Algunos de estos requerimientos tienen
una estimación de alto nivel de esfuerzo o complejidad. Se suele decir que el Backlog de
Producto representa el “Qué” esperado del producto, sin preocuparse por el “Cómo”.

3.2.8.2 Backlog de Sprint

El Backlog de Sprint es un conjunto reducido negociado de ítems del Backlog de


Producto que el equipo se compromete a completar durante el tiempo alocado al Sprint.
Cada ítem incluido en el sprint es dividido en tareas detalladas que el equipo va a
completar, con una estimación de duración que no supere un día de esfuerzo. El Backlog
de Sprint es actualizado diariamente por el equipo, y muestra en cada momento las
tareas pendientes, en curso y terminadas para completar los ítems del sprint, así como
una estimación del esfuerzo pendiente de cada tarea no terminada y a quién está
asignada la tarea. Se suele utilizar un Tablero de Sprint como forma de visualizar el
Backlog de Sprint, o algún otro soporte herramental que permite darle visibilidad.
Página 29

3.2.8.3 Incremento de Funcionalidad Potencialmente Entregable

Al final de cada sprint el equipo debería entregar un incremento de funcionalidades del


producto con una calidad productiva. El incremento del producto debe funcionar y si
quedan tareas pendientes para su entrega, deberían requerir un esfuerzo mínimo.

3.2.9 Ceremonias

Scrum identifica cuatro ceremonias o prácticas a ejecutar en cada sprint: la Planificación,


la Reunión Diaria, la Revisión y la Retrospectiva.

3.2.9.1 Planificación

Objetivos:
 Entender y determinar el trabajo que el Equipo se compromete a terminar en el
Sprint.
 Definir cómo se va a realizar este trabajo.

3.2.9.2 Reunión Diaria

Objetivos:
 Compartir en el equipo el avance del trabajo comprometido para el Sprint.
 Coordinar las actividades del equipo para terminar el trabajo comprometido
para el Sprint.

3.2.9.3 Revisión

Objetivos:
 Demostrar concretamente y claramente el progreso del equipo.
 Recibir retroalimentación (feedback) periódica de los usuarios/clientes sobre los
productos/resultados generados.

3.2.9.4 Retrospectiva

Objetivos:

 Escuchar distintos puntos de vista dentro del equipo sobre lo ocurrido en el


Sprint.
 Identificar colaborativamente las causas de los principales problemas del equipo
durante el Sprint.
 Idear, consensuar y seleccionar acciones de mejora concretas que pueda
ejecutar el equipo en el próximo Sprint.
Página 30

3.2.10 Valores Fundacionales de Scrum

En las secciones anteriores se ha presentado el marco de trabajo de Scrum, con sus


distintos roles, artefactos y ceremonias.

Es importante destacar unos mecanismos subyacentes de Scrum que se encuentran en


la mayoría de sus roles, artefactos y ceremonias y que potencian fuertemente esta
metodología:

3.2.10.1 Time-Boxing

El Time-Boxing (limitación de la duración) es muy presente en Scrum. Primero el sprint


tiene una duración fija pre-establecida a respetar, y esta duración es la que da el ritmo
al equipo. Con el paso de los sprints el equipo empieza a conocerse mejor y a saber
exactamente lo que pueden comprometer y entregar en un sprint.

Por otro lado, las ceremonias del Sprint son también limitadas en el tiempo, como clara
definición de cuánto tiempo se quiere invertir en actividades de gestión en cada sprint,
aunque el resultado sea imperfecto y mejorable. Es típico que para un sprint de 2
semanas se haga una Planificación de 2h, unas Reuniones Diarias de 15 minutos, una
Revisión de 1-2h y una Retrospectiva de 1h30.

El time-boxing es un mecanismo que permite a su vez garantizar el foco en lo importante


y la orientación al resultado concreto.

3.2.10.2 Empirismo y Auto-Organización

En ambientes cambiantes con proyectos inestables y a veces caóticos, las metodologías


ágiles se basan en el empirismo y la auto-gestión de un equipo para encontrar y madurar
la mejor forma de trabajar e interactuar para resolver una problemática. El mecanismo
de prueba y error es entonces la base del ciclo de vida iterativo, permitiendo probar en
cada iteración si es necesario nuevas formas de trabajar e interactuar para ir refinando
un proceso de trabajo en equipo de a poco.

Scrum se basa en la auto-gestión eliminando roles de liderazgo enfocados a la asignación


y el control del equipo, simplemente porque se demuestra que las personas mejor
calificada para estimar, comprometer, definir tareas son las que las ejecutan. Es una
forma de reforzar el compromiso de los equipos y hacerlos crecer como tal.
Página 31

3.2.10.3 Mejora Continua y Retrospección

Scrum plantea varios mecanismos para recolectar feedback (a través de Revisión y


Retrospectivas), tanto sobre los productos construidos como sobre el proceso de trabajo
y sus interacciones. De esta forma, a través de un ciclo iterativo e incremental se puede
aplicar acciones concretas de mejoras al proceso y al producto.

La retrospección es el mecanismo fundamental de aprendizaje en Scrum, y se concreta


principalmente con la ceremonia de Retrospectiva. Es la ceremonia que permite
identificar acciones de mejoras, probarlas en la iteración siguiente y luego definir si
fueron exitosas o si se necesita buscar otras soluciones. Es también el mecanismo que
permite a un equipo (mientras esté abierto a la auto-crítica constructiva y tenga cierto
interés en la mejora) crecer y de poco transformarse en híper-productivo.

3.2.11 Conclusiones

Si bien Scrum fue diseñado en el contexto de proyectos de desarrollo de software, sus


prácticas son fácilmente extrapolables a otros contextos, principalmente por referirse a
la gestión de proyectos sin hacer un foco importante en prácticas más técnicas del
desarrollo. Se ha aplicado en otros tipos de proyectos como por ejemplo Mantenimiento
de Aplicación, Soporte de TI, Testing Funcional, Mejora de Procesos de TI, y también
fuera del ambiente de TI, como por ejemplo en empresas del dominio artístico o médico,
ONGs, etc.
Página 32

3.3 XP (EXTREME PROGRAMING)


En esta parte vamos a presentar la metodología ágil Extreme Programming
(Programación Extrema o XP), que aporta un enfoque más técnico en el desarrollo de
software.

3.3.1 Introducción

Extreme Programming (o XP) define un conjunto de valores, principios y prácticas para


el desarrollo rápido de software de alta calidad. XP busca maximizar el valor creado al
cliente en un plazo lo más corto posible.

El primer proyecto XP fue iniciado en 1996, y luego XP demostró ser exitoso en múltiples
organizaciones de distintos tamaños y distintas industrias en el mundo entero. Los
fundadores de XP son Kent Beck, Ward Cunningham y Ron Jeffries.

XP enfatiza también el trabajo colaborativo, permitiendo al equipo su auto-organización


para resolver de la mejora forma los problemas que ocurren.

3.3.2 Valores

XP está diseñado sobre la base de los siguientes valores fundacionales:

 Comunicación: Todos los involucrados son parte del equipo y se comunican cara a
cara diariamente. Se trabaja en conjunto en todo, desde los requerimientos hasta el
código. Se crea la mejor solución posible a los problemas en conjunto.

 Simplicidad: Se hace lo necesario y lo pedido, pero nada más. Esto permite


maximizar el valor creado para la inversión realizada hasta el momento. Se busca
hacer pequeños pasos simples hacía el objetivo final y mitigar las fallas a medida que
ocurren. Se produce un resultado que genera el orgullo del equipo y que se puede
mantener a largo plazo con costos aceptables.

 Feedback: El equipo busca y consigue feedback de su producción testeando su


software desde el primer día. El equipo entrega el software al cliente lo antes posible
e implementa los cambios sugeridos.

 Respeto: Cada uno da y siente el respeto merecido por su aporte de valor como
miembro del equipo. Los desarrolladores respetan la idoneidad del cliente y
recíprocamente.
Página 33

 Coraje: El equipo dice la verdad sobre el avance y las estimaciones del proyecto. No
se documentan excusas sobre las fallas porque se planifica el éxito. No hay miedos
porque se trabaja en conjunto. El equipo se adapta a los cambios de requerimientos
y de tecnologías cuando ocurren.

3.3.3 Resumen de las Prácticas de XP

Las prácticas propuestas por XP son pocas y son simples de entender. Sin embargo, estas
doce prácticas tienen un muy fuerte acoplamiento entre sí y logran el mayor efecto
cuando son aplicadas en conjunto y no en forma aislada.

En el siguiente diagrama se pueden ver las prácticas de XP y las principales relaciones


que tienen entre sí:

3.3.4 Las prácticas de XP

1. On-site Customer (Cliente In-Situ)


Se necesita disponibilidad del cliente, no solo para ayudar el equipo de proyecto, sino
también como parte del equipo.
Todas las fases de un proyecto XP requieren comunicación e interacción con el cliente,
y preferentemente cara a cara en el mismo sitio.

2. 40 Hour Week (Semana de 40 Horas)


Página 34

Evitar un equipo agotado y menos productivo, lo cual genera una fuerte baja en la
calidad del software producido, ya sea en el corto, mediano o largo plazo.

Horas extras y esfuerzos heroicos son señales de problemas mayores, como por ejemplo
compromisos por encima de las posibilidades, estimaciones pobres, falta de recursos, y
otros. Varias organizaciones aceptan convivir con este problema continuamente.

El equipo es dueño de sus propias estimaciones, suele tener más confianza para
terminar el trabajo en el tiempo comprometido.

3. Metaphor (Metáfora)
El objetivo de una metáfora es de crear un puente de entendimiento: una persona que
trata de explicar un concepto a otra intenta encontrar una referencia común a los dos
que permita representar el concepto en una forma entendible por ambos. Luego es
posible explicar el concepto usando esta referencia común como marco.

En XP se busca identificar una metáfora (o varias) que permita al equipo sintetizar el


diseño esencial del software en un concepto que entiendan todos. Es una herramienta
que permite eliminar los problemas de comunicación que suelen aparecer por las
diferencias de perspectivas o de background de cada uno.

4. Simple Design (Diseño Simple)


Con esta práctica, XP propone utilizar el diseño lo más simple posible que permita
cumplir con la necesidad.
Es probable que los requerimientos cambien en el futuro, con lo cual se propone hacer
únicamente lo necesario para cumplir con los requerimientos actuales, sin anticiparse a
los posibles requerimientos futuros. De esta forma el equipo se puede enfocar en
proveer valor para el negocio.

Esta práctica también se conoce como KISS, Keep It Simple Silly, y es una de las más
antiguas del desarrollo de software.

5. Refactoring
Martin Fowler define el refactoring como “el proceso de cambiar un software de tal
forma que no afecte el comportamiento externo del código pero que si permita mejorar
su estructura interna.”.

6. Pair Programming (Programación de a Pares)


El objetivo es que todo el código fuente productivo haya sido escrito por dos
desarrolladores sentados en la misma computadora. La programación de a pares
permite que todo el código sea revisado a medida que se vaya escribiendo.
Página 35

Eso significa que todo el código es producido por parejas de personas que programan
una tarea en conjunto en una sola computadora. Uno de los desarrolladores tiene el
control sobre la computadora y piensa principalmente en los detalles de la codificación.
El otro desarrollador se enfoca en un nivel más abstracto y revisa continuamente el
código que escribe el primer desarrollador. Los desarrolladores intercambian roles
periódicamente.

7. Short Releases (Entregas Cortas)


El objetivo de esta práctica es poder hacer entregas tempranas y frecuentes, agregando
unas pocas funcionalidades cada vez. La práctica apunta a un ciclo de vida iterativo corto
e incremental. Esto hace foco en lograr un feedback temprano.

8. Testing (Pruebas)
XP define dos tipos de pruebas: las Pruebas de Unidad (o Pruebas Unitarias) y las
Pruebas de Aceptación.

 Pruebas de Unidad (Unit Tests)


Las pruebas de unidad permiten testear la funcionalidad de pequeñas porciones de
código (por ejemplo, una clase o un método). Con XP, se usa un enfoque de TDD (Test
Driven Development = Desarrollo Dirigido por las Pruebas), donde las pruebas unitarias
son diseñadas y codificadas en un framework especifico4 antes de escribir el código
correspondiente. Este mecanismo permite motivar al desarrollador en pensar primero
en las condiciones en las cuales su futuro código podría fallar. También permite pensar
primero en la definición de la interfaz del código y del objetivo del código a construir
antes de pensar en su implementación detallada.

 Pruebas de Aceptación
XP indica que unas pruebas de aceptación deben ser definidas por el cliente para
asegurar que la aplicación funciona correctamente. En general las pruebas de
aceptación son pruebas de alto nivel de la aplicación, más orientadas a la operación real
del negocio. Una funcionalidad es considerada terminada cuando todos los tests de
aceptación correspondientes fueron ejecutados con éxito.

9. Coding Standards (Estándares de Código)


XP recomienda que cada miembro del equipo codifique con los mismos estándares.
Idealmente, no se debería poder identificar quien del equipo ha escrito una porción
específica del código solo leyéndolo (cohesión de estándar de código).

4
Por ejemplo, JUnit, NUnit, etc.
Página 36

10. Collective Ownership (Propiedad Colectiva)


El objetivo es evitar que una sola persona sea “dueña” de un módulo de la aplicación.
Se espera de todos los desarrolladores que puedan trabajar sobre cualquier porción del
código en cualquier momento.

La propiedad colectiva del código implica que cada uno es responsable de todo el código,
y también que cada uno tiene el permiso de modificar cualquier porción del código.

11. Continuous Integración (Integración Continua)


El objetivo es lograr que todos los cambios al código fuente sean integrados en una base
común de código por lo menos diariamente, y que sean ejecutados todos los tests
automáticos existentes antes y después de la integración.

Con XP se integra toda la aplicación cada vez que se sube código al repositorio
compartido de código fuente. De esta forma se descubren los potenciales problemas de
integración tempranamente y se resuelven en forma gradual ni bien aparecen.

12. Planning Game (Juego de Planificación)


El objetico del Juego de Planificación es que el equipo de proyecto y el cliente cooperen
para producir el máximo valor para el negocio de la forma más rápida posible.

Suele ocurrir en una reunión al inicio de la iteración a la cual participa el equipo de


proyecto y el cliente. La dinámica es la siguiente:

1. El cliente presenta una lista de las funcionalidades deseadas para el sistema. Cada
funcionalidad es escrita en formato de Historia de Usuario, que da un nombre a la
funcionalidad y describe brevemente el comportamiento requerido.

2. El equipo de proyecto estima cuanto esfuerzo de desarrollo es necesario para cada


Historia de Usuario. También se define el esfuerzo total que el equipo puede
producir durante la iteración. El equipo divide cada Historia de Usuario en tareas
técnicas asignables a una sola persona, que luego son estimadas por el mismo
equipo de proyecto.

3. El cliente decide que Historias de Usuario implementar y en qué orden, para


maximizar el valor creado para el negocio en función del esfuerzo disponible del
equipo de proyecto.
Página 37

3.3.5 Ejemplo de un Proyecto XP Típico

En esta sección, y a modo de repaso, describimos como se desarrolla un proyecto XP


típico:

El primer punto de interés a mencionar es que todos los desarrolladores están ubicados
físicamente en una misma habitación, usualmente sentados alrededor de una larga
mesa en el medio de la misma.

Los equipos XP trabajan en una serie de ciclos con iteraciones fijas. Una iteración
típicamente dura entre una y cuatro semanas según el equipo, pero la duración es
siempre la misma.

Al inicio de cada iteración, el equipo se reúne con el cliente para una reunión de
planificación. En esta reunión, repasan las funcionalidades que el cliente quiere
terminadas en esta iteración, dividiendo cada funcionalidad en tareas técnicas de una
persona. Luego cada desarrollador se asigna tareas específicas y las estima. Ningún
desarrollador puede asignarse más trabajo en esta iteración que lo que terminó en la
iteración anterior.

Durante el resto de la iteración, el equipo va a implementar las funcionalidades


comprometidas, trabajando de a pares sobre todo el código producido. Para toda
porción de código, los desarrolladores primero crean tests unitarios antes de escribir el
código y se integra todo el código producido una vez por día, en general al finalizar la
jornada laboral. El cliente provee tests de aceptación para validar las funcionalidades
que el equipo está desarrollando.

Al final de la iteración (usualmente un viernes), los desarrolladores entregan un software


funcionando al cliente. El software puede no estar completo, pero toda la funcionalidad
entregada funciona completamente, sin defectos. El cliente acepta la entrega, y el
equipo se va temprano a casa.

El lunes siguiente se reúnen nuevamente para planificar la iteración siguiente, y el ciclo


se repite.

* Libro sugerido: The Art of Agile Development, de Shame Shore -


Página 38

4 RADIADORES DE INFORMACIÓN
Página 39

Esta unidad centraliza los principales indicadores visuales de las metodologías ágiles,
llamado Radiadores Visuales por la metáfora de irradiar información para todos los
involucrados.

4.2 TABLERO DE SPRINT


Una práctica común en Scrum, cuando todo el equipo de proyecto está colocado, es de
materializar el Backlog de Sprint a través de un tablero físico (por ejemplo, con
rotafolios, panel de corcho, pizarrón, etc.), expuesto en la sala donde trabaja el equipo.
De esta forma se logra una visibilidad importante sobre el avance del sprint para todas
las personas que están ubicados en este lugar o que pasan por la sala.

En un Tablero de Sprint, se presenta el Backlog de Sprint visualmente, usualmente con


post-its o tarjetas de cartón o papel para representar ítems y tareas del sprint, en las
cuales se registra información básica de los ítems (como por ejemplo título, estimación
de esfuerzo, prioridad, criterios de aceptación) y de las tareas (como por ejemplo tarea,
esfuerzo restante estimado, responsable). Se suele dividir el tablero en tres columnas,
con los tres estados de tareas: Pendiente, En Curso, Terminado, en las cuales se ubican
las tareas según el avance.

Finalmente se suele complementar la información del tablero con un Diagrama de


Burndown (descrito más adelante), que muestra gráficamente el esfuerzo restante del
sprint.

El Tablero de Sprint suele ser el lugar elegido para los equipos para hacer la Reunión
Diaria, y permite que todo el mundo pueda hacerle cambios visibles por todo el equipo,
lo que puede ser más complicado con una aplicación digital.

Se puede combinar el Tablero de Sprint con un soporte herramental para el Backlog de


Sprint en caso de querer registrar alguna información adicional, tener backups, tener
parte del equipo distribuido, contar con información histórica, integrar la información
de Backlog de Sprint con otras herramientas, sacar métricas e indicadores de forma más
automáticas, etc.

A continuación, se presenta un ejemplo de Tablero de Sprint:


Página 40

4.3 DIAGRAMA DE BURNDOWN


El Diagrama de Burndown es una forma gráfica de resumir el avance de un sprint. Se
trata de registrar diariamente el esfuerzo restante para completar todos los ítems
comprometidos para el sprint en curso. Para eso, cada día se suma el esfuerzo restante
de todas las tareas en estado Pendiente y En Curso, una vez que el equipo haya
actualizado todos los esfuerzos restantes. Esta suma es la cantidad de horas necesarias
de parte del equipo para que se pueda completar el sprint.

El Diagrama de Burndown muestra en el eje X el tiempo, con un rango que representa


todos los días hasta terminar el sprint actual (por ejemplo, diez días hábiles si es un
sprint de dos semanas de duración). El eje Y representa el esfuerzo restante del equipo
para completar todos los ítems comprometidos, con una graduación en horas de
esfuerzo restante.

Existe una línea de progreso teórico que une el esfuerzo restante al principio del sprint
con el valor de esfuerzo restante cero al final del sprint. Es el progreso teórico que un
equipo debería seguir para tener un ritmo constante y continúo para llegar a cumplir
con el sprint si las estimaciones fueran perfectas y todas las tareas identificadas.
Página 41

Cada día el Scrum Master irá marcando, para el día correspondiente, el esfuerzo
restante actualizado. El objetivo es llegar a un esfuerzo nulo antes del final del Sprint.

A continuación, se muestra un ejemplo de Diagrama de Burndow:

En este ejemplo vemos un sprint de 20 días de duración, con un esfuerzo restante


estimado inicial de 190 horas. En gris se ve la línea de progreso teórico y en rojo el
registro diario del esfuerzo restante actualizado.

Un Diagrama de Burndown permite visualizar distintas situaciones:

 Si la pendiente sube, se puede ver que el esfuerzo restante está creciendo. Puede
pasar cuando se están agregando tareas no previstas, o que surgen problemas que
hacen que las tareas duran más de lo estimado.

 Si la pendiente es horizontal de un día al otro, quiere decir que el esfuerzo restante


no cambio de un día al otro, o sea que los eventuales avances fueron compensados
por incrementos en esfuerzos restantes estimados (nuevas tareas, complicaciones
en tareas existentes, etc.).

 Si la pendiente pasa por arriba de la línea de progreso teórico, se puede interpretar


como que el equipo se esté atrasando y que no se pueda cumplir con los objetivos
del sprint siguiendo este ritmo.

 Si la pendiente pasa por debajo de la línea de progreso teórico, se puede


interpretar que el equipo está avanzado más rápido que lo previsto (puede ser que
se eliminaron algunas tareas, que algunas tareas se terminaron en menos tiempo
que lo previsto, etc.).

Tener esta suma actualizada diariamente permite tener una visión muy clara del avance
del equipo, así como una forma gráfica de monitorear el ritmo del equipo y detectar
tempranamente eventuales problemas de ritmo.
Página 42

4.4 TABLERO KANBAN


El término “Kanban” proviene del japonés: 看 板
▪ 看 (Kan) que se puede traducir como “visual”
▪ 板 (Ban) que se puede traducir como “insignia” o “sello”

Este término suele describir una insignia trabajada de metal o de madera usada como
marca o sello. En el siglo 17 se multiplicaron estas insignias Kanban como fuertes
símbolos de identidad de las tiendas japonesas. En aquella época, se combinaban formas
complicadas, caligrafías y dibujos muy visuales para representar distintos comercios y
marcas.

Uno de los elementos claves de KanBan es el enfoque de Push vs Pull.

Se conoce este enfoque como sistema Pull (Tirar), donde el ritmo de la demanda actual
determina el ritmo de todos los sub-procesos necesarios a la producción, a diferencia
de sistemas Push (Empujar), donde se trabaja sobre el ritmo de producción y el nivel de
stock a partir de la predicción de las ventas posibles.
Es conocido como sistema “Pull”, porque un nuevo trabajo es introducido en el sistema
(“Pulled”) únicamente cuando hay disponibilidad para procesarlo, en lugar de ser
introducido (“Pushed”) en el sistema en función de la demanda estimada.

En un sistema Kanban, se busca limitar el trabajo en curso (WIP) para asegurar un flujo
de producción continuo y optimizado, sin espera o sobreproducción que lleven a trabajo
de inventario o sobre-stock.
Página 43

Se logra esta limitación con dos mecanismos básicos:

1. Se utiliza un número fijo y limitado de tarjetas Kanban.

2. El proceso posterior solamente retira partes terminadas del proceso anterior


cuando las necesita.

Finalmente, para cerrar esta breve introducción, se puede mencionar las reglas que
propone respecto a Kanban:

1. El cliente (proceso posterior) retira partes en la cantidad exacta definida por el


Kanban
2. El proveedor (proceso anterior) produce partes en la cantidad exacta y secuencia
especificada por el Kanban
3. Ninguna parte es creada o movida sin un Kanban
4. Un Kanban debe acompañar cada ítem en todo momento
5. Nunca se mandan defectos o cantidades incorrectas al próximo proceso
posterior
6. La cantidad de Kanbans es reducida con precaución para limitar inventarios y
revelar problemas de flujo.

Con esta regla se busca acordar entre los involucrados límites sobre la cantidad de ítems
de trabajo que pueden encararse a la vez. En el resto del documento utilizaremos el
término WIP (Work in Progress) en lugar de trabajo en curso.

● Objetivos

Limitar el WIP permite reducir el multi-tasking (trabajar en varias tareas a la vez), lo


cual tiene efectos importantes:
Página 44

▪ 20% del tiempo se pierde en el cambio de contexto por tarea, con lo cual tener
menos tareas a la vez reduce esta pérdida de tiempo (según Gerald Weinberg –
Quality Software Management: Systems Thinking)

▪ Ejecutar tareas secuencialmente genera resultados más rápido. Como lo muestra


el diagrama siguiente, haciendo multi-tasking sobre A, B y C (arriba) se entrega
A más tarde y C un poco más tarde que en forma secuencial (abajo)

Por otro lado, el WIP limitado suele relevar cuellos de botellas en el flujo de trabajo, lo
que permite una reflexión profunda para remover o desplazar estos problemas.
Finalmente genera colaboración entre los miembros del equipo para avanzar con ítems
de trabajos problemáticos que impiden encarar nuevos ítems.
En forma general el WIP limitado genera debates sobre la forma de trabajo que lleva a
mejoras importantes.

● ¿Qué son los límites de WIP?

Un límite de WIP provoca una restricción sobre cuántos ítems de trabajo pueden estar
en el mismo paso del proceso de creación de valor (en cada columna del tablero).
Únicamente cuando un ítem de trabajo progresa en el proceso, se abre un espacio para
que un nuevo ítem de trabajo pueda entrar en el paso correspondiente.
Un resultado importante de estas restricciones es que un ítem de trabajo bloqueado
detiene toda la cadena de trabajo, y puede ocurrir que no se pueda encarar un nuevo
ítem de trabajo hasta que no se haya desbloqueado este ítem problemático. Este
mecanismo suele provocar colaboración y motivación de todo el equipo para remover
rápidamente el bloqueo antes de empezar con nuevos ítems de trabajo.
Cabe aclarar que no todos los pasos del proceso de creación de valor tienen que tener
un WIP limitado, y que a veces se usa un límite de WIP para varios pasos (o columnas)
en conjunto.
Página 45

En el ejemplo siguiente de tablero Kanban, se puede observar en rojo los límites de WIP
para los distintos pasos del proceso. Por ejemplo no puede haber más de 2 ítems de
trabajo a la vez en el paso de “Test”.
Se puede consultar el Anexo One Day in Kanban Land de Henrik Knibberg para un
ejemplo animado de cómo funciona el WIP.

● Explicitar los límites de WIP

Antes que todo, es fundamental que todos los límites de WIP que se apliquen en el
sistema Kanban implementado sean conocidos y acordados entre todos los
involucrados. En particular es necesario que el negocio, el cliente, los usuarios, el
management, los responsables de los procesos anteriores y posteriores y todo el equipo
de desarrollo estén de acuerdo con los límites elegidos y que sepan las consecuencias y
los mecanismos que eso implica.

● ¿Qué límites de WIP elegir?

Definir los límites de WIP es una tarea compleja que depende de cada equipo,
organización, tipo de trabajo, etc. También, estos límites suelen calibrarse mejor a
medida que el equipo encuentra su ritmo óptimo de trabajo a través de distintas
mejoras y prueba distintos límites hasta encontrar unos convenientes. En consecuencia,
no es necesario dar demasiada importancia a la definición inicial de estos límites, sino
que, como sugerencia, puede ser mejor elegir rápidamente unos límites de WIP que
Página 46

parezcan lógicos y poner el foco en revisar periódicamente si estos límites se tienen que
ajustar (por arriba o por abajo).
Se suele utilizar un promedio de ítems en curso por cada paso del proceso de creación
con un valor de entre uno a tres por persona.

● Limitar la cola de entradas

Acordar un límite de tamaño sobre la cola de entradas al sistema Kanban (la primera
columna del tablero) permite hacer foco sobre los próximos ítems de trabajo a encarar
por el equipo y en particular, genera un proceso de priorización basado en el valor para
el negocio de cada ítem. Si la cola de entrada es por ejemplo limitada a sólo dos ítems
de trabajo a la vez, el negocio/cliente/usuario va a tener que priorizar periódicamente
los dos próximos ítems que quiere ver implementados en el software. Suele simplificar
la priorización tener un límite de cola de entrada bajo, y en general provoca que el
esfuerzo periódico de priorización de los ítems sea bajo.

Tablero KanBan con 3 estados (Pendiente, en Progreso, Terminado) :


Los PostIts representan ítems de trabajo
Página 47
Página 48

5 ADOPCIÓN DE METODOLOGÍAS AGILES


Página 49

En esta sección repasamos algunos aspectos que suelen ser claves en la adopción de
metodologías ágiles, y que el PMI incluye en su certificación PMI-ACP.

5.1 GLOBALIZACIÓN, CULTURA Y DIVERSIDAD DE LOS EQUIPOS


Hoy en día los equipos suelen tener integrantes de varios países. Y aunque estos hablen
el mismo idioma suele haber muchas diferencias culturales. Adicionalmente puede
haber grandes diferencias entre integrantes de una misma zona geográfica, ya que cada
uno tiene su propia formación, experiencia, cultura e historia.

Estas diferencias tienen un impacto fuerte en el equipo, ya que impactan directamente


la fluidez de sus comunicaciones.

Varias personas reconocidas de la comunidad ágil recomiendan, entre otros, buscar la


forma de trabajar cara a cara en las primeras iteraciones de un proyecto (por ejemplo,
durante 2 o 3 iteraciones). Dicho mecanismo permite lograr una experiencia
compartida, un conocimiento mutuo y una toma de conciencia de las diferencias que
seguramente será muy beneficioso a lo largo de todo el proyecto.

5.2 MODELOS DE TOMA DE DECISIÓN PARTICIPATIVOS


Es un hecho comprobado que el compromiso que tengan los participantes afecta
directamente al cumplimiento del proyecto. También está demostrado que una forma
de lograr mayor compromiso de los participantes es que sean partes de la toma de
decisión.

En el enfoque ágil de gestión de proyectos, se busca la auto-organización de los equipos,


y especialmente para la toma de decisión. En particular se suelen utilizar algunas de las
siguientes técnicas para permitir a un equipo lograr decisiones por consenso:

 Votación
Luego de una conversación del equipo sobre las distintas alternativas, pedir a cada
integrante que vote su preferencia entre estas. Se puede acordar la decisión por mayoría
o por pasar cierto umbral de votos. La votación puede ser anónima o no.

 Técnica del Pulgar


Adicionalmente a la técnica de votación, en esta técnica los participantes expresan su
opinión respecto a una alternativa en particular usando la posición de su pulgar:
o Pulgar por arriba: de acuerdo con la alternativa
Página 50

o Pulgar por abajo: rechazo


o Pulgar horizontal: puedo vivir con esta alternativa
Se puede tomar la decisión final por mayoría de pulgar por arriba o si no hay ningún
pulgar por abajo.

 Espectro de decisión de Jim Highsmith


En esta técnica, el foco está específicamente sobre el “pero” o las reservas que puede
tener un participante. Se busca expresar estos “peros” y valorarlos.

o A favor, sin reserva


o OK, pero con reservas
o Sentimientos mezclados: no estoy a favor, tengo reservas, pero puedo
acompañar la decisión
o En contra, con reservas fuertes que generan rechazo

 Votación por dedos


Se vota una alternativa usando de 0 a 5 dedos por cada participante (desde 0: muy en
contra a 5: muy a favor). Se cuenta el total de dedos y se toma la decisión en función de
este total.

5.3 ERRORES Y APRENDIZAJE


Un cambio de paradigma importante en el enfoque ágil tiene que ver con la relación al
error. Se trata de ver el error como una inversión que nos permite aprender y mejorar
la próxima vez. Es una premisa clave para sostener la creatividad y la innovación.

5.3.1 Comportamientos Problemáticos

Alistar Cockburn, en su libro Agile Software Development: The Cooperative Game, 2nd
Edition, identifica los principales comportamientos que atentan a este principio:

 No aceptar que los errores ocurren


Se recomienda reconocer el hecho que el error es inevitable, para estar preparado para
recuperarse lo más rápido posible y aprender de él.

 Elegir fallar conservativamente


Se basa en que es mejor malo conocido que bueno por conocer. Solemos tener
tendencia a elegir las opciones conocidas, aunque tengan problemas que explorar
nuevas opciones que potencialmente puedan generar problemas desconocidos.
Página 51

 Inventar antes que investigar


Muchas veces se tiende a reinventar la rueda en vez de investigar si ya hay algo existente
que soluciona el problema.

 Ser criaturas de hábito


Solemos quedarnos en nuestras zonas de confort, en particular cuando logramos ciertas
rutinas basadas en hábitos. A veces, al no cuestionarnos, nos perdemos la oportunidad
de mejora o la necesidad de hacer un cambio.

 Ser inconsecuentes
Cuando usamos buenas prácticas, es bastante común que perdamos la regularidad y que
las empecemos a dejar de seguir.

5.3.2 Comportamientos a Adoptar

Alistar Cockburn recomienda adoptar conscientemente los siguientes comportamientos


para remediar a estos problemas:

 Ser bueno mirando alrededor


Ser observador para poder notar cuando las cosas no caminan como es esperado.

 Ser capaz de aprender


Aprender de los errores

 Ser adaptable
Mantenerse capaz de cambiar y probar nuevas ideas.

 Enorgullecerse de que el trabajo se logre


Ser capaz de buscar lo correcto más allá que esto esté fuera de nuestro rol

5.3.3 Estrategia a Seguir

Finalmente, Alistair Cockburn propone la siguiente estrategia para cambiar los


comportamientos problemáticos:

1. Tener disciplina y tolerancia

2. Empezar corrigiendo problemas concretos y tangibles

3. Copiar y ajustar, antes que crear de cero


Página 52

4. Observar y escuchar para aprender de los otros, ya que todos tienen algo del que
podemos aprender

5. Tener concentración y comunicación, y a veces es necesario una interrupción


breve para estar bien comunicado

6. Hacer que los involucrados concuerdan con la labor a realizar

7. Elegir y conservar los talentosos

8. Dar premios que preservan la alegría, basados en la motivación de la autoestima,


el orgullo de la labor lograda, y valorando los esfuerzos extras

9. Combinar premios, para lograr un sistema de recompensas que combine lo


laboral con los intereses personales

10. Dar y recibir feedback constantemente

*Libro recomendado: Alistar Cockburn - Agile Software Development: The Cooperative


Game, 2nd Edition.

5.4 CAMBIOS DE METODOLOGÍA


5.4.1 Anti-patrones de Adopción

Alistair Cockburn, en el libro Agile Software Development: The Cooperative Game (2nd
Edition), proporciona reflexiones muy acertadas sobre anti-patrones a evitar en el
diseño o elección de una nueva metodología:

1. Bala de Plata. Tener una sola metodología para todos los tipos de proyectos no
es factible.

2. Intolerancia. Si la metodología es demasiado estricta como para poder seguirla,


no va a funcionar.

3. Pesada. Si se requiere mucho más esfuerzo en el uso de la metodología que en


el trabajo en sí, es probable que tampoco funcione.

4. Embellecida. Cuando se agregan a la metodología algunos “debería” y “podría”


sobre tareas adicionales o segundarias a realizar, probablemente sean costosos
en valor y/o tiempo, si aportar demasiado.
Página 53

5. Sin Probar. Una metodología completa creada de cero, tiene un alto riesgo de
no estar adaptada a las necesidades y de ser difícil de cumplir.

6. Usada una vez. Una metodología probada poco tiempo o en un solo caso y que
no haya funcionada muy bien, se suele abandonar sin buscar adaptarla o
entender bien sus beneficios.

5.4.2 Criterios de Adopción

En el diseño o la adaptación de una metodología a adoptar, se recomiendo considerar


los siguientes criterios:

1. El canal más rápido de comunicación para intercambiar información es cara a


cara.

2. El exceso de metodología tiene un impacto negativo.

3. A grandes equipos, grandes metodologías: se debe documentar más cuando hay


mayor cantidad de temas y se corren riesgos al no ser comunicados a todos.

4. A proyectos críticos, mejores prácticas: se requiere ejecutar la metodología con


más rigurosidad en estos proyectos en los cuales un fallo puede ser catastrófico.

5. Incrementar el feedback y la comunicación reduce la necesidad de entregables


intermedios.

6. El conocimiento es intangible: no se puede tocar ni ver. La documentación se


puede ver, pero que haya documentación no implica que haya conocimiento.

7. Los cargos formales y las habilidades no necesariamente están relacionados unos


con los otros.

8. La eficiencia puede ser secundaria en actividades que no sean cuello de botella.


Conviene enfocarse en la eficiencia de las actividades más críticas.

*Libro recomendado: Alistar Cockburn - Agile Software Development: The Cooperative


Game, 2nd Edition.

5.5 MODELOS HÍBRIDOS


Página 54

Han emergidos múltiples modelos híbridos en cuanto al uso de metodologías ágiles. Un


modelo híbrido combina varias prácticas provenientes de distintas metodologías, que
pueden ser ágiles o no.

Es importante tener un nivel de conocimiento y experiencia con las metodologías a


combinar para lograr el éxito manteniendo la simplicidad y efectividad de las prácticas
elegidas.

5.5.1 Ejemplo de Modelo Híbrido: Scrum con Kanban (Scrumban)

Este modelo híbrido ha sido ampliamente probado en la comunidad ágil.

Una vez implementado Scrum se puede migrar parcialmente a Kanban, básicamente


transformando el tablero para que represente el flujo de trabajo, agregando el límite de
Trabajo en Progreso y luego optimizando el flujo. El otro agregado para lograr esto es
implementar los indicadores de Kanban.

5.5.2 Ejemplo de Modelo Híbrido: enfoque predictivo y Scrum

Sin implementar todas las prácticas de Scrum en un entorno con un enfoque predictivo,
se puede empezar sumando algunas prácticas, como por ejemplo en aspectos de
sincronización y de mejora continua:

 Reuniones Diarias de Sincronización


Pese a no tener iteraciones y a tener un plan ya fijado para todo el proyecto, suele ser
de valor tener una reunión diaria de sincronización (Scrum) donde todos los miembros
del equipo sincronizan sus tareas, y piden ayuda si tienen dificultades o impedimentos
para avanzar.

 Retrospectivas
Si bien no hay un proceso iterativo punta a punta que pase por todas las etapas de
elaboración, puede ser de valor aprender en forma continua y tratar de mejorar. Es
típico implementar reuniones periódicas de retrospectivas, con todo el equipo para
analizar lo ocurrido por ejemplo en el último mes, y pesar juntos experimentos de
mejora a probar a corto plazo.

5.6 NUEVAS PRÁCTICAS ÁGILES


El ritmo con el cuál un equipo o una organización puede incorporar nuevas prácticas es
limitado, como la cantidad de agua que puede absorber una planta. La recomendación
en estos casos es simple: no reinventar la rueda... si no se necesita.
Página 55

Si ya existe una práctica (ágil) para tratar un problema, mejora usarla, ya que esta ha
sido testeada y se sabe para qué usarla, y para qué no.

Utilizar una práctica nueva tiene similitud con la habilitación de un nuevo medicamento.
Se debe hacer pruebas en un grupo reducido durante un tiempo, analizando si
realmente es solución para lo necesitado y evaluar los eventuales efectos secundarios.
Luego de estas pruebas se podrá decidir el uso a mayor escala.
La base para seguir aplicando prácticas nuevas es realizar un ciclo de inspección,
reflexión y adaptación. Si la práctica funciona se seguirá utilizando, sino no.

El compromiso de PMI para la certificación PMI-ACP es actualizar anualmente el alcance


del examen con nuevas prácticas que han sido ampliamente reconocidas.

Las metodologías ágiles actuales incluidas en la certificación PMI-ACP son:


 Scrum
 Extreme Programming (XP)
 Feature-Driven Development (FDD)
 Dynamic Systems Development Method (DSDM)
 Cristal Family
 Lean
 Kanban

Actualmente se está analizando incorporar:

 Behavior driven development


Es una extensión de Test Driven Development que incorpora los intereses del negocio
con una visión técnica, con distintas herramientas automatizadas de soporte. Libro
sugerido: The RSpec Book: Behaviour-Driven Development with RSpec, Cucumber, and
Friends.

 Lean start-up
La idea innovadora, además de las ideas ya conocidas de Lean, es utilizar una corrección
estructurada del curso de diseño para probar una nueva hipótesis fundamental sobre el
producto, la estrategia y el motor de crecimiento del negocio. Libro sugerido: The Lean
Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically
Successful Businesses.

 Real Options
Es una técnica de cálculo para la valoración de decisiones. Libro sugerido: Real Options
Analysis: Tools and Techniques for Valuing Strategic Investment and Decisions, 2nd
Edition (Wiley Finance).
Página 56

6 REFERENCIAS
 Agile Software Development: The Cooperative Game – 2nd Edition – Alistair Cockburn
ISBN #0321482751
 The Art of Agile Development – James Shore ISBN #0596537675
 Agile Project Mangement with Scrum – Ken Schwaber ISBN #073561993X
 Lean-Agile Software Development: Achieving Enterprise Agility – Alan Shallaway,
Guy Beaver, James r. Trott ISBN #0321532899
 Kanban and Scrum - making the most of both – Henrik Kniberg y Mattias Skarin –
Lulu.com – 2010
 Kanban: Succesfull Evolutionary Change for Your Technology Business – David J.
Anderson – Blue Hole Press – 2010
 Extreme Programming Explained: Embrace Change (2nd Edition) – Kent Beck -
Addison-Wesley Professional – 2004
Página 57

LO QUE VIMOS Y LO QUE VENDRÁ

En esta unidad introducimos los principales principios,


prácticas, técnicas que se suelen usar en las metodologías
ágiles.

En las próximas unidades nos enfocaremos en priorizar,


estimar, planificar, monitorear y adaptar un proyecto de
desarrollo.

También podría gustarte