Top Banner
Attack Sources of Variability to Improve Predictability Kanban Recipe for Success: Step Six Jason Yip [email protected] [email protected] @jchyip http://jchyip.blogspot.com
42

Attack Sources of Variability to Improve Predictability

Oct 17, 2014

Download

Business

Sydney Limited WIP Society presentation on Kanban Recipe of Success part 6: Attack Sources of Variability to Improve Predictability.

What is variation? Why do we care about variation? When is variation valuable? Tactics to changing the amount of variation. Tactics to change the consequences of variation.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Attack Sources of Variability to Improve Predictability

Attack Sources of Variability to Improve Predictability

Kanban Recipe for Success: Step Six

Jason [email protected]

[email protected]@jchyip

http://jchyip.blogspot.com

Page 2: Attack Sources of Variability to Improve Predictability

HOMEWORK CHECK

Page 3: Attack Sources of Variability to Improve Predictability

What step(s) did you take to start prioritising?

Page 4: Attack Sources of Variability to Improve Predictability

The Recipe for Success

1. Focus on Quality2. Reduce WIP3. Deliver Often4. Balance Demand Against Throughput5. Prioritise6. Attack Variability to Improve

Predictability

Page 5: Attack Sources of Variability to Improve Predictability

WHAT IS VARIABILITY?

Page 6: Attack Sources of Variability to Improve Predictability
Page 7: Attack Sources of Variability to Improve Predictability

WHY VARIABILITY?

Page 8: Attack Sources of Variability to Improve Predictability

“We cannot add value without adding variability, but we can add variability without adding value.”

Don Reinertsen, The Principles of Product Development Flow

Page 9: Attack Sources of Variability to Improve Predictability

“Variability results in more work-in-progress and longer lead times.”

David Anderson, Kanban

Page 10: Attack Sources of Variability to Improve Predictability

Variability leads to buffers and bottlenecks

http://flic.kr/p/4QofnD

Page 11: Attack Sources of Variability to Improve Predictability

“Consistency leads to better programs. If formatting varies unpredictably, or a loop over an array runs uphill this time and downhill the next, or strings are copied with strcpy here and a for loop there, the variations make it harder to see what’s really going on. But if the same computation is done the same way every time it appears, any variation suggests a genuine difference, one worth noting.”

Brian Kernighan and Rob Pike, The Practice of Programming

Page 12: Attack Sources of Variability to Improve Predictability

Paying attention to variability helps you to see problems

Page 13: Attack Sources of Variability to Improve Predictability

SOURCES OF VARIABILITY

Page 14: Attack Sources of Variability to Improve Predictability

Types of variation• Internal

– Due to the design of the system– Variation is random with no clear assignable cause– Address this by changing the policies and process (aka

“rules of the game”)

• External– Variation caused by events or aspects that are outside your

control– It is possible to assign a cause (aka the external event)– Address this by having systems and structures to “roll with

it” (aka risk management)

Page 15: Attack Sources of Variability to Improve Predictability

Various ways to talk about variation

• Shewart– Chance-cause (random and inherent to system design) vs assignable-

cause (cause-and-effect with external event)

• Alpert / Deming– Common-cause (common to all similarly designed systems) vs

special-cause (new knowledge or event that is different to how the system normally works)

• Feigenbaum– Usual (the variation you’ve learned to expect) vs unusual (any

variation that is not expected) (Also normal vs abnormal)

• Wheeler– Routine (predictable variation characteristic of common causes) vs

exceptional (unpredictable variation as the result of an assignable cause)

http://jchyip.blogspot.com.au/2010/05/different-ways-to-describe-causes-of.html

Page 16: Attack Sources of Variability to Improve Predictability

Internal sources of variability in software development

• Software development process• Project management process• Organisational systems and

structures• Capability of team members• Technology choice

Page 17: Attack Sources of Variability to Improve Predictability

“Simply changing an existing process policy can dramatically reduce sources of variability that affect predictability.”

David Anderson, Kanban

Page 18: Attack Sources of Variability to Improve Predictability

ASIDE: VARIATION IS NOT INHERENTLY EVIL

Page 19: Attack Sources of Variability to Improve Predictability

“We cannot add value without adding variability, but we can add variability without adding value.”

Don Reinertsen, The Principles of Product Development Flow

Page 20: Attack Sources of Variability to Improve Predictability

Which choice has the least variability?

Choice Stakes Payoff Probability

A $15 000 $100 000 50%

B $15 000 $20 000 90%

C $15 000 $16 000 100%

Derived from The Principles of Product Development Flow by Don Reinertsen

Page 21: Attack Sources of Variability to Improve Predictability

Which is the best economic choice?

Choice Stakes Payoff Probability Expected Value

A $15 000 $100 000 50% $35 000

B $15 000 $20 000 90% $3 000

C $15 000 $16 000 100% $1 000

Derived from The Principles of Product Development Flow by Don Reinertsen

Page 22: Attack Sources of Variability to Improve Predictability

Higher variability raises pay-off

From The Principles of Product Development Flow by Don Reinertsen

Page 23: Attack Sources of Variability to Improve Predictability

Don’t “minimise variability” nor “maximise variability”

but rather optimise variability based on context

Page 24: Attack Sources of Variability to Improve Predictability

Don Reinertsen’s two main approaches for dealing with variability

1. Change the amount of variability2. Change the economic consequences

of the variability

Page 25: Attack Sources of Variability to Improve Predictability

TACTICS FOR REDUCING VARIABILITY

Page 26: Attack Sources of Variability to Improve Predictability

Standardise work item size

• Standardise the format (e.g., As a…I want…in order to…)

• Limit the number of types (e.g., S, M, L vs 0 – 100)

Page 27: Attack Sources of Variability to Improve Predictability

Which betting approach has less variation?

1. Flip a coin. Heads, you win $100; tails, you lose $100.

2. Flip a coin 4 times. Each time you flip, heads, you win $25; tails, you lose $25.

Option 1: Chance of losing $100 is 50% (1 in 2)Option 2: Chance of losing $100 is 6.25% (1 in 16)

Derived from The Principles of Product Development Flow by Don Reinertsen

Page 28: Attack Sources of Variability to Improve Predictability

Many small experiments produce less variation than one big one

Page 29: Attack Sources of Variability to Improve Predictability

If it varies too much, do it more often

http://martinfowler.com/bliki/FrequencyReducesDifficulty.html

Automate

Practice

Page 30: Attack Sources of Variability to Improve Predictability

Reuse

… but decide based on economics, not “maximising reuse”

http://en.wikipedia.org/wiki/Vacuum_tube

Page 31: Attack Sources of Variability to Improve Predictability

Pursue high quality

• Peer reviews• Pair programming• Unit tests• Continuous integration• Small batch sizes• Highly cohesive, loosely coupled

architectures

Page 32: Attack Sources of Variability to Improve Predictability

Remove unnecessary ambiguity

Page 33: Attack Sources of Variability to Improve Predictability

Put limits on expedite requests

Page 34: Attack Sources of Variability to Improve Predictability

Process behaviour (aka control) charts

Page 35: Attack Sources of Variability to Improve Predictability

TACTICS FOR IMPROVING THE CONSEQUENCES OF VARIABILITY

Page 36: Attack Sources of Variability to Improve Predictability

“A [schedule] buffer converts uncertain earliness to certain lateness. Thus, it is generally a bad idea to trade cycle time for reduced variability in cycle time.”

Don Reinertsen, The Principles of Product Development Flow

Page 37: Attack Sources of Variability to Improve Predictability

Rapid feedback

• Think Mean Time to Recover vs Mean Time to Failure

Page 38: Attack Sources of Variability to Improve Predictability

Substitute cheap variability for expensive variability

From The Principles of Product Development Flow by Don Reinertsen

Page 39: Attack Sources of Variability to Improve Predictability

HOMEWORK

Page 40: Attack Sources of Variability to Improve Predictability
Page 41: Attack Sources of Variability to Improve Predictability

What is the smallest step you could take to move 1

level up (or more)?

Page 42: Attack Sources of Variability to Improve Predictability

What is your plan to start that step tomorrow?