agile fundamentals - campus party
TRANSCRIPT
Introducción a las metodologías ágiles
TASA DE ÉXITO DE PROYECTOS
Fuente: Standish Group. 2011 CHAOS report
AGENDA
La metodología Ágil
Historia
El Manifiesto
Agilismo y ThoughtWorks (TW)
Prácticas con relación al Producto
Prácticas con relación a la Ingeniería
Seguimiento, gestión y crecimiento
Un equipo típico de TW
La historia de ÁgilUn poco de historia, para alinear nuestro entendimiento de la filosofía Ágil antes de entrar en en el detalle.
LÍNEAS DE PRODUCCIÓN (FORD)
EL SOFTWARE ES UN TRABAJO CREATIVO!
¿TE SUENA CONOCIDO?
CADA CUAL CON SU PROPIA TEORÍA!
El ManifiestoY finalmente, el Manifiesto Ágil !
El Manifiesto Ágil
- Individuos e interacciones sobre procesos y herramientas
- Software funcionando sobre documentación extensiva
- Colaboración con el cliente sobre negociación contractual
- Respuesta ante el cambio sobre seguir un plan
1. Individuos e interacciones sobre procesos y herramientas
Las herramientas deben ser seleccionadas para resolver el problema y no al revés
Los procesos deben adaptarse a la gente y los objetivos y no al revés
Procesos y herramientas son importantes
Individuos e interacciones cercanas lo son más
2. Software funcionando por sobre una documentación extensiva
Documento ValorDocumento Actualizado
$$ $$ $$ $$
$$
3. Colaboración con el cliente por sobre la negociación de contratos
Los contratos son para reforzar acuerdos
Solo son referenciados cuando alguien no cumple con sus compromisos
Las especificaciones representan contratos
Las especificaciones creadas tempranamente, son propensas a cambiar
4. Responder al cambio por sobre seguir un plan
“Visión sin acción es soñar despierto. Actuar sin una visión es una pesadilla.”(Proverbio Japonés)
“Ningún plan sobrevive al contacto con el enemigo.” (Colin Powell)
La forma Ágil:
❏Obtener una visión clara de los objetivos y las prioridades
❏Recolectar suficiente información para poder comenzar
❏Construir algo
❏Mostrárselo al cliente, probarlo con usuarios reales. Aprender
❏Responder a su retroalimentación
PRÁCTICAS DE PRODUCTOSAlgunas prácticas destinadas a ayudar en la concepción y gestión de productos
ENTREGA INCREMENTAL/CONTINUA
17
ENTREGA INCREMENTAL/CONTINUA
❏ Desarrollar un sistema a través de ciclos repetidos (iterativo) y en porciones más pequeñas a la vez (incremental)
❏ Permite al equipo aprovechar lo que se aprendió durante el
desarrollo de las partes o versiones anteriores
❏ Aprendizaje proviene del desarrollo y del uso del sistema
ENTREGA INCREMENTAL/CONTINUA
MVP
20
MVP Y MEJORA CONTINUA
MVP Y MEJORA CONTINUA
Funcionalidad 2
Funcionalidad 3
Objetivo 1 Objetivo 2 Objetivo 3
Objetivos
Sati
sfacc
ión
Funcionalidad 1
Funcionalidad 1+
Funcionalidad 1++
Funcionalidad 2+
(Lectura recomendada: Modelo Kano - http://en.wikipedia.org/wiki/Kano_model)
+ -
Funcionalidad 3++
PRÁCTICAS DE INGENIERÍAAlgunas de las prácticas del día a día para garantizar la calidad y la alineación con los objetivos
TDD
24
Las pruebas automatizadas se escriben antes que el código
❏ Pone a prueba los objetivos de la historia, no lo que se hizo
❏ Garantiza:
❏ Cobertura de pruebas
❏ Calidad y confianza en los cambios futuros
TDD (desarrollo orientado a pruebas)
PAIR PROGRAMMING
26
PROGRAMACIÓN EN PAREJAS
❏Dos programadores trabajan juntos en una estación de trabajo
❏Uno de ellos, el conductor, escribe código, mientras que el otro, el navegador, revisa cada línea de código
❏Los dos programadores cambian los papeles con frecuencia
STAND UPS
28
STANDUPS DIARIAS
HISTORIAS DE USUARIO
30
HISTORIAS
GESTIÓN Y SEGUIMIENTO
Algunas de las prácticas que ayudan a la gestión y el seguimiento del estado del proyecto
ESTIMACIONES
33
● Estimaciones demasiado precisas para cada tarea
● El orden de todas las tareas está predefinido sin siquiera haber empezado
● Muy difícil de adaptar para responder a los cambios externos
NIVEL DE CERTEZA PRECISIÓN y EXACTITUD
❏ La tarea g será terminada después de 5,17 días
❏ ...será un día nublado
❏ … y la temperatura será 25 C
❏ … no hay terremotos en este día
❏ … y esto puede o no ser verdad ;)
El enfoque está en la precisión que justifique las desviaciones del plan
NIVEL DE CERTEZA PRECISIÓN y EXACTITUD
❏ Un grupo de historias se llevará a cabo en una iteración
❏ El tiempo será refinado de acuerdo a la velocidad real y en tiempo real, permitiendo correcciones tempranas
❏ El orden de las historias puede cambiar
El enfoque está en el nivel de certeza y en la adaptación del plan a los datos reales
36 puntos
9 iteraciones
ESTIMACIONES ÁGILES
? 2 cotopaxis 4 cotopaxis
¿Cuál es el tamaño del cuadrado cuando se lo imprime con definición de 300dpi?
ESTIMACIONES ÁGILES
2 cotopaxis = 4 centímetros 4 cotopaxis = 8 centímetros
¿Qué pasa si después de un tiempo he impreso el más pequeño y medí?
4 cotopaxis = ? centímetros
GESTIÓN DE ALCANCE
38
GESTIÓN DE ALCANCE
Realidad: El alcance crece !!!
❏ Horizontalmente (nuevas funciones)
❏ Verticalmente (exceso de trabajo en funciones existentes)
Crecimiento invisible
❏ “Ir y venir” varias veces
GESTIÓN DE ALCANCE
Funcionalidad 2 Funcionalidad 3
Objetivo 1 Objetivo 2 Objetivo 3
objetivos
Sati
sfacc
ión
Funcionalidad 1
Funcionalidad 1+
Funcionalidad 1++
Funcionalidad 2+
Objetivo 4
Funcionalidad 4
Funcionalidad 3+
Funcionalidad 2++
CRECIMIENTO DE ALCANCE INVISIBLE
GESTIÓN DE ALCANCE❏Comunicación constante
❏Comunicación
❏Más Comunicación
❏Visión clara y alineada de las metas
❏Priorización
❏Negociación constante a medida que se detectan cambios
❏Herramientas: Burnups, backlog priorizado, story mapping
BURN UPS Charts
43
BURNUPS
Iteraciones
Pun
tos
de h
isto
ria
80 puntos
Iteración 10(Diciembre, 06)
BURNUPS
90 puntos
Iteración 10(Diciembre, 06)
Iteración 11(Diciembre, 20)
1. Fecha es negociabl
e
Pun
tos
de h
isto
ria
Iteraciones
BURNUPS
90 puntos
Iteración 10(Diciembre, 06)
82 puntos
2. Fecha no es negociable
Pun
tos
de h
isto
ria
Iteraciones
BURNUPS
90 puntos
Iteración 10(Diciembre, 06)
3. Presupuesto es
negociable
88 puntos
Pun
tos
de h
isto
ria
Iteraciones
Aumento de la velocidad no es ilimitado
4 ½ months
SHOWCASE
49
UN TÍPICO EQUIPO DE THOUGHTWORKSNo hay una composición de equipo obligatoria. Esto va a cambiar de un proyecto a otro, pero en general tenemos unas habilidades específicas en el equipo
ResumenAgile es una metodología de desarrollo de software centrado en mejorar la calidad, la velocidad y la adherencia a las necesidades de los clientes, mientras que minimiza el esfuerzo desperdiciado a través de abrazar y gestionar los cambios
GRACIAS“En la práctica de ser ágil es simplemente un compromiso óptimo con restricciones ambientales”(Abraham Kiggundu)
“El que es más capaz de adaptarse es el que va a sobrevivir”(Darwin)