using kanban and cfd to effectively manage agile testing

35
1 developme nt testing effort time end of cycle Lean in Agile Testing Using Kanban and Cumulative Flow to effectively manage Agile Testing Yuval Yeret Copyright notice These slides are licensed under Creative Commons. Feel free to use these slides & pictures as you wish, as long as you leave my name and the Agilesparks logo somewhere. /

Upload: yuval-yeret

Post on 15-May-2015

40.981 views

Category:

Technology


0 download

DESCRIPTION

How can Lean/Kanban concepts help manage dev/test more effectively in an Agile environment? Excerpt from Agile Testing training by Agilesparks

TRANSCRIPT

Page 1: Using kanban and cfd to effectively manage agile testing

1

development

testi

ng

effo

rt

timeend of cycle

Lean in Agile Testing

Using Kanban and Cumulative Flow to effectively manage

Agile TestingYuval Yeret

Copyright notice

These slides are licensed under Creative Commons. Feel free to use these slides & pictures as you wish, as long as you leave my name and the Agilesparks logo somewhere. /

Page 2: Using kanban and cfd to effectively manage agile testing

2

Throughout a traditional project/release, workload is usually unbalanced, creating severe bottlenecks

development

testi

ng

effo

rt

time end of cycle

Page 3: Using kanban and cfd to effectively manage agile testing

3

Let’s start with a classic burndown/burnup chart

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Burndown / Burnup

DONE (BURNUP)ACTUAL REMAINING EFFORTPLANNED REMAINING EFFORT

Time

Page 4: Using kanban and cfd to effectively manage agile testing

4

So we want to get to this…

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Burndown / Burnup

DONE (BURNUP)ACTUAL REMAINING EFFORTPLANNED REMAINING EFFORT

Time

Page 5: Using kanban and cfd to effectively manage agile testing

5

Keys to steady burnup

• Effectively sized and testable stories– Allow finishing work end to end quickly

• Focus on few stories at a time, rather than work on too much at once

Page 6: Using kanban and cfd to effectively manage agile testing

6

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Burndown / Burnup

Time

How do we Visualize the work status in more depth?

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

TODO Work in

Process (WIP)

Done

Page 7: Using kanban and cfd to effectively manage agile testing

7

The Cumulative Flow Diagram

• Introduced in Lean Product Development by Don Reinertsen and David Anderson

• Visualize where the Features/Stories are in the workflow across time

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

TODO Work in

Process (WIP)

Done

Page 8: Using kanban and cfd to effectively manage agile testing

8

TO DO IN PROGRESS DONE

Elad

Inbar

Elad

Mushon

Mushon

Inbar

InbarMushon

Elad

TO DO IN PROGRESS DONE

1 8 1

TO DO

IN PROGRESS DONE

1 8 1

How to do a CFD

Page 9: Using kanban and cfd to effectively manage agile testing

9

How to do a CFD

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Page 10: Using kanban and cfd to effectively manage agile testing

10

What you see on a CFD

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Work in Process (WIP)

Average Cycle Time

TODO

Done

Burnup

Total Scope

Page 11: Using kanban and cfd to effectively manage agile testing

11

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Elaborating the WIP

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

TODO Dev

Done

Test

Heavy load on QA

Heavy load on Dev

Page 12: Using kanban and cfd to effectively manage agile testing

12

Discussion – What do you see happening in your teams?

• Are all stories finished each Sprint?– How are the teams achieving that?

• What happens to those stories that are not finished?

• How does the open defects count look during the release?

Page 13: Using kanban and cfd to effectively manage agile testing

13

Lets Sprint!

This is the Kanban Story Board for a Scrum Sprint

First – lets see how it looks without any focus on Flow

Page 14: Using kanban and cfd to effectively manage agile testing

14

First day - starting many stories at once - each to his

own

Page 15: Using kanban and cfd to effectively manage agile testing

15

Day 4

after a few days, a story is

finally ready for testing...

Page 16: Using kanban and cfd to effectively manage agile testing

16

Page 17: Using kanban and cfd to effectively manage agile testing

17

Page 18: Using kanban and cfd to effectively manage agile testing

18

Page 19: Using kanban and cfd to effectively manage agile testing

19

Day 6

What do you think so far?

Page 20: Using kanban and cfd to effectively manage agile testing

20

Day 8

Page 21: Using kanban and cfd to effectively manage agile testing

21

Board at Sprint Review Time

What’s this ?

Why?

Page 22: Using kanban and cfd to effectively manage agile testing

23

“Scrumfall” in CFD

1 2 3 4 5 6 7 8 9 100

20

40

60

80

100

120

Work in Process (WIP)

Average Cycle Time

TODO

Done

Burnup

Total Scope

Page 23: Using kanban and cfd to effectively manage agile testing

241 2 3 4 5 6 7 8 9 10

0

20

40

60

80

100

120

If we use a WIP Limit...

TODO

Dev

Done

Test

Work in Process (WIP)

Average Cycle Time

Page 25: Using kanban and cfd to effectively manage agile testing

26

Pop Quiz

Full story at http://yuvalyeret.com/2010/08/03/finding-the-right-dev-to-test-ratio-when-working-in-kanban/

A lot of

WIP in

Test

Empty Test Done

Empty downstrea

m (Bubble)

Dev Done

almost Full

Test Bottleneck!

Page 26: Using kanban and cfd to effectively manage agile testing

27

Dealing with bottlenecks – tactical level

D

DD

TTT

3

How can I help

current stories?

Help us with

Blocker

Fix open defects on our Stories

Help us automate tests for this story

WIP Limit!Can’t start new DEV

work!

Page 27: Using kanban and cfd to effectively manage agile testing

28

Dealing with bottlenecks – strategic view

DD

D

TTT

3

How can I help you be more

efficient?

Help us do ATDD so you can develop based on our

test expectations,

and also offload some

automation effort from us

Automate

Setups and Test

Data

Improve Dev Done quality! – less retesting

for us

Half of our work is not core test work. Maybe you can take some of it, or

help us reduce waste there

Come pair with us, you’ll

probably see things from our perspective and

have some ideas how to

help!

Creating more Blue Light - TOC

Page 28: Using kanban and cfd to effectively manage agile testing

29

What happens if DONE DONE is a lot of work?

• Examples:– Non-functional Testing– E2E Testing– I18N/L10N/Documentation– Test Automation

• Alternatives– Make the sprint longer to include them –

BAD– Don’t include them – how to manage

them then?

Page 29: Using kanban and cfd to effectively manage agile testing

30

DONEDONE DONE

READY

Flowing all the way to DONE DONE

Page 30: Using kanban and cfd to effectively manage agile testing

31

Example Policy - Classes of Service for Downstream Involvement

• Red – Must be involved hands on• Yellow – Advise/Consult, but most

work in Teams• Green – don’t need any

involvement• Why? To get best results with

available resources

Page 31: Using kanban and cfd to effectively manage agile testing

32

Pop Quiz• What do you think is happening here?• Do we have a bottleneck ?

Page 32: Using kanban and cfd to effectively manage agile testing

33

Build Quality In

Page 33: Using kanban and cfd to effectively manage agile testing

34

Jidoka – Stop the line

• Don’t let defects accumulate and hurt you later

• Keep the open defects count LOW

Page 34: Using kanban and cfd to effectively manage agile testing

35

Summary

Limit work in process:Stop starting, start

finishing

Page 35: Using kanban and cfd to effectively manage agile testing

36

Want to learn more?

• Lean-flavored Agile Testing Training by Agilesparks– http://

www.agilesparks.com/files/AgileTestingAS.pdf

• Kanban training by Agilesparks– http://

www.agilesparks.com/files/KanbanforManagers.pdf

• Contact us at [email protected] for more information