90
Board of directors Henrik Kniberg Agile/Lean coach www.crisp.se Kanban A Lean approach to Agile software development JFokus January 26, 2010 [email protected] 070 4925284

Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

  • Upload
    ledan

  • View
    233

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

Board of directors

Henrik KnibergAgile/Lean coach

www.crisp.se

KanbanA Lean approach to Agile software development

JFokusJanuary 26, 2010

[email protected] 4925284

Page 2: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

2

Goals of this tutorial

Basic understanding of KanbanWhere it came fromWhat problem it tries to solveUnderlying Lean principlesHow it looks like in practiceHow to get started

Henrik Kniberg 2

Page 3: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

3

FlowExercise

Page 4: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

4

Watch the baton, not the runner!

Henrik Kniberg 4

Page 5: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

5

Cycle time

Henrik Kniberg 5

Cycle time / lead time = The reliable, repeatable time from customer needuntil that need is satisfied (≈ time to market)

Examples:• Time to get my hamburger• Time to resolve support request• Time to get home from work• Time to deliver a feature

Not to be confused with Iteration/Sprint length= release frequency / cadence length

Item in Item out

Your system & resources

Page 6: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

6

Minimize cycle time

Competitive advantageDetect defects earlierLess time for change to happen

Henrik Kniberg 6

Watch the baton!

Page 7: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

7

Problem: Invisible baton

Henrik Kniberg 7

Team 1 Team 2

Managers who don’t know how tomeasure what they want

settle forwanting what they can measure

Russel Ackoff

Page 8: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

8

Optimizing resource utilization = suboptimizing cycle time

Henrik Kniberg 8

100% Road utilization=> Long time to get home

CPU: 100%

CPU: 100%

CPU: 100%

Car in Car out

Http://....

Request in

<html>....

Response out

100% Server utilization=> Long response time

Baton in100% runner utilization=> Lose the race

Baton out

Page 9: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

9

Queuing theory: Little’s law

Smaller batch size => faster cycle time

Henrik Kniberg 9

Total Cycle Time = Number of Things in Process

Average completion rate

Little’s law

2 liters per second 2 liters per second

slowFast

Page 10: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

10

Minimize batch sizeKnowledge is perishable

Henrik Kniberg 10

1 fresh banana per dayMonday Tuesday Wednesday Thursday Friday

... or 5 rotten bananas per week?Monday Tuesday Wednesday Thursday Friday

Page 11: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

11

Little’s law in action

Henrik Kniberg 11

Multitasking

Focusing

A3A2A1

B3B2B1

C3C2C1

Task A Task B Task C

Timeline

Short cycle time

Long cycle time

Total Cycle Time = Number of Things in Process

Average completion rate

1 task in progress

3 tasks in progress

Page 12: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

12Henrik Kniberg 12

Q: What causes multitasking?A: Optimizing for max resource utilization

TP

Project A

Project B

Project C

Project D

Q1 Q2 Q3 Q4

Page 13: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

13

Value stream mapping

Henrik Kniberg 13

Sam Concept pres.

Lisa assigns

resources

Graphics design

Sound design Dev Integr. &

deploy2d 1m

4h6m

8

Game backlog

1w 6m 6m

15

Design-ready games

12

Production-ready games

1m 3w 3m(1m+2m)

3w2h 1d

3 m value added time

25 m cycle time= 12%

Process cycle efficiency

Cross-functional game team

3-4 m cycle time = 6-8x faster

Game team(graphics, sound, dev, integrate)

3-4 months

Page 14: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

14

Optimize the whole

Henrik Kniberg 14

DaveJoe Lisa

Dave

Joe

Lisa

January February March April May June July

6 months

3 months

Done!

Done!

We’re alot faster!

I’m a bitslower

We’re slow!I’m fast!

Page 15: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

15

Problem: Invisible baton

Henrik Kniberg 15

Team 1 Team 2

Managers who don’t know how tomeasure what they want

settle forwanting what they can measure

Russel Ackoff

Page 16: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

16

It’s hard to optimize something that you can’t see

Page 17: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

17

First step: Visualize the baton!

Henrik Kniberg 17

Team 1 Team 2

Todo Doing Donethis week

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Avg lead time: days 3

Todo Doing Donethis week

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Avg lead time: days 20

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse cteturorem ipsum dolor

sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Page 18: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

18

Kaizen

Page 19: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

19

Both are empirical

Henrik Kniberg 19

Many small teams Few large teams

Low WIP limits High WIP limits

Few workflow states Many workflow states

Short iterations Long iterations

Little planning Lots of planning

Capacity(aka velocity)

Lead time(aka cycle time)

.... etc ... .... etc ...

Quality(defect rate, etc)

Predictability(SLA fulfillment, etc)

Kanban is HIGHLY configurable

Great! More options! Oh no, more decisions!

Page 20: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

20

Almost always a good idea

Visualize the workflowLimit WIP (work in process) Short feedback loopsFocus on qualityCadences

Henrik Kniberg 20

Page 21: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

21

PullExercise

Page 22: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

22

Limit work to capacity

Henrik Kniberg 22

Input: 3 customers / hour Output capacity: 2 customers / hour

Page 23: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

23

Pull vs Push

Henrik Kniberg 23

Assigning tasks = pushTaking tasks = pull

Push

Pull

Page 24: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

24

Example: Supermarket pull

Henrik Kniberg 24

Page 25: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

25

Example: Feature pull

Henrik Kniberg 25

Page 26: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

26

Why feature pull is important

Henrik Kniberg 26

Always7%

Often13%

Some-times16%

Rarely19%

Never45%

Features and functions used in a typical system:

Source: Standish Group Study Reported at XP2002by Jim Johnson, Chairman

Half of thefeatures we buildare never used!

Page 27: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

27

Kanban

Page 28: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

28

Kanban

Signaling systemVisualLimited in supply

Henrik Kniberg 28

看板”Visual Card”

Page 29: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

29

Kanban @ Imperial Palace Gardens

Henrik Kniberg 29

Page 30: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

30

Kanban in your wallet

Henrik Kniberg 30

Darn. Forgot to limit.

Page 31: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

31

SupplierBuyer

Kanban @ Toyota

Henrik Kniberg 31

ReceiveConsume Detach Ship Allocate Manufacture

Taiichi OhnoFather of theToyota Production System

The tool used to operate the [Toyota Production] system is kanban.

Page 32: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

32

Kanban in SW development

Henrik Kniberg

Backlog Dev Done

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

UAT Deploy5 3 2 3

FLOW Avg lead time: days 12

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Visualize the workflowLimit WIP (work in progress)

Measure & optimize flow

Pioneered byDavid Andersonin 2004

Page 33: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

33

Evolve your own board!

Henrik Kniberg 33

Some of these photos courtesy ofDavid Anderson, Mattias Skarin,and various other people

Page 34: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

34

One day in Kanban land

Page 35: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

35

”One day in Kanban land”

Henrik Kniberg 35

http://blog.crisp.se/henrikkniberg/tags/kanban/

Page 36: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

36

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 1 – one piece flow

Henrik Kniberg 36

B

C

A

D

E

F

G

H IJ L

KM

Page 37: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

37

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 1 – one piece flow

Henrik Kniberg 37

BC

A

D

E

F

G

H IJ L

KM

Page 38: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

38

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 1 – one piece flow

Henrik Kniberg 38

BC

A

D

E

F

G

H IJ L

KM

Page 39: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

39

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 1 – one piece flow

Henrik Kniberg 39

B

C A

D

E

F

G

H IJ L

KM

Page 40: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

40

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 1 – one piece flow.

Henrik Kniberg 40

B

C A

D

E

F

G

H IJ L

KM

Page 41: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

41

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 41

B

C

A

D

E

F

G

H IJ L

KM

PO

Page 42: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

42

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 42

BC

A

D

E

F

G

H IJ L

KM

PO

Page 43: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

43

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 43

B

C A

D

E

F

G

H IJ L

KM

PO

Page 44: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

44

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 44

B

C A

D

E

F

G

H IJ L

KM

PO

Page 45: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

45

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 45

B

C A

D

F

G

H IJ L

KM

!?

E

PO

Page 46: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

46

NexetDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 46

B

C

A

D

EF

G

H IJ L

KM

!?PO

Page 47: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

47

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 47

B

C

A

D

EF

G

H IJ L

KM

PO

Page 48: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

48

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 48

B

A

D

EF

G

H IJ L

KM

C

PO

Page 49: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

49

NextDev

Done

Backlog 32

In production :o)Ongoing

Scenario 2 – Deployment problem

Henrik Kniberg 49

B

AD

EF

G

H IJ L

KM

C

PO

Page 50: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

50

Bottlenecks

Page 51: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

51

Theory of constraints – Smooth Flow

Reality

Strategy

Goal

Page 52: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

52

Theory of constraints

All systems have a bottleneckWhen you fix it, it jumps to somewhere elese.The whole system performs only as well as its bottleneckEnsure you have slack before & after the bottleneck

Happens automatically with pull schedulingUse the slack to fix the bottleneck

Henrik Kniberg 52

Page 53: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

53

How to find your bottleneck

Henrik Kniberg 53

Next Dev

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Test Deploy

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Integrateorem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Next Dev

orem ipsum dolor sit amet, co nse ctetur

Test Deployorem ipsum dolor sit amet, co nse ctetur orem ipsum dolor

sit amet, co nse ctetur

Integrateorem ipsum dolor sit amet, co nse cteturorem ipsum dolor

sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

22orem ipsum dolor sit amet, co nse ctetur

3orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse cteturorem ipsum dolor

sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

3 3

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Without WIP limits

With WIP limits

Cheap queue

Expensivequeue

• Busy at bottleneck• Slack downstream• Queue upstream

Page 54: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

54

Goal: ”T-shaped” people

Henrik Kniberg 54

DB JavaWebTest Domain CM

Lisa

Joe

Fred

Jenny

David

Erik

Team Skills matrix

I’m good at Java!

I can test, but I’m not so good at it. I don’t know CM

at all. But I’m willing to learn!

Knows a bit about many things

Knows a lot about one thing

Page 55: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

55

Kanban allows both specialists & generalists

Henrik Kniberg 55

Backlog Design

orem ipsum dolor sit amet, co nse ctetur

Fold Tape

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Trim Draw3 2 2 1 4 3

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Page 56: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

56

Cumulative Flow Diagram (CFD)

Henrik Kniberg 56

Backlog Dev Testorem ipsum dolor sit amet, co nse ctetur orem ipsum dolor

sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

Day 4Prod

Page 57: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

57

Cadence

Page 58: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

58

Daily standup meeting

Henrik Kniberg 58Source: Visual management bloghttp://www.xqa.com.ar/visualmanagement/2009/04/daily-scrum-against-the-board/

Page 59: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

59

CadenceScrum team

Henrik Kniberg

week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

Sprint 1

Plan & commit Review(release?)

Kanban team 1

Kanban team 2 week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

Planning cadence (2w)

Sprint 2

Retrospective

Release cadence (1w)

Retrospectives (4w)

Kanban team 3 week 1 week 2 week 3 week 4 week 5 week 6 week 7 week 8

Planning (on demand)

Release (on demand)

Retrospectives (4w)

Page 60: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

60

Reduce transaction costs

Henrik Kniberg 60

Next Dev Test DeployIntegrate223 3 3

Trans cost

”We need to do big batches because

transaction cost is high”

Cost of initializing test environment

”We need to minimize transaction cost so we can do

smaller batches”

Cost of restarting server

Automate init of test environment

Implement hot-reload on server

Trans cost

Economies of Scale Economies of Flow (Lean)

Page 61: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

61

Quality

Page 62: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

62

Quality

Henrik Kniberg 62

Failure demand

Value demand

Defects per unit of valued work

Page 63: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

63

Lean principle: Stop the Line

Henrik Kniberg 63

The build server is your friend! Really!

Page 64: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

64

Optimizing the WIP limit

Page 65: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

65

Optimizing the WIP limit

Henrik Kniberg 6565

To do Doing Doneorem ipsum dolor sit amet, co nse ctetur

1Too low WIP limit

To do Doing Doneorem ipsum dolor sit amet, co nse ctetur

2Just Right WIP limit

To do Doing Doneorem ipsum dolor sit amet, co nse ctetur

5Too high WIP limit

orem ipsum dolor sit amet, co nse ctetur

Zzzzzzzzz

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse cteturPeople

often idle

Slow flow (end-to-end)

People sometimes idle

(slack)

Fast flowTasks rarely idle

Slow flow

Tasks often idleLack of wall

space...

People never idle

Page 66: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

66

Use WIP limits to break vicious cycles

Henrik Kniberg 66

Release seldom

Bigreleases

Releasing is a Pain Release often

Small releases

Releasingis easy

High WIP

Long cycletime

Low quality

WIP limits

Low WIP

Short cycletime

High quality

WIP limits

Page 67: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

67

Evolution of a Kanban board

Page 68: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

2009-08-29orem ipsum dolor sit amet, nse ctetur adi pis cing elit nisl

2009-09-01orem ipsum dolor sit amet, co nse ctetur adi pis cing elit nisl

Analysis Development Acceptance ProdNext

Definition of Done:• Customer accepted• Ready for production

Ongoing Done

Definition of Done:• Code clean & checked in on trunk• Integrated & regression tested• Running on UAT environment

Ongoing DoneOngoing Done

Definition of Done:• Goal is clear• First tasks defined• Story split (if necessary)

2 3 3 2

Feature / story

= completed

= blocked

= who is doing this right now

2009-08-20 2009-09-30

(description)

• Panicfeatures(should be swarmed and kept moving. Interrupt other work and break WIP limits as necessary)

• Priority features• Hard deadline features

(only if deadline is at risk)• Oldest features

2009-09-02orem ipsum dolor sit amet, co nse

2009-08-27orem ipsum dolor sit amet, adi pis cing elit nisl

2009-08-20orem olor sit amet, co nse ctetur adi pis cing elit nisl

2009-08-30

orem ipsum dolor sit amet, co adi pis cing elit nisl

2009-09-08

2009-08-25orem ipsum dolor sit ctetur adi pis cing elit nisl

Task / defectHard deadline(if applicable)Date when

added to board

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

orem ipsum dolor sit amet, co nse ctetur

(description)

(description)

(description)Why

(description)

Who is analyzing / testing right now

= priority= panic

What to pull first

xxxx kjd dj d xxx

Kanban kick-start exampleHenrik Kniberg www.crisp.se/kanban/example

version 1.22009-11-16

(description)

orem ipsum dolor sit amet, co nse ctetur

=task =defect

Page 69: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

69

Estimation & planning

Page 70: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

70

Estimating is optional in Kanban

Henrik Kniberg 70

Sprint 1 Sprint 2 Sprint 3 Sprint 4

Long running taskLong running task

Scrum

Kanban

WIP limit = 3

42 1 4

Velocity = 11

Page 71: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

71

Lightweight estimation techniques

Henrik Kniberg 71

SM L

Hours?Days?

Weeks?

S M L

T-shirt sizing SLA – service level agreement

Example: SLA is 12 days• Can we do this item within 12 days?• If yes: just pull it in.• If no: reject it, or break it down, or

estimate/negotiate

Page 72: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

72

Example: estimation paradox

Henrik Kniberg 72

8 days work5 months cycle time= 9 %

Process cycle efficiency

Prestudies, estimation, resource allocation, approval Develop, test, deploy

Lots of estimation &

prestudy

5 month cycle time

Scared of commitment

Little or noestimation &

prestudy

2 week cycle time

Little fear of commitment

WIP limits

Estimation is sometimes used to manage a problem that was caused by the estimation itself

Page 73: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

73

Using Kanban to visualize the problem

Henrik Kniberg 73

Page 74: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

74

Metrics

Page 75: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

75

Metrics

Henrik Kniberg 75

Cycle time

Releasecapacity(velocity)

Medium-sized MMFs take < 8 days

95% of the time.

Item #25 took 7 days

Last week we released 8

things

Average capacity during Q1 was 6 story points per week

Analyze Dev Test Deploy

WIP (work in progress)

Cumulative Flow DiagramIf we lower WIP limit from 6 to 2 in test we can probably

halve the cycle time!

Value demand15%

Failure demand60%

Undecided 25%

Quality

3 4 6 3

Page 76: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

76

Misc patterns & Tips & Tricks

Page 77: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

77

Process = collection of policiesVisible on the boardBriefContinuously renegotiated as neededCreated on-demandExamples:

Definition of DoneWhat to do when WIP limit is exceededWho decides prioritiesWhen do we do planning?Which types of work items to we pull firstService level agreements

Henrik Kniberg 77

Page 78: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

78

2 tier board with feature swimlanes

Henrik Kniberg 78Source: David Anderson

Page 79: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

79

2 tier board-within-board

Henrik Kniberg 79Source: David Anderson

Page 80: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

80

Stopping dead projects

Henrik Kniberg 80Source: Mattias Skarin

FLOW

Page 81: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

81

Manager removing impediments

2 slots on manager’s doorIf both are full, team can add a new one if they remove a less important oneTeam decides when issue is solved

Henrik Kniberg 81Source: Mattias Skarin

Page 82: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

82

Bootstrapping Kanban

Page 83: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

83

Operations / support team

Typical Scrum => Kanban evolution

Henrik Kniberg 83

Featureteam 1

Featureteam 2

Featureteam 2

Featureteam 1

Featureteam 2

Featureteam 2

Scrum Scrum Scrum Scrum Scrum Scrum

ScrumOperations / support team

Featureteam 1

Featureteam 2

Featureteam 2

Scrum Scrum Scrum

Kanban

Step 1 Step 2 Step 3

Page 84: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

84

Example: Kanbanizing a Scrum team

Henrik Kniberg 84

Sprint After sprintBefore sprint

Page 85: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

85

Kanban bootstrapping1. Define your value stream

• Which part do you intend to control?• Where is your input & output?

2. Define work item types3. Meet with upstream & downstream stakeholders

• Policies, WIP limits• Input coordination• Output coordination• Target cycle time

(SLA – service level agreement)

4. Create Kanban board(+ optionally electronic system)

5. Agree on time for daily standup6. Agree on when to do retrospectives / operations reviews7. Go! Iteratively improve.

Henrik Kniberg 85

Task Bug

Page 86: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

86

Wrapup

Page 87: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

87

RecommendationsVisualize existing process first, then optimize.Put the board in the team roomFocus on exposing problemsKeep the board clean & simple (just like your code...)

Don’t try to get it perfect from start. Let it evolve.Don’t overuse metricsInvolve the team & managers & stakeholdersTake photosMake policies & agreements explicit. Negotiate.Consider getting a coach for Kanban bootstrapping

Henrik Kniberg 87

Page 88: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

88

The Lean & Agile toolkit

Henrik Kniberg 88

Kanban

Scrum

XP

Values & PrinciplesLean, Agile, Theory of Constraints, Systems Thinking, etc

Other lean tools(Value Stream Mapping, Root Cause Analysis, etc)

Page 89: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

89

Perfection is a direction, not a place

Henrik Kniberg

Page 90: Kanban - Jfokus · PDF file[Toyota Production] system is kanban. 32 Kanban in SW development Henrik Kniberg Backlog Dev Done orem ipsum dolo r sitamet, co nse ctetur orem ipsum dolor

90

Expand your toolkit!www.crisp.se/utbildning

Henrik Kniberg

Leading LeanSoftware DevelopmentMarch 4-5

Tom & Mary Poppendieck & Henrik KnibergKanban coaching workshopApril 29-31

David Anderson

Certified ScrumMaster & KanbanFeb 17-19

Kanban AppliedFeb 23

Henrik Kniberg & Mattias SkarinKanban starting points on the web:http://www.crisp.se/kanbanhttp://www.limitedwipsociety.com