38
Metodologías Ágiles de Desarrollo de Software Domingo Gallardo, DCCIA, Univ. Alicante Kanban II Sesión 6a

Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Kanban IISesión 6a

Page 2: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Juego: Pasar las monedas

2

Page 3: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

3 rondasCada 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

216

3 rounds

Henrik Kniberg

Round A: Batch size 20

Round B: Batch size 5

Round C: Batch size 1

How long did each worker take?

Lisa

David

Jack

Maria

Round A

Round B

Round C

When did the customer receive the first coin?

When did the customer receive the last coin?

Each manager: •  Start the timer when your worker receives coin #1 •  Stop the timer when your worker sends coin #20

216

3 rounds

Henrik Kniberg

Round A: Batch size 20

Round B: Batch size 5

Round C: Batch size 1

How long did each worker take?

Lisa

David

Jack

Maria

Round A

Round B

Round C

When did the customer receive the first coin?

When did the customer receive the last coin?

Each manager: •  Start the timer when your worker receives coin #1 •  Stop the timer when your worker sends coin #20

216

3 rounds

Henrik Kniberg

Round A: Batch size 20

Round B: Batch size 5

Round C: Batch size 1

How long did each worker take?

Lisa

David

Jack

Maria

Round A

Round B

Round C

When did the customer receive the first coin?

When did the customer receive the last coin?

Each manager: •  Start the timer when your worker receives coin #1 •  Stop the timer when your worker sends coin #20

¿Cuánto tarda cada trabajador? Ronda 1 Ronda 2 Ronda 3

Lisa

David

Martín

María¿Cuándo recibe el cliente la primera moneda?

¿Cuándo recibe el cliente la última moneda?

Ronda 2: tamaño del batch 5

Ronda 3: tamaño del batch 1

Ronda 1: tamaño del batch 20

3

Page 4: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Resultado típico

4

Page 5: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Algunas preguntas

• ¿Qué ha pasado con el tiempo total? ¿Por qué?• ¿Qué ha pasado con el tiempo de cada trabajador individual? ¿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é representan las monedas?• ¿Qué no es aplicable en el desarrollo de software?

5

Page 6: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Resumen prácticas Kanban

1. Visualizar el flujo de trabajo2. Limitar el Work In Progress3. 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

6

Page 7: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

1. Visualizar el flujo de trabajo

Page 8: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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?

8

Page 9: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Historias de usuario Como <rol> quiero <característica> para <beneficio>

Como estudiante quiero generar un PDF con mi expediente para guardar un resumen de mi expediente y poder entregarlo a quien me lo pida

IndependentNegotiableValuableEstimableSmallTestable

Acrónimo creado por Bill Wakewww.xp123.comUna historia no se resuelve con

un método de un API. Debemos implementar todos susaspectos: interfaz de usuario,código de cliente, servidor, basede datos, etc.

9

Page 10: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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

10

Page 11: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Post-it con el ítem de trabajo

CREAR PDF CON LAFICHA INFORMATIVADEL ESTUDIANTE

10-10-13 24-10-13

#TSK: 1304

M

@ Avatars: nitsnets

• Descripción del ítem de trabajo. Concisa, precisa y entendible por todos los miembros del equipo.

• Fecha de comienzo

• Quién está trabajando en el ítem. Lo ideal sería un avatar pegado encima de la etiqueta.

• Plazo de finalización

• Código de identificación con el que podemos encontrar más información sobre el ítem en otro lugar (sistema on-line, etc.)

• Indicador de progreso (cuánto se ha avanzado en el ítem)

• Tamaño del ítem (S,M,L)

11

Page 12: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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

12

Page 13: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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)

13

Page 14: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Un ejemplo de tablero - Lean from the Trenches

Henrik Kniberg, Lean From the Trenches

14

Page 15: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Políticas en el tablero

Henrik Kinberg, Lean From the Trenches15

Page 16: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Diferentes tipos de trabajo

Henrik Kniberg, Lean From the Trenches

16

Page 17: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Buffers

Henrik Kniberg, Lean From the Trenches

17

Page 18: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Estadísticas

Henrik Kniberg, Lean From the Trenches18

Page 19: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Escalar el tablero: tres equipos trabajando en el mismo proyecto

Henrik Kniberg, Lean From the Trenches19

Page 20: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

2. Limitar el WIP

Page 21: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Límite de trabajos en progreso

Henrik Kniberg, Lean From the Trenches21

Page 22: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Un límite por estado del flujo

22

Page 23: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

¿Por qué limitar el WIP?

• Evitar exceso de multitarea• Evitar sobrecargas en las siguientes partes de la cadena de proceso

(downstream)• 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

23

Page 24: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Limitando el WIP se aumenta el throughput

© Henrik Kniberg24

Page 25: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

¿Cuál es el límite óptimo?

• Se obtiene midiendo, experimentando y mejorando• Empezar usando alguna regla sencilla: 2n-1, siendo n el número de

personas trabajando en esa fase• Estudiar el flujo y optimizar el límite (Kanban es un proceso empírico)

25

Page 26: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Optimizar el límite de WIP

© Henrik Kniberg26

Page 27: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

El límite de WIP obliga a terminar

• Frase importante en Kanban

• El límite de WIP obliga al equipo a centrarse en terminar tareas antes de poder acometer nuevas

Stop starting, start finishing

27

Page 28: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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)

28

Page 29: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

3. Medir y optimizar el flujo de trabajo

Page 30: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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

Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ

Eficienciadel ciclo deproceso

30

Page 31: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Cycle Time o Lead Time

• Tiempo medio que tarda un ítem de trabajo en ser procesado

Henrik Kniberg, Lean from the Trenches

31

Page 32: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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

32

Page 33: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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

33

Page 34: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Work-In-Progress

34

Page 35: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Ley de Little

• Relaciona los tres conceptos importantes del flujo:• Througput (TP)• Work-in-Progress (WIP)• Lead Time (LT)

35

Page 36: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

¿Cómo reducir el tiempo de ciclo?

• Dos formas:• Aumentar el Througuput• Reducir el Work-In-Progress

WIPTP

Lead Time

Throughput

Work-In-Progress

LT =

36

Page 37: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

Receta para el cambio a Kanban

Page 38: Kanban IIconstruir el tablero Kanban Henrik Kniberg & Mattias Skarin, Kanban and Scrum, InfoQ Eficiencia del ciclo de proceso 30 Metodologías Ágiles de Desarrollo de Software Domingo

Metodologías Ágiles de Desarrollo de SoftwareDomingo Gallardo, DCCIA, Univ. Alicante

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

38