Andrew rusling 21 experiments to increase velocity

65
21 Experiments to increase your Velocity www.journey-to-better.com

Transcript of Andrew rusling 21 experiments to increase velocity

Page 1: Andrew rusling 21 experiments to increase velocity

21 Experiments

to increase

your Velocity

www.journey-to-better.com

Page 2: Andrew rusling 21 experiments to increase velocity
Page 3: Andrew rusling 21 experiments to increase velocity

What if…

Page 4: Andrew rusling 21 experiments to increase velocity
Page 5: Andrew rusling 21 experiments to increase velocity
Page 6: Andrew rusling 21 experiments to increase velocity
Page 7: Andrew rusling 21 experiments to increase velocity

Lights out

Page 8: Andrew rusling 21 experiments to increase velocity

Run to exit?

Page 9: Andrew rusling 21 experiments to increase velocity

Chaos

Page 10: Andrew rusling 21 experiments to increase velocity

Why?

Page 11: Andrew rusling 21 experiments to increase velocity

Chaos in development

• Rushing

• Competing

• Shifting goals

• Misalignment

• Indecision

• Shortcuts

Page 12: Andrew rusling 21 experiments to increase velocity

@AndrewRusling

Agile Coach

Page 13: Andrew rusling 21 experiments to increase velocity
Page 14: Andrew rusling 21 experiments to increase velocity
Page 15: Andrew rusling 21 experiments to increase velocity

Terminology

Velocity ~= Throughput

www.journey-to-better.com

Page 16: Andrew rusling 21 experiments to increase velocity

Source of Experiments

Two Theories

Four Principles

21 Experiments

www.journey-to-better.com

Page 17: Andrew rusling 21 experiments to increase velocity

Queuing Theory

www.journey-to-better.com

Page 18: Andrew rusling 21 experiments to increase velocity

www.journey-to-better.com

Page 19: Andrew rusling 21 experiments to increase velocity

Serious math

Not for today

www.journey-to-better.com

Page 20: Andrew rusling 21 experiments to increase velocity

Simple principles

To increase velocity, reduce

www.journey-to-better.com

Utilisation Batch Size Item Size

Page 21: Andrew rusling 21 experiments to increase velocity

System with Variability

Why reduce utilisation?

www.journey-to-better.com

Velocity

Cycle

Time

Resource

Utilisation

Page 22: Andrew rusling 21 experiments to increase velocity

Tipping point

Utilisation0 100

Cycle

Tim

e

Tipping Point

Some examples:

• Computer CPU

• Building Fire Exit

• Road

Page 23: Andrew rusling 21 experiments to increase velocity

Tipping Point in action

www.journey-to-better.com

Page 24: Andrew rusling 21 experiments to increase velocity

Why reduce batch size?

Littles Law

Avg. Cycle Time =

Work In Progress (WIP)

Avg. Velocity

www.journey-to-better.com

Velocity

Cycle

Time

WIP

Batch

Size

Page 25: Andrew rusling 21 experiments to increase velocity

Why reduce item size?

www.journey-to-better.com

Velocity

Queue

Size

(WIP)

Item

SizePredictability

Bad

Variability

Cycle

Time

Page 26: Andrew rusling 21 experiments to increase velocity

Improving freeway velocity

Image by Atlantacitizen at the English language Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=1811360

Page 27: Andrew rusling 21 experiments to increase velocity

Reducing utilisation

www.journey-to-better.com

Image by: https://www.flickr.com/photos/highwaysagency/

• Radio messages

• Signs

• Promote Car Pooling

• Promote Public Transport

• Tolls

• High Taxes and fees

• Limit access by registration

• Add more lanes

Page 28: Andrew rusling 21 experiments to increase velocity

Reducing batch size

Image by: https://www.flickr.com/photos/29233640@N07/

www.journey-to-better.com

• Control entry points

• Stagger work times

• Multi nucleolus city

Page 29: Andrew rusling 21 experiments to increase velocity

Reducing item size

Image by: https://www.flickr.com/photos/null0/

Replace Buses with Cars, Cars with Bikes.

www.journey-to-better.com

Page 30: Andrew rusling 21 experiments to increase velocity

Queuing Theory

is baked into

agile & Scrum

www.journey-to-better.com

Good news!

Image by: https://www.flickr.com/photos/jeffreyww/

Page 31: Andrew rusling 21 experiments to increase velocity

Queuing Theory in agile

agile lowers Utilization by

• Promoting sustainable development.

• Customer collaboration.

agile lowers Batch Size by

• Focus on early delivery of Working Software.

agile lowers Item Size by

• Focus on simplicity & business feedback.

www.journey-to-better.comImage: http://www.agilemanifesto.org/

Page 32: Andrew rusling 21 experiments to increase velocity

Queuing Theory in Scrum

Scrum lowers Utilization by

• Team members 100% allocated.

• Team pulls in work to sprint.

Scrum lowers Batch Size by

• Sprint length.

Scrum lowers Item Size by

• Time boxing & D.O.D.

www.journey-to-better.com

Page 33: Andrew rusling 21 experiments to increase velocity

Utilisation experiments

• Pull in less total Story Points (-20%)

• Commit to less team hours (-20%)

• Limit # of I.P. User Stories (p/2)

• Show requesters your Scrum board

Page 34: Andrew rusling 21 experiments to increase velocity

Batch size experiments

• Split up Releases (½)

• Split up Epics/Features (3 to 12)

• Shorten your Sprints (-1w)

Page 35: Andrew rusling 21 experiments to increase velocity

Item Size Experiments

• Split up your User Stories (# in sprint ~= p)

• Use Spikes

• Practice Simplicity

• Split up your Tasks (max 1d)

Page 36: Andrew rusling 21 experiments to increase velocity

To increase velocity:

Lower

Utilisation

Work on

smaller batches

Work on

smaller items

Queuing Theory Summary

www.journey-to-better.com

Page 37: Andrew rusling 21 experiments to increase velocity

Theory of Constraints

www.journey-to-better.com

Page 38: Andrew rusling 21 experiments to increase velocity

Taken by fir0002 | flagstaffotos.com.auCanon 20D + Canon 400mm f/5.6 L - Own work, GFDL 1.2, https://commons.wikimedia.org/w/index.php?curid=5305901

Why add just one lane?

Page 39: Andrew rusling 21 experiments to increase velocity

Why not replace them?

Page 40: Andrew rusling 21 experiments to increase velocity

Focusing our efforts

www.journey-to-better.com

IdeaProcess

AProcess

BProcess

C

Customer

• A?• B?• C?• A, B & C?• Need more info?

Page 41: Andrew rusling 21 experiments to increase velocity

Focusing our efforts

5 units per week

2 units per week

3 units per week

www.journey-to-better.com

IdeaProcess

AProcess

BProcess

C

Customer

• A?• B?• C?• A, B & C?• Need more info?

Page 42: Andrew rusling 21 experiments to increase velocity

Theory of Constraints (TOC)

"a chain is no stronger than its

weakest link“

Improving strong links, does not

strengthen the chain.

To achieve more of your goal,

improve your weakest link.

www.journey-to-better.com

Page 43: Andrew rusling 21 experiments to increase velocity

Five Focusing StepsConstraint

1. Identify the constraint

2. Cheap changes

3. Align everyone

4. Expensive changes

5. Repeat

Page 44: Andrew rusling 21 experiments to increase velocity

Applying TOC in Scrum

We are going to:

1. Map team workflow

2. Populate a Scrum board

3. Use TOC to increase velocity

www.journey-to-better.com

Page 45: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Map team workflow

www.journey-to-better.com

Page 46: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Populate with current state

www.journey-to-better.com

Page 47: Andrew rusling 21 experiments to increase velocity

1. Identify the constraint

Symptoms

• Work waiting in front of the constraint.

• Resource is heavily stressed.

• Starvation downstream.

www.journey-to-better.com

Constraint

Page 48: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Where is the constraint?

www.journey-to-better.com

Page 49: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing Ready

Split Testing column

1st Possibility

www.journey-to-better.com

Page 50: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing Ready

Split Testing column

2nd Possibility

www.journey-to-better.com

Page 51: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing ReadyDoing ReadyDoing ReadyDoing Ready

Split all other columns

www.journey-to-better.com

Page 52: Andrew rusling 21 experiments to increase velocity

2. Cheap Changes

Some experiments:

• Shield them from interruptions.

• Limit their WIP.

• Reduce their non value adding work.

No overtime!www.journey-to-better.com

Page 53: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing ReadyDoing ReadyDoing ReadyDoing Ready

(5)

Cheap Changes

Limit WIP in Testing

www.journey-to-better.com

Page 54: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing ReadyDoing ReadyDoing ReadyDoing Ready

(5)

Let it run

Constraint remains

www.journey-to-better.com

Page 55: Andrew rusling 21 experiments to increase velocity

3. Align everyone

Some experiments:

• Limit WIP of upstream to match.

• Upstream do preparation work.

• Upstream improve their quality.

• Pair upstream with constraint staff.

www.journey-to-better.com

Page 56: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing ReadyDoing ReadyDoing ReadyDoing Ready

(5)(5)(5)(5)

Align everyone

Match upstream WIP to constraint

Devs do more test prep work.

Dev-QA pairing

www.journey-to-better.com

Page 57: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing ReadyDoing ReadyDoing ReadyDoing Ready

(5)(5)(5)(5)

Let it run

Constraint remains

www.journey-to-better.com

Page 58: Andrew rusling 21 experiments to increase velocity

4. Expensive Changes

Some experiments:

• Improve their tools.

• Improve their environment.

• Improve their team work.

• Hire more people.

www.journey-to-better.com

Page 59: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing ReadyDoing ReadyDoing ReadyDoing Ready

(5)(5)(5)(5)

Expensive Changes

Improve tools (reduce manual effort)

Get Devs to help execute tests

Hire another tester

www.journey-to-better.com

Page 60: Andrew rusling 21 experiments to increase velocity

Backlog Analysis Coding Review Testing Accept Done

Doing ReadyDoing ReadyDoing ReadyDoing Ready

(5)(5)(5)(5)

Let it run

Constraint has been broken

www.journey-to-better.com

Page 61: Andrew rusling 21 experiments to increase velocity

5. Repeat

• The bottleneck should now have shifted.

• Start all over again.

www.journey-to-better.com

Page 62: Andrew rusling 21 experiments to increase velocity

Scrum enables TOC

• Task board

• Stand upIdentify

• Focus on Sprint Goal

• Scrum Master

Cheap Changes

• Shared Team Success

• Self Organising Team

Align Everyone

• Retrospective

• Self Organising Team

Expensive Changes

Page 63: Andrew rusling 21 experiments to increase velocity

Questions

Analogies

Utilisation, Batch Size, Item Size

Queuing theory in Agile

Queuing theory in Scrum

Improving the weakest link

Five Focusing Steps

Scrum enables TOC

Real life examples

Experiments

Contact: @andrewrusling [email protected]

Slides: http://bit.ly/21ExperimentsToImproveYourVelocity

Page 64: Andrew rusling 21 experiments to increase velocity

QT Experiment Summary

• Pull in less total Story Points (-20%)

• Commit to less team hours (-20%)

• Limit # of I.P. User Stories (people/2)

• Show requesters your Scrum board

• Split up Releases (½)

• Split up Epics/Features (3 to 12 sub items)

• Shorten your Sprints (-1 week)

• Split up your User Stories (# in sprint ~= people)

• Use Spikes

• Practice Simplicity

• Split up your Tasks (max 1d)

Page 65: Andrew rusling 21 experiments to increase velocity

TOC Experiment Summary

• Shield them from interruptions.

• Limit their WIP.

• Reduce their non value adding work.

• Limit WIP of upstream to match.

• Upstream do preparation work.

• Upstream improve their quality.

• Pair upstream with constraint staff.

• Improve their tools.

• Improve their environment.

• Improve their team work.

• Hire more people.