You are on page 1of 47

Improving throughput

with the
Theory of Constraints
and
Queuing Theory
www.journey-to-better.com
Theory of Constraints

www.journey-to-better.com
Theory of Constraints (TOC)

Process Process Process


Idea
A B C
Customer

Q: Where should we
strive to increase
throughput?

www.journey-to-better.com
Theory of Constraints (TOC)

Process Process Process


Idea
A B C
Customer

A: We don’t know…

www.journey-to-better.com
Theory of Constraints (TOC)

Process Process Process


Idea
A B C
5 units 2 units 3 units Customer
Per week Per week Per week

Now, where should we


strive to increase
throughput?

www.journey-to-better.com
Theory of Constraints (TOC)

Process Process Process


Idea
A B C
5 units 2 units 3 units Customer
Per week Per week Per week

A: Process B. Spending effort elsewhere will


not help; in fact it will probably slow down
delivery of value to the customer.

www.journey-to-better.com
Theory of Constraints (TOC)
"a chain is no stronger than its weakest link“

Improving strong links,


does not strength the chain.

To achieve more of your goal,


improve your weakest link.

www.journey-to-better.com
Five Focusing Steps
1. Identify the constraint Get the most out of the constraint,
with only minor changes.
2. Exploit the constraint
3. Subordinate all else
4. Elevate the constraint
5. Repeat
Major changes to the constraint,
Including increasing capacity.

www.journey-to-better.com
Practical TOC
We are going to:

1. Map team workflow to Task Board


2. Populate the board
3. Run the system
4. Use TOC to manage flow

www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done

Map team workflow

www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done

Populate with current state

www.journey-to-better.com
1. Identify the constraint
Constraint: The resource or policy that
prevents the organization from obtaining more
of the goal.

Symptoms
• Work piles up waiting to be processed by the
constraint.
• Resource is heavily stressed.
• Resources downstream from constraint are
regularly idle.

www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing Ready

Split Testing column

www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing Ready Doing Ready Doing Ready Doing Ready

Split all other columns

www.journey-to-better.com
2. Exploit the constraint
How do we get the most capacity out of the
constrained process?

Some options
• Shield the team from interruptions.
• Limit their WIP.
• Reduce the non value add work that they do
(i.e. reports).

Note: Do not ask them to do overtime.

www.journey-to-better.com
(5)
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing Ready Doing Ready Doing Ready Doing Ready

Exploit the constraint


Limit WIP in Testing

www.journey-to-better.com
(5)
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing Ready Doing Ready Doing Ready Doing Ready

Let it run
Constraint remains

www.journey-to-better.com
3. Subordinate all else
Align the whole system or organization to support
the decisions made above.

Some options
• Limit the WIP of upstream teams to match the
constraint.
• Get upstream teams to do prep work to make the
job of the constraint easier.
• Focus upstream teams on improving their quality.
• Pair upstream with downstream team members,
heading to cross functional teams.
(5) (5) (5) (5)
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing Ready Doing Ready Doing Ready Doing Ready

Subordinate all other workflow steps

www.journey-to-better.com
(5) (5) (5) (5)
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing Ready Doing Ready Doing Ready Doing Ready

Let it run
Constraint remains

www.journey-to-better.com
4. Elevate the constraint
Make other major changes needed to break the
constraint.
A.k.a. Enhance the capability of the constraint to
increases its throughput further.

Some options
• Improve their tools
• Improve their environment
• Improve their team work
• Hire more people
Why do we not do this first?
www.journey-to-better.com
(5) (5) (5) (5)
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing Ready Doing Ready Doing Ready Doing Ready

Elevate the constraint


Devs do more test prep work.
Dev-QA pairing

www.journey-to-better.com
(5) (5) (5) (5)
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing Ready Doing Ready Doing Ready Doing Ready

Let it run
Constraint has been broken

www.journey-to-better.com
5. Repeat
• The bottleneck should now have shifted.
• Start all over again

www.journey-to-better.com
TOC Summary
Process Process Process
Idea
A B C
Customer

Five Focusing Steps


1. Identify the constraint
2. Exploit the constraint
3. Subordinate all else
4. Elevate the constraint
5. Repeat
www.journey-to-better.com
Queuing Theory

www.journey-to-better.com
Queuing Theory
Began by answering the question:

How many phone lines will the Copenhagen


Telephone exchange need to handle peak
load?

Paper published by
Agner Krarup Erlang in 1909
www.journey-to-better.com
Serious math

Not for today

www.journey-to-better.com
Simple principles
To increase throughput:
• Reduce utilisation
• Reduce batch size
• Reduce item size

www.journey-to-better.com
Why reduce utilisation

Queuing Theory says that in a system with variability,


increased resource utilisation leads to an increase in cycle
time.

Software development has lots of variability.

Past a tipping point the increase in cycle time is exponential.

www.journey-to-better.com
Tipping point
Some examples:
• Computer CPU
• Network Router
• Building Fire Exit
Cycle Time

• Road

0 Utilisation 100

www.journey-to-better.com
Tipping Point
Tipping Point in action

Shockwave Traffic Jam Video

Utilisation above the capacity of the road,


just one more car,
created unevenness,
created delays,
greatly increased cycle time.
www.journey-to-better.com
Why reduce batch size?
• Littles Law is part of Queuing Theory

Work In Progress (WIP)


Avg. Cycle Time =
Avg. Throughput Rate

Large batches increase WIP,


which increases Cycle time,
which usually reduces Throughput.
www.journey-to-better.com
Why reduce item size?
Large items take longer to process,
leading to:
• Queues (extra WIP)
• Variability (the bad kind)

www.journey-to-better.com
Options to reduce cycle time

Reduce Utilization

and/or

Reduce Batch Size

and/or

Reduce Item Size

www.journey-to-better.com
Exercise – Improve highway throughput

https://www.flickr.com/photos/thienzieyung/
Highway - Reduce Utilisation
Q: How would we reduce utilisation?

www.journey-to-better.com
Highway - Reduce Utilisation
Q: How would we reduce utilisation?
A: Announce blockage on the radio,
and/or notify ahead of the blockage and slow incoming traffic.

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

www.journey-to-better.com
Highway - Reduce Batch Size
Q: How would we reduce batch size?

www.journey-to-better.com
Highway - Reduce Batch Size
Q: How would we reduce batch size?
A: Only allow a couple of car to enter at one time.

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

www.journey-to-better.com
Highway - Reduce Item Size
Q: How would we reduce item size?

www.journey-to-better.com
Highway - Reduce Item Size
Q: How would we reduce item size?
A: Replace Trucks with Cars, Cars with Motorcycles.

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

www.journey-to-better.com
Queuing Theory in agile

How does it lower Utilization?


• Saying No. i.e. “Yes you can have that later.”, “We
expect delivery in June, can you wait until then.”

www.journey-to-better.com
Queuing Theory in Scrum

How does it lower Utilization?


• Team members 100% allocated.
• Team pulls in work to sprint, leaving some capacity for
unknowns. i.e. Less than the tipping point.

How does it lower Batch Size?


• Sprint length limits the batch size. i.e. 2w is half 4w.

How does it lower Item Size?


• Time boxing encourages splitting stories and tasks.

www.journey-to-better.com
Queuing Theory in Kanban
How does it lower Utilization?
• Pull approach does not over commit workers. i.e. Less
than the tipping point.
• Limiting WIP

How does it lower Batch size?


• Limiting input queues. i.e. ‘Selected’, ‘Next’.

How does it lower Item size?


• Building a dry stone wall approach.

www.journey-to-better.com
Summary – Queuing Theory
To increase throughput:

Lower Smaller Smaller


Utilisation Batches Items

www.journey-to-better.com
Contact Details
Twitter @andrewrusling
Blog www.journey-to-better.com
SlideShare www.slideshare.net/andrewrusling
E-mail andrewrusling@hotmail.com
LinkedIn www.linkedin.com/in/andrewrusling
Google+ +AndrewRusling

www.journey-to-better.com

You might also like