An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software...

38
WHY KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group [email protected] [email protected] blog.troytuttle.com twitter.com/troytuttle 1

Transcript of An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software...

Page 1: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

WHY KANBAN?

An Introduction to Kanban and Lean Software Development

Troy Tuttle, Project Lead Consultant with AdventureTech Group

[email protected]

[email protected]

blog.troytuttle.comtwitter.com/troytuttle

1

Page 2: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Motivation2

What is my motivation?

A practicing ―Pragmatic Agilist‖

Context is King

Helping developers with project success

by indentifying and avoiding project

dysfunction

Defining family-friendly definitions of

successful projects.

Page 3: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Is Kanban the next martial arts fad?

What is Kanban?3

Page 4: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Is Kanban the latest miracle cure?

What is Kanban?4

Page 5: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Is Kanban a …

… silver bullet?

What is Kanban?5

Page 6: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Kanban is a transparent, work-limited, pull system. [2]

Kanban is the result of practitioners applying lean

principles to software engineering.

Kanban is influenced heavily by existing first-

generation Agile methodologies.

Kanban is more like a tool than a methodology.

Kanban For Software Development Is:6

Page 7: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Kanban Focus for the Agile Folks

[1]

7

Rather than focusing on being Agile which may (and

should) lead to being successful, Kanban focuses

on becoming successful, which may lead to

being Agile.

Page 8: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

The Pillars of Lean8

Pull

Continuous Flow

Customer Value

Waste Elimination

Continuous Improvement

Taiichi Ohno

W. Edwards Deming

Founder of Toyota

Production Systems

Quality Guru:

System of Profound

Knowledge

Page 9: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Kanban Is

[7]

9

Kanban is translated as ―Visual Card‖

Page 10: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Kanban for Software Principles

[3]

10

Pull value through the Value Stream

Limit WIP (work in progress)

Make it visible!

Page 11: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Value Stream11

Lean software engineering starts with mapping the

value stream.

From the lips of the stakeholder to a production

system.

Try mapping your own value stream.

(Great Reading on the subject of software value

streams from Mary and Tom Poppendieck)

Page 12: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Kanban’s Lean Heritage

[4]

12

Don’t build features that nobody needs right now

Don’t write more specs than you can code

Don’t write more code than you can test

Don’t test more code than you can deploy

Page 13: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Kanban Pull

[1]

13

flow

Page 14: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Phase-based development (waterfall) transfers the

entire batch from state to state.

Existing Agile development transfers small batches

from state to state (iterations).

Lean development’s goal is to transfer one piece at

a time (one piece flow).

Think about watering your garden with a bucket

versus a hose. [1]

Kanban Pull14

Page 15: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Limiting Work In Progress

[3]

15

Given a value stream, a WIP limit governs the number

of work items that can be in a given state at any

instant.

WIP limits are designed to reduce multi-tasking,

maximize throughput, and enhance teamwork.

If there is a problem, we ―stop the line‖ instead of

starting work on a new item.

Page 16: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Limiting Work In Progress

[5]

16

Multitasking Exercise!

A

C

B

1

2

3

I

II

III

Page 17: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Limiting Work In Progress

[1]

17

20% time is lost to context switching per task, so fewer tasks

means less time lost (from Gerald Weinberg, Quality Software

Management: Systems Thinking)

Page 18: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Limiting Work In Progress

[1]

18

Performing tasks sequentially yields results sooner.

(Watch service organizations to see this principle in action.)

Page 19: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Limiting Work In Progress

[1]

19

(3) (2)

Limits

New work items can only be pulled into a state if

there is capacity under the WIP limit.

Page 20: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Little’s Law for Queuing Theory20

Total Cycle Time = Number of Things in Progress /

Average Completion Rate

The only way to reduce cycle time is by either

reducing the WIP, or improving the average

completion rate.

Achieving both is desirable.

Limiting WIP is easier to implement by comparison.

Page 21: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Visualize!

[7, 3]

21

Put work items on a white board and make it visible!

Then have the conversation with the stakeholder, ―this is what we

have in process now, to take on new work, what shall we back

out of the system?

Page 22: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

MMF22

―A minimal marketable feature is a chunk of

functionality that delivers a subset of the customer’s

requirements, and that is capable of returning value

to the customer when released as an independent

entity‖

-- M Denne & H Cleland-Huang, Software by Numbers

Page 23: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

MMF23

MMF’s can be very small (10 minute bug fix), or they can be very large (weeks of feature development). It depends on the context and what the business determines as valuable.

Larger MMF’s are decomposed into granular features. These should be as small as possible and still be independently testable. Traditional XP-style user stories work well.

This relationship can also be expressed as:

feature sets features.

For Agile practitioners, MMF’s in Kanban often replace the practice of time-boxed iterations.

Page 24: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

MMF

[1]

24

A two-tiered Kanban board with MMF’s and user stories.

Page 25: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Example of MMF > User Story > Scenario:

The system should allow company users to resolve

duplicate customer records.

As a data processor, I need to merge two or more duplicate

records into one.

Before merging records, confirm user has ―merge‖ role

permissions in system.

When merging customer records, verify at least one record

contains valid demographic information.

After successful merge, log merge relationship information to

merge log table.

MMF25

Page 26: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

The Estimation Game26

Contrary to popular belief, Kanban does not

require dropping of estimations.

However, many Kanban teams find themselves

estimating far less frequently than first generation

Agile teams or classic phased-based development

teams.

Page 27: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

The Estimation Game27

Kanban practitioners view detailed estimates

through the value stream prism.

Detailed estimates are historically inaccurate in

software development.

Steve McConnell in Software Estimation – Demystifying the

Black Art taught us that highly precise estimates are not

usually highly accurate.

The process of estimation does not get the code base

any closer to production—it can be viewed as waste in

Lean terms.

Page 28: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

The Estimation Game28

In Kanban, detailed estimation can be replaced with cycle time metrics and analysis.

Cycle time is the elapsed time between starting a work item and finishing it.

If MMF’s vary in size, then use relative estimating to determine grouping.

Use T-Shirt sizing S, M, L

Small = 3 days, Medium = 8 days, Large = 20 days

With known cycle times, Service Level Agreements can be established with stakeholders:

―Once we start work on a medium MMF, we expect to complete it in 8 days.‖

Page 29: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Lead Time29

Lead time is customer facing.

Lead time starts when the request is made and stops

when the MMF is delivered.

Lead time measures cycle times plus the backlog

size.

Large backlogs mean longer lead times

Backlogs are ―inventory‖

In Lean, inventory is viewed as waste

Page 30: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

The Estimation Game30

Kanban allows a team to stop playing the

estimation game where value is placed on predicting

when software will be completed.

Instead, teams can project software completion

rates from actual data (cycle and lead times).

The effort that formerly went into improving

prediction practices can now go to improving actual

software delivery.

Estimate when the ―cost of delay‖ is high.

Page 31: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Metrics31

Kanban teams need just a few metrics and tools to

be effective:

Cycle time

Lead time

Cumulative Flow Diagrams

Page 32: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Cumulative Flow Diagram

[3]

32

Page 33: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Improving Performance33

To improve software development performance,

Kanban teams aim to:

Shorten cycle and lead times

Increase throughput

Improve quality

Page 34: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Where is all the Waste?34

Some see Kanban as being overly concerned with

waste elimination.

Kanban leaders suggest following these Lean

priorities:

Value trumps Flow

Flow trumps Waste Reduction

Page 35: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Recipe for Success

[6]

35

Focus on Quality

Reduce Work-in-Progress

Deliver Often

Balance Demand against Throughput

Prioritize

(Recipe from David Anderson, credited with the first Kanban for software

implementation.)

Page 36: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Summary36

Want to try Kanban?

Map your value stream

Establish a pull system

Limit WIP to increase throughput

Make it visible for your team and stakeholders

Doing Scrum Now?

Try implementing the material from Corey Ladas’

Scrum-ban book. [4]

Page 37: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

Interested in Lean or Kanban? Join us for more discussion:

http://groups.google.com/group/limitedwipsocietykc

[email protected]

[email protected]

blog.troytuttle.com

twitter.com/troytuttle

Thank you!37

Page 38: An Introduction to Kanban and Lean Software … KANBAN? An Introduction to Kanban and Lean Software Development Troy Tuttle, Project Lead Consultant with AdventureTech Group Troy.Tuttle@adventuretechgroup.com

References38

(1) Karl Scotland – http://availagility.wordpress.com and KanbanDev Yahoo! Group.

(2) Eric Willeke - http://manicprogrammer.com/cs/blogs/willeke/default.aspx and

KanbanDev Yahoo! group

(3) David Peter Joyce - http://leanandkanban.wordpress.com and ―Pulling Value

Lean and Kanban‖

(4) Corey Ladas - Scrumban book, www.leansoftwareengineering.com and

KanbanDev Yahoo! group.

(5) Clarke Ching - www.clarkeching.com

(6) David Anderson – www.agilemanagement.net

(7) Kenji Hiranabe - http://www.infoq.com/articles/agile-kanban-boards