rolling rocks downhill @ agile cymru by clarke ching
TRANSCRIPT
How to:
Roll Rocks
Downhill Accelerate Agile with Goldratt’s TOC.
www.Rolls.Rocks @clarkeching
How to:
Roll Rocks
Downhill Accelerate Agile with Goldratt’s TOC.
www.Rolls.Rocks @clarkeching
By Clarke Ching
Before After
Rolling Rocks
Downhill
Big Batch Small Batch Limited WIP
Accelerate by improving the Bottleneck
Iterative
Incremental
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
A: The chain gets stronger
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
A: The chain gets stronger
Q: Or, what else might happen?
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
A: The chain gets stronger
Q: Or, what else might happen?
A: If that link is no longer the weakest, the chain just gets heavier
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
A: The chain gets stronger
Q: Or, what else might happen?
A: If that link is no longer the weakest, the chain just gets heavier
Q: Generally, what happens if you strengthen any link other than the weakest?
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
A: The chain gets stronger
Q: Or, what else might happen?
A: If that link is no longer the weakest, the chain just gets heavier
Q: Generally, what happens if you strengthen any link other than the weakest?
A: The chain gets heavier, not stronger.
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
A: The chain gets stronger
Q: Or, what else might happen?
A: If that link is no longer the weakest, the chain just gets heavier
Q: Generally, what happens if you strengthen any link other than the weakest?
A: The chain gets heavier, not stronger.
The “weakest link” is our “Constraint”.
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
A: The chain gets stronger
Q: Or, what else might happen?
A: If that link is no longer the weakest, the chain just gets heavier
Q: Generally, what happens if you strengthen any link other than the weakest?
A: The chain gets heavier, not stronger.
The “weakest link” is our “Constraint”.
That’s where we should focus our THINKING.
How do you make a CHAIN stronger?
Q: What is your GOAL?
A: STRENGTH (not weight)
Q: What determines the STRENGTH of the chain?
A: The Weakest Link
Q: What happens if you strengthen the weakest link?
A: The chain gets stronger
Q: Or, what else might happen?
A: If that link is no longer the weakest, the chain just gets heavier
Q: Generally, what happens if you strengthen any link other than the weakest?
A: The chain gets heavier, not stronger.
The “weakest link” is our “Constraint”.
That’s where we should focus our THINKING.
Improving anywhere else is either pointless or BAD
UNLESS it improves the performance
of the constraint.
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time
Accelerate?What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Fixed Date
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Fixed Date
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Fixed Date
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Guaranteed min scope - variable duration
Fixed Date
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Guaranteed min scope - variable duration
Fixed Date
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Guaranteed min scope - variable duration
Fixed Date
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Guaranteed min scope - variable duration
Variable scope
Fixed Date
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Guaranteed min scope - variable duration
Variable scope
Fixed Date
What is your Goal?
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Guaranteed min scope - variable duration
Variable scope
Fixed Date
What is your Goal?
Better odds of on-time
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Guaranteed min scope - variable duration
Variable scope
Fixed Date
What is your Goal?
Better odds of on-time
Maybe more variable scope
1. Deliver more value— profitability— accelerate the flow of £££££
2. Deliver on time— predictability -> … reputation … credibility
Accelerate?
Dec 1st
“Running 10% faster, gifts you 1 months extra “runway” on a 10 month project.
Guaranteed min scope - variable duration
Variable scope
Fixed Date
What is your Goal?
Better odds of on-time
Maybe more variable scope
Perhaps deliver early
Example 1. Request: Eliminate the 120 top-priority defects, ASAP.
Team of 16 - mixed roles & skill-sets
COBOL, ASP, Oracle
Example 1. Request: Eliminate the 120 top-priority defects, ASAP.
Team of 16 - mixed roles & skill-sets
time
# 120
COBOL, ASP, Oracle
Example 1. Request: Eliminate the 120 top-priority defects, ASAP.
Team of 16 - mixed roles & skill-sets
Q: Do you have estimates for each defect? A: No, we’ve given up estimating. Q: Why?A: Cos easy looking stuff usually turns out tricky, and so does the hard looking stuff. Q: Is it really that unpredictable?A1: It takes 2-60 days, typically. A2: “We do 10 a month, average”
time
# 120
COBOL, ASP, Oracle
Example 1. Request: Eliminate the 120 top-priority defects, ASAP.
Team of 16 - mixed roles & skill-sets
Q: Do you have estimates for each defect? A: No, we’ve given up estimating. Q: Why?A: Cos easy looking stuff usually turns out tricky, and so does the hard looking stuff. Q: Is it really that unpredictable?A1: It takes 2-60 days, typically. A2: “We do 10 a month, average”
time
#
BEFORE - 10 / M
120
COBOL, ASP, Oracle
Example 1. Request: Eliminate the 120 top-priority defects, ASAP.
Team of 16 - mixed roles & skill-sets
Q: Do you have estimates for each defect? A: No, we’ve given up estimating. Q: Why?A: Cos easy looking stuff usually turns out tricky, and so does the hard looking stuff. Q: Is it really that unpredictable?A1: It takes 2-60 days, typically. A2: “We do 10 a month, average”
time
#
BEFORE - 10 / M
120
COBOL, ASP, Oracle
Example 1. Request: Eliminate the 120 top-priority defects, ASAP.
Team of 16 - mixed roles & skill-sets
Q: Do you have estimates for each defect? A: No, we’ve given up estimating. Q: Why?A: Cos easy looking stuff usually turns out tricky, and so does the hard looking stuff. Q: Is it really that unpredictable?A1: It takes 2-60 days, typically. A2: “We do 10 a month, average”
time
#
BEFORE - 10 / MAFTER???
120
COBOL, ASP, Oracle
The Buffalo Story started out as an email joke.
Music: http://www.bensound.com
The Buffalo Story started out as an email joke.
An imagined conversation between Norm and Cliff, from “Cheers”, the TV
Show.
Music: http://www.bensound.com
image: wikipedia
Well, you see, Norm, it’s like this.A herd of buffalo can only move as fast as the slowest buffalo.
slowest
fastest
Well, you see, Norm, it’s like this.A herd of buffalo can only move as fast as the slowest buffalo.The slowest buffalo stays at the back and the faster buffalo runin front, but at the slower speed.Otherwise, the herd would split apart.
slowest
fastest
Like this.And when they were split apart they were prone toattack by wolves.Evolution favoured the herds that didn’t spread apart.
slowest
fastest
When these tightly packed herds were hunted, thewolves killed the slowest and weakest buffalo.
slowest
fastest
When these tightly packed herds were hunted, thewolves killed the slowest and weakest buffalo.The guys at the back.
slowest
fastest
When these tightly packed herds were hunted, thewolves killed the slowest and weakest buffalo.The guys at the back.That made the remaining herd stronger and faster.
slowest
fastest
When these tightly packed herds were hunted, thewolves killed the slowest and weakest buffalo.The guys at the back.That made the remaining herd stronger and faster.
slowest
fastest
In much the same way, the human brain can only operate as fastas the slowest brain cells.
slowest
fastest
In much the same way, the human brain can only operate as fastas the slowest brain cells.[Hmmm … ]
slowest
fastest
In much the same way, the human brain can only operate as fastas the slowest brain cells.[Hmmm … ]Now, as we know, excessive intake of alcohol kills brain cells.
slowest
fastest
In much the same way, the human brain can only operate as fastas the slowest brain cells.[Hmmm … ]Now, as we know, excessive intake of alcohol kills brain cells.
But naturally, it attacks the slowest and weakest brain cells first.
slowest
fastest
In this way, regular consumption of beer eliminates the weaker
brain cells, making the brain a faster and more efficientmachine.
slowest
fastest
In this way, regular consumption of beer eliminates the weaker
brain cells, making the brain a faster and more efficientmachine.And that, Norm, is why you always feel smarter after a few beers.
slowest
fastest
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
Step 1: Identify your bottleneck
TOC’s 5 step recipe
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
Q: Where’s your “slowest buffalo?”
Step 1: Identify your bottleneck
TOC’s 5 step recipe
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
Step 1: Identify your bottleneck
TOC’s 5 step recipe
Step 2: Exploit
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
How can we speed up the slowest buffalo?
Step 1: Identify your bottleneck
TOC’s 5 step recipe
Step 2: Exploit
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
How can we speed up the slowest buffalo?
Step 1: Identify your bottleneck
TOC’s 5 step recipe
Step 2: Exploit
test cleverer & faster simple “time management” stuff
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
Step 1: Identify your bottleneck
TOC’s 5 steprecipe
Step 2: Exploit
Step 3: Subordinate
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
How can the “faster buffalo” help?
Step 1: Identify your bottleneck
TOC’s 5 steprecipe
Step 2: Exploit
Step 3: Subordinate
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
How can the “faster buffalo” help?
Step 1: Identify your bottleneck
TOC’s 5 steprecipe
Step 2: Exploit
Step 3: Subordinate
SLOW DOWN! Don’t distract the testers
Help them.
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
Step 1: Identify your bottleneck
TOC’s 5 steprecipe
Step 2: Exploit
Step 3: Subordinate
Step 4: Elevate
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
Do we need to get/pay for more “slower buffalo”?
Step 1: Identify your bottleneck
TOC’s 5 steprecipe
Step 2: Exploit
Step 3: Subordinate
Step 4: Elevate
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
Step 1: Identify your bottleneck
TOC’s 5 steprecipe
Step 2: Exploit
Step 3: Subordinate
Step 4: Elevate
bottleneck moved?
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
Be careful though: your bottleneck may move and you might miss it!
You’ll need to change your exploit & subordinate rules.
Step 1: Identify your bottleneck
TOC’s 5 steprecipe
Step 2: Exploit
Step 3: Subordinate
Step 4: Elevate
bottleneck moved?
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
That’s like getting 4+ extra staff for free. Without working any harder.
It was less stressful than normal.
Not Started Analysis Design Program Test
20/m 10/m15/m25/m
It took: 20 minutes to figure out what to do.
1 week to “sell it” 8 months to do it.
- Clarke Ching
“The covert enemy of productivity is trying to keep everyone busy.
And yet … that is so counter-intuitive and counter-cultural it scares people.”
- Clarke Ching
“Testing is usually the bottleneck in teams new to Agile.
Usually, we want it to be development”
Example 2. Request: Resuscitate a project which “looks” “Agile” but isn’t producing potentially
shippable code.Team of 80-100
- mixed roles & skill-sets
old ASP, old Oracle,
new .net
Same situation:Testing was the bottleneck, but developers were - obliviously - racing ahead writing “code” which wasn’t tested.
slowest herd - testers fastest herd - developers
Same situation:Testing was the bottleneck, but developers were - obliviously - racing ahead writing “code” which wasn’t tested.
slowest herd - testers fastest herd - developers
Same situation:Testing was the bottleneck, but developers were - obliviously - racing ahead writing “code” which wasn’t tested.
We needed to get them running as 1 herd again.
slowest herd - testers fastest herd - developers
slowest herd fastest herd
STOPSPEED-UP
HELPWe’d built up too much untested code so we started a test phase.
slowest herd fastest herd
STOPSPEED-UP
HELPWe’d built up too much untested code so we started a test phase.
slowest herd fastest herd
STOPSPEED-UP
HELPWe’d built up too much untested code so we started a test phase.After that, we restarted development, working in small batches, learning how to deliver potentially shippable working software,
with testing as our bottleneck.
TestingDevelopers
With (1) our bottleneck id’d, we kept (2) exploiting & (3) subordinating & (4) elevating.
TestingDevelopers
With (1) our bottleneck id’d, we kept (2) exploiting & (3) subordinating & (4) elevating.
• Recruited more/better testers • Stopping devs coding stuff that can't be
tested; • More emphasis on dev testing / quality • Devs helped with some of the testing
(automating stuff); • Testers prevented defects (3 amigos, etc); • Testers moved from shotgun to sniper mode; • Protecting dev & test from starvation.
TestingDevelopers
With (1) our bottleneck id’d, we kept (2) exploiting & (3) subordinating & (4) elevating.Then, 18 months later - (5) our bottleneck moved into dev.
• Recruited more/better testers • Stopping devs coding stuff that can't be
tested; • More emphasis on dev testing / quality • Devs helped with some of the testing
(automating stuff); • Testers prevented defects (3 amigos, etc); • Testers moved from shotgun to sniper mode; • Protecting dev & test from starvation.
TestingDevelopers
With (1) our bottleneck id’d, we kept (2) exploiting & (3) subordinating & (4) elevating.Then, 18 months later - (5) our bottleneck moved into dev.
• Recruited more/better testers • Stopping devs coding stuff that can't be
tested; • More emphasis on dev testing / quality • Devs helped with some of the testing
(automating stuff); • Testers prevented defects (3 amigos, etc); • Testers moved from shotgun to sniper mode; • Protecting dev & test from starvation.
TestingDevelopers
With (1) our bottleneck id’d, we kept (2) exploiting & (3) subordinating & (4) elevating.Then, 18 months later - (5) our bottleneck moved into dev.
• Recruited more/better testers • Stopping devs coding stuff that can't be
tested; • More emphasis on dev testing / quality • Devs helped with some of the testing
(automating stuff); • Testers prevented defects (3 amigos, etc); • Testers moved from shotgun to sniper mode; • Protecting dev & test from starvation.
Buffer
Big project 8-10 Business Analysts
Slicing & Dicing preparing a “buffer” of fuel.
Protecting the bottleneck
Don’t let the engine run out of fuelDon’t put too much fuel in the tank
Don’t put sugar in the tankBuffer
Protecting the bottleneck
Don’t let the engine run out of fuel
1. Run at the speed of your bottleneck.
2. Plan according to your bottleneck.
Don’t let the engine run out of fuel
Don’t put too much fuel in the tank
Don’t put sugar in the tank
3. Chose work to get the biggest “bang from your bottleneck’s buck”
Protecting the bottleneck
Example 3. Problem: What features should we build next?
Same project as before
Business / Operational Bottleneck.
Example 3. Problem: What features should we build next?
Same project as before
Business / Operational Bottleneck.
Market demand: (from sales figures or customer’s comments)
“OMG the customers won’t buy this product because the competitor has this, but we don’t”
“The customers HATE This. It’s hard to use / hard to sell.”
Market demand: (from sales figures or customer’s comments)
“OMG the customers won’t buy this product because the competitor has this, but we don’t”
“The customers HATE This. It’s hard to use / hard to sell.”
Capacity demand: (from analysis or looking around)
“We’re selling so well but we need to Automate processes A, B and C”.
“The cancellation process needs to be self-serve.”
“We are selling so we need more disk space.”
Failure demand:
- “We’re getting loads of problems with BLA … we need to fix BLA.”
Market demand: (from sales figures or customer’s comments)
“OMG the customers won’t buy this product because the competitor has this, but we don’t”
“The customers HATE This. It’s hard to use / hard to sell.”
Capacity demand: (from analysis or looking around)
“We’re selling so well but we need to Automate processes A, B and C”.
“The cancellation process needs to be self-serve.”
“We are selling so we need more disk space.”
Marketing - bottleneck is lack of sales Servicing - bottleneck internal
Them? - or-
Them?
Business - not IT
Marketing work to sell more?
ORServicing work to process more?
Marketing - bottleneck is lack of sales Servicing - bottleneck internal
Them? - or-
Them?
Business - not IT
We had an internal bottleneck. We couldn’t process everything we could sell. A wonderful problem to have!We ignored ALL marketing features (for many, many months)We 80/20’d all of the capacity related features
Then worked on them according to “bang for buck”.
business processes
Example 4. Request: Build a new business from scratch.ASAP, of course.
Team of 60mixed roles & skill-
sets
Big clunky Vendor of a big clunky
package!
We ensured Testing was NOT the bottleneck.
Developers - the “strategic” bottleneck
Internal herd
Testers - spare capacity, rapid response
We ensured Testing was NOT the bottleneck.
Developers - the “strategic” bottleneck
Internal herd
Testers - spare capacity, rapid response
Vendor - “waterfall” elephant in the room
We ensured Testing was NOT the bottleneck.
Q: How do you eat an elephant?
Developers - the “strategic” bottleneck
Internal herd
Testers - spare capacity, rapid response
Vendor - “waterfall” elephant in the room
We ensured Testing was NOT the bottleneck.
Q: How do you eat an elephant?A: One bite at a time.
Developers - the “strategic” bottleneck
Internal herd
Testers - spare capacity, rapid response
Vendor - “waterfall” elephant in the room
We ensured Testing was NOT the bottleneck.
Q: How do you eat an elephant?A: One bite at a time.Q: So, how should we eat this elephant - without “going all agile on them (which they won’t do)?
Developers - the “strategic” bottleneck
Internal herd
Testers - spare capacity, rapid response
Vendor - “waterfall” elephant in the room
We ensured Testing was NOT the bottleneck.
Q: How do you eat an elephant?A: One bite at a time.Q: So, how should we eat this elephant - without “going all agile on them (which they won’t do)?Q: One small-ish batch at a time - i.e. 4 “drops” rather than 1
Developers - the “strategic” bottleneck
Internal herd
Testers - spare capacity, rapid response
Vendor - “waterfall” elephant in the room
Developers - the “strategic” bottleneck
Internal herd
Testers - spare capacity, rapid response
Vendor - “waterfall” elephant in the room
Summary
TOC is about focusing - finding the thing which limits - or “constrains” your system (relative to
its goal).
Step 1: Identify your bottleneck
TOC’s 5 steprecipe
Step 2: Exploit
Step 3: Subordinate
Step 4: Elevate
bottleneck moved?
Agile is about delivering business improvements
frequently.
Keep the “herd together” by limiting
WIP & building potential shippable
software.
Go faster by following the 5-step
recipe.