Sesión 6 del curso Metodologías Ágiles de Desarrollo de Software de la Universidad de Alicante (http://www.dccia.ua.es/dccia/inf/asignaturas/MADS/2013-14)
2. Juego: Pasar las monedas
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
2
3. Cada encargado:
•Pone en marcha el cronómetro cuando su trabajador
recibe la moneda #1
•Para el cronómetro cuando el trabajador envía su moneda #20
3 rondas
¿Cuánto tarda
cada trabajador?
Lisa
3 rounds
Ronda 1rounds2
3 Ronda
How long did each
worker take?
How long did each
worker take?
Lisa
David
Lisa
David
3 rounds
David
Jack
Martín
Maria
Jack
María
¿Cuándo recibe
el cliente la
primera
moneda?
How long did each
When did the
worker take?
customer receive
the first coin?
When did the
When did the
customer receive
customer receive
the first coin?
the last coin?
When did the
customer receive
Maria
Lisa
Round
A
David
the
¿Cuándo recibe
el cliente la
última moneda?
Round
A
Round
A
Each manager:
• Start the timer when your worker receives coin #1
Each the timer when your worker sends coin #20
• Stop manager:
Ronda your worker del batch 20
• Start the timer when 1: tamaño receives coin #1
Ronda 3 the timer when your worker sends coin #20
Round A: Batch size 20
• Round
RoundStop
B
Round
B
C
Round
C
Round A: Batch size 20
Each manager:Round B: Batch size 5
Ronda 2: tamaño del batch #1
• Start the timer when your worker receives coin5
Round B: Batch size 5
• Stop the timer when your worker sends coin #20
Round
B
Round
C
Round A: Batch size 20
Round C: Batch size 1
Round C: Batch size 1
Ronda 3: tamaño del batch 1
Round B: Batch size 5
last coin?
Jack
Henrik Kniberg
216
Maria
Henrik Kniberg
When did the
customer receive
the first coin?
Round C: Batch size 1
216
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
3
5. Algunas preguntas
•
•
¿Qué ha pasado con el tiempo total? ¿Por qué?
•
¿Cómo se sentían en cada ronda? ¿Ha sido estresante? ¿Cuándo ha
sido más calmado?
•
•
•
¿Se puede trasladar esto al desarrollo de software?
¿Qué ha pasado con el tiempo de cada trabajador individual? ¿Por
qué?
¿Qué representan las monedas?
¿Qué no es aplicable en el desarrollo de software?
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
5
6. Resumen prácticas Kanban
1. Visualizar el flujo de trabajo
2. Limitar el Work In Progress
3. Medir y optimizar el flujo (el tiempo de ciclo o lead time)
4. Hacer explícitas las políticas
• Definition of Done (Definición de Hecho)
• Classes of Service (Clases de servicios)
• Service Level Agreement (Acuerdos de nivel de servicios)
5. Retroalimentación y mejora continua
•
•
•
Ritmo y cadencia
Daily Standups (Reuniones diarias)
Retrospectivas
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
6
7. 1. Visualizar el flujo de trabajo
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
8. Flujo de trabajo
•
Cada empresa de desarrollo de software tiene su propio flujo de
trabajo
•
Para aplicar Kanban debemos empezar identificando el flujo de trabajo
•
•
•
•
¿Qué son los ítems de trabajo (work items)?
¿Por qué fases pasan?
¿Existen distintos tipos de ítems?
¿Su tamaño tiene mucha variabilidad?
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
8
9. Historias de usuario
Como estudiante
quiero generar un PDF con mi expediente
para guardar un resumen de mi expediente
y poder entregarlo a quien me lo pida
Una historia no se resuelve con
un método de un API.
Debemos implementar todos sus
aspectos: interfaz de usuario,
código de cliente, servidor, base
de datos, etc.
Como <rol>
quiero <característica>
para <beneficio>
Independent
Negotiable
Valuable
Estimable
Small
Testable
Acrónimo creado por Bill Wake
www.xp123.com
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
9
10. Historias de usuario e ítems de trabajo
•
Si las historias de usuario tienen un tamaño demasiado grande, las
debemos dividir en tareas más pequeñas
•
Todas las historias deben ir acompañadas de criterios de aceptación
(lo primero que debemos hacer si desarrollamos con TDD)
•
Escribiremos las tareas en forma de ítems de trabajo en etiquetas que
pegaremos en el tablero Kanban
•
Los ítems de trabajo sí que pueden ser partes “horizontales” del
proyecto
Metodologías Ágiles de Desarrollo de Software
10
Domingo Gallardo, DCCIA, Univ. Alicante
11. Post-it con el ítem de trabajo
•
Descripción del ítem de trabajo.
Concisa, precisa y entendible por
todos los miembros del equipo.
•
•
•
•
Fecha de comienzo
•
10-10-13
24-10-13
Código de identificación con el
que podemos encontrar más
información sobre el ítem en otro
lugar (sistema on-line, etc.)
•
Plazo de finalización
Tamaño del ítem (S,M,L)
Quién está trabajando en el ítem.
Lo ideal sería un avatar pegado
encima de la etiqueta.
Indicador de progreso (cuánto se
ha avanzado en el ítem)
#TSK: 1304
CREAR PDF CON LA
FICHA INFORMATIVA
DEL ESTUDIANTE
M
@ Avatars: nitsnets
Metodologías Ágiles de Desarrollo de Software
11
Domingo Gallardo, DCCIA, Univ. Alicante
12. Tipos de trabajo
•
Tipos de trabajos
•
•
•
•
Nuevas características (historias de usuario)
Solucionar bugs y deuda técnica
Tareas de soporte
Etiqueta distinta para cada uno
Kanban in Action
Metodologías Ágiles de Desarrollo de Software
12
Domingo Gallardo, DCCIA, Univ. Alicante
13. El tablero Kanban
•
El objetivo principal del tablero Kanban es mostrar visualmente en qué
está trabajando el equipo en un momento dado
•
Principales utilidades:
•
Elemento fundamental para la reflexión, la comunicación y la discusión
en las reuniones de pie diarias
•
Medir distintas métricas relacionadas con el flujo: número de ítems
terminados por semana, WIP
•
Definir políticas estrictas de flujo de trabajo y de terminación
(Definition of Done)
Metodologías Ágiles de Desarrollo de Software
13
Domingo Gallardo, DCCIA, Univ. Alicante
14. Un ejemplo de tablero Lean from the Trenches
Henrik Kniberg, Lean From the Trenches
Metodologías Ágiles de Desarrollo de Software
14
Domingo Gallardo, DCCIA, Univ. Alicante
15. Políticas en el tablero
Henrik Kinberg, Lean From the Trenches
Metodologías Ágiles de Desarrollo de Software
15
Domingo Gallardo, DCCIA, Univ. Alicante
16. Diferentes tipos de trabajo
Henrik Kniberg, Lean From the Trenches
Metodologías Ágiles de Desarrollo de Software
16
Domingo Gallardo, DCCIA, Univ. Alicante
17. Buffers
Henrik Kniberg, Lean From the Trenches
Metodologías Ágiles de Desarrollo de Software
17
Domingo Gallardo, DCCIA, Univ. Alicante
18. Estadísticas
Henrik Kniberg, Lean From the Trenches
Metodologías Ágiles de Desarrollo de Software
18
Domingo Gallardo, DCCIA, Univ. Alicante
19. Escalar el tablero: tres equipos
trabajando en el mismo proyecto
Henrik Kniberg, Lean From the Trenches
Metodologías Ágiles de Desarrollo de Software
19
Domingo Gallardo, DCCIA, Univ. Alicante
20. 2. Limitar el WIP
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
21. Límite de trabajos en progreso
Henrik Kniberg, Lean From the Trenches
Metodologías Ágiles de Desarrollo de Software
21
Domingo Gallardo, DCCIA, Univ. Alicante
22. Un límite por estado del flujo
Metodologías Ágiles de Desarrollo de Software
22
Domingo Gallardo, DCCIA, Univ. Alicante
23. ¿Por qué limitar el WIP?
•
•
Evitar exceso de multitarea
•
El límite del WIP debe establecerse por consenso entre todos los
implicados en el proyecto
•
La tensión creada por establecer un WIP obliga a discusiones y
análisis beneficiosos para el equipo y el proyecto
Evitar sobrecargas en las siguientes partes de la cadena de proceso
(downstream)
Metodologías Ágiles de Desarrollo de Software
23
Domingo Gallardo, DCCIA, Univ. Alicante
25. ¿Cuál es el límite óptimo?
•
•
Se obtiene midiendo, experimentando y mejorando
•
Estudiar el flujo y optimizar el límite (Kanban es un proceso empírico)
Empezar usando alguna regla sencilla: 2n-1, siendo n el número de
personas trabajando en esa fase
Metodologías Ágiles de Desarrollo de Software
25
Domingo Gallardo, DCCIA, Univ. Alicante
27. El límite de WIP obliga a terminar
•
Frase importante en Kanban
Stop starting, start finishing
•
El límite de WIP obliga al equipo a centrarse en terminar tareas antes de
poder acometer nuevas
Metodologías Ágiles de Desarrollo de Software
27
Domingo Gallardo, DCCIA, Univ. Alicante
28. Clases de servicio
•
En Kanban se pueden definir condiciones adicionales que afectan al
límite de WIP según la clase de servicio (class of service) del ítem de
trabajo
•
Ejemplo muy común: clase “Expedite”
•
•
Ítems urgentes que tienen prioridad sobre el resto
Se define un carril adicional en el tablero para ellos con un WIP de 1
(carril rápido o fast lane)
Metodologías Ágiles de Desarrollo de Software
28
Domingo Gallardo, DCCIA, Univ. Alicante
29. 3. Medir y optimizar el flujo de trabajo
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
30. Cadena de valor
•
La definición de la cadena de valor (value chain) por la que pasan los
ítems de trabajo es importante tanto para analizar el flujo como para
construir el tablero Kanban
Eficiencia
del ciclo de
proceso
Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ
Metodologías Ágiles de Desarrollo de Software
30
Domingo Gallardo, DCCIA, Univ. Alicante
31. Cycle Time o Lead Time
•
Tiempo medio que tarda un ítem de trabajo en ser procesado
Henrik Kniberg, Lean from the Trenches
Metodologías Ágiles de Desarrollo de Software
31
Domingo Gallardo, DCCIA, Univ. Alicante
32. Throughput
•
•
•
En el mundo de los negocios y de los
procesos de fabricación, el Throughput
(rendimiento) es el ritmo al que un
negocio es capaz de producir un
producto o un servicio para una unidad
de tiempo determinada
En teoría de la información o redes se
considera que el throughput es el ratio
medio de mensajes correctos enviados
a través de un canal
En el mundo de la informática es el ratio
de respuestas (SQL, peticiones HTTP,
etc.) por unidad del tiempo que realiza
el sistema
Metodologías Ágiles de Desarrollo de Software
32
Domingo Gallardo, DCCIA, Univ. Alicante
33. Objetivo: reducir la variabilidad
•
•
•
En Kanban se mide el throughput en ítems terminados
Se estima en número de ítems
Se supone que todos los ítems tienen tamaño similar
Metodologías Ágiles de Desarrollo de Software
33
Domingo Gallardo, DCCIA, Univ. Alicante
35. Ley de Little
•
Relaciona los tres conceptos importantes del flujo:
•
•
•
Througput (TP)
Work-in-Progress (WIP)
Lead Time (LT)
Metodologías Ágiles de Desarrollo de Software
35
Domingo Gallardo, DCCIA, Univ. Alicante
36. ¿Cómo reducir el tiempo de ciclo?
•
Dos formas:
•
•
Aumentar el Througuput
Reducir el Work-In-Progress
Work-In-Progress
LT =
WIP
TP
Lead Time
Throughput
Metodologías Ágiles de Desarrollo de Software
36
Domingo Gallardo, DCCIA, Univ. Alicante
37. Receta para el cambio a Kanban
Metodologías Ágiles de Desarrollo de Software
Domingo Gallardo, DCCIA, Univ. Alicante
38. Receta para el cambio a Kanban
1. Centrarse en la calidad (Focus on Quality)
2. Reducir el Work-In-Progress (Reduce Work-in-Progress)
3. Entregar con más frecuencia (Deliver Often)
4. Equilibrar la demanda con el rendimiento (Balance Demand against
Throughput)
5. Priorizar (Prioritize)
6. Atacar las fuentes de la variabilidad para mejorar la predictibilidad
(Attack Sources of Variability to Improve Predictability)
David J. Anderson, Kanban, Cap. 3
Metodologías Ágiles de Desarrollo de Software
38
Domingo Gallardo, DCCIA, Univ. Alicante