Aims of this presentation
For each theory:
1. Explain it in simple terms
2. Show practical application
www.journey-to-better.com
Theory of Constraints (TOC)
IdeaProcess
AProcess
BProcess
C
Customer
Where should we strive to increase throughput?
www.journey-to-better.com
Theory of Constraints (TOC)
IdeaProcess
AProcess
BProcess
C
Customer
Where should we strive to increase throughput?
5 units Per week
2 units Per week
3 units Per week
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
1. Identify the constraint
2. Exploit the constraint
3. Subordinate all else
4. Elevate the constraint
5. Repeat
Five Focusing Steps
Get the most out of the constraint,
with only minor changes.
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 increase throughput
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 ReadyDoing ReadyDoing ReadyDoing Ready
Split all other columns
www.journey-to-better.com
2. Exploit the constraint
Get the most capacity out of the constrained process, with only minor changes
Some options:
• Shield them from interruptions.
• Limit their WIP.
• Reduce their non value add work.
Note: Do not ask them to do overtime.
www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing ReadyDoing ReadyDoing ReadyDoing Ready
(5)
Exploit the constraintLimit WIP in Testing
www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing ReadyDoing ReadyDoing ReadyDoing Ready
(5)
Let it runConstraint 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 WIP of upstream to match.
• Upstream do preparation work.
• Upstream improve their quality.
• Pair upstream with constraint staff.
www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing ReadyDoing ReadyDoing ReadyDoing Ready
(5)(5)(5)(5)
Subordinate all elseMatch upstream WIP to constraint
Devs do more test prep work.Dev-QA pairing
www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing ReadyDoing ReadyDoing ReadyDoing Ready
(5)(5)(5)(5)
Let it runConstraint 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
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing ReadyDoing ReadyDoing ReadyDoing Ready
(5)(5)(5)(5)
Elevate the constraintImprove tools (reduce manual effort)
Get Devs to help execute testsHire another tester
www.journey-to-better.com
Backlog Analysis & Plan Coding Review Testing Accept Done
Doing ReadyDoing ReadyDoing ReadyDoing Ready
(5)(5)(5)(5)
Let it runConstraint 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
To increase throughput
apply the Five Focusing Steps:
1. Identify the constraint
2. Exploit the constraint
3. Subordinate all else
4. Elevate the constraint
5. Repeat
Summary – Theory of Constraints
www.journey-to-better.com
Minor changes
Large changes
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
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
Utilisation0 100
Cycle
Tim
e
Tipping Point
Some examples:
• Computer CPU
• Network Router
• Building Fire Exit
• Road
www.journey-to-better.com
Tipping Point in action
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
Avg. Cycle Time =
Work In Progress (WIP)
Avg. Throughput Rate
www.journey-to-better.com
Throughput
Cycle Time
WIP
Batch Size
Why reduce item size?
Large items take longer to process,
leading to:
• Queues (extra WIP)
• Variability (the bad kind)
www.journey-to-better.com
Highway - Reduce Utilisation
Q: How would we reduce utilisation?
A: Announce blockage radio & signs.
www.journey-to-better.com
Image: https://www.flickr.com/photos/highwaysagency/
Highway - Reduce Batch Size
Q: How would we reduce batch size?
Image: https://www.flickr.com/photos/29233640@N07/
www.journey-to-better.com
Highway - Reduce Item Size
Q: How would we reduce item size?
Image: https://www.flickr.com/photos/null0/
A: Replace Trucks with Cars, Cars with Motorcycles.
www.journey-to-better.com
The good news
Queuing Theory is already built into:
• agile
• Scrum
• Kanban
www.journey-to-better.com
Queuing Theory in agile
How does agile lower Utilization?
• Promoting sustainable development.
• Customer collaboration.
How does agile lower Batch Size?
• Focus on early delivery of Working Software.
How does agile lower Item Size?
• Focus on business feedback & simplicity.
www.journey-to-better.comImage: http://www.agilemanifesto.org/
Queuing Theory in Scrum
How does Scrum lower Utilization?
• Team members 100% allocated.
• Team pulls in work to sprint.
How does Scrum lower Batch Size?
• Sprint length.
How does Scrum lower Item Size?
• Time boxing & D.O.D. encourage
splitting items.
www.journey-to-better.com
Queuing Theory in Kanban
How does Kanban lower Utilization?
• Pull approach.
• Limiting WIP.
How does Kanban lower Batch size?
• Limiting input queues.
How does Kanban lower Item size?
• Building a dry stone wall approach…
Image: https://www.flickr.com/photos/bods/www.journey-to-better.com
To increase throughput:
Lower
UtilisationWork on
smaller batches
Work on
smaller items
Summary – Queuing Theory
www.journey-to-better.com
Contact Details
Twitter @andrewrusling
Blog www.journey-to-better.com
SlideShare www.slideshare.net/andrewrusling
E-mail [email protected]
Google+ +AndrewRusling
www.journey-to-better.com