Kanban

701 views
568 views

Published on

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)

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
701
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Kanban

  1. 1. Kanban II Sesión 6a Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante
  2. 2. Juego: Pasar las monedas Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante 2
  3. 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
  4. 4. Resultado típico Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante 4
  5. 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. 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. 7. 1. Visualizar el flujo de trabajo Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante
  8. 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. 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. 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. 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. 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. 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. 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. 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. 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. 17. Buffers Henrik Kniberg, Lean From the Trenches Metodologías Ágiles de Desarrollo de Software 17 Domingo Gallardo, DCCIA, Univ. Alicante
  18. 18. Estadísticas Henrik Kniberg, Lean From the Trenches Metodologías Ágiles de Desarrollo de Software 18 Domingo Gallardo, DCCIA, Univ. Alicante
  19. 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. 20. 2. Limitar el WIP Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante
  21. 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. 22. Un límite por estado del flujo Metodologías Ágiles de Desarrollo de Software 22 Domingo Gallardo, DCCIA, Univ. Alicante
  23. 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
  24. 24. Limitando el WIP se aumenta el throughput © Henrik Kniberg Metodologías Ágiles de Desarrollo de Software 24 Domingo Gallardo, DCCIA, Univ. Alicante
  25. 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
  26. 26. Optimizar el límite de WIP © Henrik Kniberg Metodologías Ágiles de Desarrollo de Software 26 Domingo Gallardo, DCCIA, Univ. Alicante
  27. 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. 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. 29. 3. Medir y optimizar el flujo de trabajo Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante
  30. 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. 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. 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. 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
  34. 34. Work-In-Progress Metodologías Ágiles de Desarrollo de Software 34 Domingo Gallardo, DCCIA, Univ. Alicante
  35. 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. 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. 37. Receta para el cambio a Kanban Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante
  38. 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

×