SlideShare a Scribd company logo
Pushing the bottleneck
Predicting what will break next in your SDLC
Lead Consultant & Tech Evangelist
Eric is Lead Consultant at IBM
UrbanCode Products where I help
customers get the most out of their
build, deploy and release processes.
Today he works with customers and
industry leaders to figure out this
DevOps thing.
Eric Minick
eminick@us.ibm.com
@EricMinick
The plan
 Theory of constraints in a nutshell
 Finding bottlenecks
 Predicting the next bottleneck
 Common bottleneck pushing patterns
 Q&A
Theory of constraints
in a nutshell
A bottleneck is a constraint
Maximum
pouring speed
Only by increasing flow through the constraint
can overall throughput be increased*
Making the bottle
wide down here does
not help
* The Goal: a process of ongoing improvement. Goldratt eta al
Optimize at your constraint
Can pour faster now
Your system must have a measureable goal
My goal is to empty a
wine bottle quickly
Simplified five step plan
1. Identify the system’s most severe constraint
2. Decide how to get the most out of the constraint
3. Subordinate everything else to the above constraint
4. Make changes to expand constraint’s capacity
5. Once constraint is relieved, return to step 1
Example: Slow QA cycles
1. Identify the system’s most
severe constraint
2. Decide how to get the most
out of the constraint
3. Subordinate everything else
to the above constraint
4. Make changes to expand
constraint’s capacity
5. Once constraint is relieved,
return to step 1
1. It takes too long to test our
changes. Everyone else waits
2. Testers should focus on
exploratory testing
3. Devs help with regression
tests. Ops prioritizes QA.
4. Dev & QA work together to
automate regression tests
5. Find the next bottleneck
Wait, what’s our goal in software?
 Generally: turn ideas into business
value
 Measuring “business value” hard
Emptying wine bottles only relevant if dev speed is the constraint
and you believe in the Ballmer Peak (http://xkcd.com/323/)
?
Wait, what’s our goal in software?
 Generally: turn ideas into business
value
 Measuring “business value” hard
 Features delivered minus bugs is a
decent approximation
– …but rewards building useless features.
Emptying wine bottles only relevant if dev speed is the constraint
and you believe in the Ballmer Peak (http://xkcd.com/323/)
?
Three key measures
 Lag time: how long from idea to value?
 Throughput: how much delivered value
per unit time?
 Cost: what does it cost to deliver value?
?
Finding the bottlenecks
Most teams can feel the constraint
 What are you waiting on?
 Where’s the pain?
Constraints before you in a
process feel like not enough
work.
Constraints after you in a
process are annoying or
painful
If it hurts, do it more often
 Painful processes often grow
exponentially worse with large
batch sizes.
 Examples
– Integration work
– Releases
– Bug Triage
– Updating databases
– Visiting the dentist
http://martinfowler.com/bliki/FrequencyReducesDifficulty.html
Time between doing it
Pain
Use Lean techniques to measure
 What does it take to get a change from idea to production?
–At each phase measure wait time and work time
 Long wait times indicate large batch sizes or backlogs
image credits: http://commons.wikimedia.org/wiki/File:Diagram_spaghetti_kilka_produktow.PNG
http://www.michaelnygard.com/blog/2008/02/outrunning_your_headlights.html
Manual fix & verify spaghetti
Bug fix & verify value stream
720
3600
240
2880
720
3600
240
15
15
120
60
15
15
60
Waiting Working
12000 300
1. Feature build
2. Build deployed
3. Bug reported
4. Dev fixes
5. Fix built
6. Fix deployed
7. Tester verifies
Seeing the “next” bottleneck
QA Scenario
Dev
Produces a
nightly build
Twice weekly,
2 hour deploy
to Test Lab
3 Days to test
each drop
Dev
produces a
nightly build
Twice weekly,
2 hour deploy
to Test Lab
1.5 Days to test
each drop
If we improve test speed, our constraint moves.
Examining a constraint
• Manual process
• Limited staff
• Production releases have priority
Why can we only deploy twice a
week to QA?
Tackling the constraint
• Manual process
• Limited staff
• Production releases have priority
Why can we only deploy twice a
week to QA?
• Automate processes
• Hire more staff
• Prioritize QA Releases
Options
Imagine a 1 day test cycle
Dev
produces a
nightly build
2 hour
deploy to
Test Lab
1.0 Days to
test each
drop
¼ day deploy downtime becomes turns 1 day test cycle into
two days.
Tackling the constraint
• Manual process
• Limited staff
• Production releases have priority
Why can we only deploy twice a
week to QA?
• Automate processes
• Hire more staff
• Prioritize QA deploys
Options
Short term approach
Long term approach
Measuring utilization helps with this prediction
 “Feeling” the pain isn’t enough to predict the next constraint
 There may be no pain at the next constraint today
When something is free, it is used more
 Example: Amazon Prime. For $79/yr, customers get free 2
day shipping on everything.
“…Customers spent as much as 150% more at
Amazon after they became Prime members.
Subscribers not only ordered more often … they
started buying things at Amazon that they
probably wouldn’t have in the past” *
* http://business.time.com/2013/03/18/amazon-prime-bigger-more-powerful-more-profitable-than-
anyone-imagined/
Consider implications of making something free
If builds, deploy, regression tests are free…
We’re going to be
testing lots more.
Better buy some
hardware.
Common “next bottleneck” patterns
After build, deploy is next
 Build guy & deploy guy
used to be in sync
 A CI server can do
hundreds of builds per day
 Agile tends to make
Operations a constraint
Knowing my stuff
compiles at all times is
great. I want to know if
it passes functional
tests too.
As tests shift left, expensive tests constrain
 Developers run more integration tests
 Some tests use expensive resources
–pay per use web services, mainframes, production systems…
 Stubbing those resources becomes important
– known as “service virtualization”
Concurrent agile dev requires more test labs
 More code is compiling, and set to be released “soon”
 Need more environments to test changes in
– Pressure for Platform as a Service
Frequent releases demand fast feedback
 Frequent releases enable experimentation
 Monitoring of business outcomes required
 Architectural pressures to support A/B testing
♫
Stop ignoring difference
between features delivered
and value delivered
If we keep chasing constraints,
where does it end?
You may end up with Continuous Deployment
Build
Run thousands of tests
Deploy to some servers
Monitor
Deploy to remaining
servers
Summary
 Optimizations other than at the constraint don’t help
 “Breaking” one constraint will expose the next
 Patterns or analysis can be used to predict next constraint
 Continual Improvement, Continual Improvement, Continual
Improvement, Continual Improvement…
IBM will collaborate with you to
understand your current situation,
goals and constraints. The
Assessment and Planning
Workshop will aim to capture
sufficient information to make
specific recommendations for
improvement and implementation.
 Intended Audience:
Key leadership from practice areas and
stakeholder organizations
 Value Proposition
Clear recommendations for capability
improvements aligned to your business goals
Initial Architecture
Adoption roadmap based on proven best
practices
 Activities
Workshop planning
Assessment and Planning Workshop
Collaborative discussion on current status, future
goals and adoption requirements
Produce Deliverable
 Deliverables
Current Status and Improvement
Recommendations
Architecture
Adoption Roadmap
Assessment and Planning Workshop
More resources
Urbancode.com/resources
Continuous Delivery Maturity Model
Deployment Automation Basics
Applying Lean Principals to Software Delivery
Blogs.urbancode.com
Twitter.com/UrbanCode
Facebook.com/IBMUrbanCodeProducts
SlideShare.net/Urbancode
40
SlideShare.net/Urbancode
@EricMinick

More Related Content

PPTX
Continuous Delivery
Dmitry Buzdin
 
PPTX
Practicing Agile through Scrum
Naveen Kumar Singh
 
PPTX
Continuous integration in large programs
Naveen Kumar Singh
 
PDF
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Codemotion
 
PDF
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Codemotion
 
PDF
Scrum vs Kanban - Implementing Agility at Scale
Cory Foy
 
PPTX
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf
 
PPTX
Becoming Agile - Challenge the Traditional Thinking
AgileSparks
 
Continuous Delivery
Dmitry Buzdin
 
Practicing Agile through Scrum
Naveen Kumar Singh
 
Continuous integration in large programs
Naveen Kumar Singh
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Codemotion
 
Scrum vs Kanban - Implementing Agility at Scale
Cory Foy
 
WinOps Conf 2016 - Gael Colas - Configuration Management Theory: Why Idempote...
WinOps Conf
 
Becoming Agile - Challenge the Traditional Thinking
AgileSparks
 

What's hot (20)

PPTX
DevOps for the sysadmin
Robert Nelson
 
PPTX
Introduction to continuous delivery
OlympicSoftware
 
PPTX
Reduce WIP and Deliver Often: Kanban Recipe for Success Steps 2 and 3
Jason Yip
 
PPT
Kanban VS Scrum
Mikalai Alimenkou
 
PDF
Lean and Kanban-based Software Development
Dr. Tathagat Varma
 
PDF
Developing Quality Products Quickly through a Culture of CI/CD
Paul Hepworth
 
PDF
Understanding Scrum
nikos batsios
 
PDF
Understanding Kanban
nikos batsios
 
PDF
The Bottleneck Game – Jad Harb
Agile Tour Beirut
 
PDF
ReleaseIQ's Next Gen Enterprise Devops Platform Webinar Slides
Wayne Greene
 
PPTX
Process management - managing quality, time by applyingthe theory of constrai...
InfoPerc/Te web
 
PPTX
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps Ltd.
 
PPT
Continuous Deployment
Brian Henerey
 
PPTX
Balance Demand Against Throughput: Kanban Recipe for Success Step 4
Jason Yip
 
PPT
Continuously Delivering: Compress the time from committed to consumed
Atlassian
 
PPTX
Agile thinking
Edwin Dando
 
PDF
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Yuval Yeret
 
PDF
NextBuild 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
PPTX
The Business Case for DevOps - Justifying the Journey
XebiaLabs
 
PDF
Software Development 2020 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
DevOps for the sysadmin
Robert Nelson
 
Introduction to continuous delivery
OlympicSoftware
 
Reduce WIP and Deliver Often: Kanban Recipe for Success Steps 2 and 3
Jason Yip
 
Kanban VS Scrum
Mikalai Alimenkou
 
Lean and Kanban-based Software Development
Dr. Tathagat Varma
 
Developing Quality Products Quickly through a Culture of CI/CD
Paul Hepworth
 
Understanding Scrum
nikos batsios
 
Understanding Kanban
nikos batsios
 
The Bottleneck Game – Jad Harb
Agile Tour Beirut
 
ReleaseIQ's Next Gen Enterprise Devops Platform Webinar Slides
Wayne Greene
 
Process management - managing quality, time by applyingthe theory of constrai...
InfoPerc/Te web
 
DevOps for Speed and Agility - DevOpsTO May 2014
DevOps Ltd.
 
Continuous Deployment
Brian Henerey
 
Balance Demand Against Throughput: Kanban Recipe for Success Step 4
Jason Yip
 
Continuously Delivering: Compress the time from committed to consumed
Atlassian
 
Agile thinking
Edwin Dando
 
Agile Intro and 2014 trends for AgileSparks open day at John-Bryce - March 2014
Yuval Yeret
 
NextBuild 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
The Business Case for DevOps - Justifying the Journey
XebiaLabs
 
Software Development 2020 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
Ad

Viewers also liked (8)

PDF
Personal brand launch
Sherrylou Marzo
 
PDF
Edtech Without a Budget
Justin Keel
 
DOC
Non negotiables of jan lokpal bill
Sidhartha Jatar
 
PDF
Passwords
VPMPartners
 
PDF
Query
kruninkppk
 
PDF
Database
kruninkppk
 
PDF
Thinking Beyond Our Borders
AcademyHealth
 
PPTX
Using Blackboard Rubrics
Justin Keel
 
Personal brand launch
Sherrylou Marzo
 
Edtech Without a Budget
Justin Keel
 
Non negotiables of jan lokpal bill
Sidhartha Jatar
 
Passwords
VPMPartners
 
Query
kruninkppk
 
Database
kruninkppk
 
Thinking Beyond Our Borders
AcademyHealth
 
Using Blackboard Rubrics
Justin Keel
 
Ad

Similar to Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing (20)

PDF
Value Driven Development by Dave Thomas
Naresh Jain
 
PDF
Sea spin5 2013
Jeff Smith
 
PDF
Reduce Time to Value: Focus First on Configuration Management Debt
Chris Sterling
 
PPTX
Top Devops bottlenecks, constraints and best practices
Mike Kavis
 
PDF
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
IBM UrbanCode Products
 
PPTX
DevOps evolution architecting the modern software factory - cloud expo east 2017
Anand Akela
 
PPTX
Agile Product Owner
Aaron Sanders
 
PPTX
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
Gene Kim
 
PDF
William "RED" Davidson Presentation
Hyperdrive Agile Leadership (powered by Bratton & Company)
 
PPTX
Thin Slicing the Technology Adoption Life Cycle
Kent Richmond
 
PPTX
Road to Continuous Delivery - Wix.com
Aviran Mordo
 
PDF
Using Lean Thinking to identify and address Delivery Pipeline bottlenecks
Sanjeev Sharma
 
PPTX
Success recipe for new IT projects-Agile way. Fail Fast, Fail Early
Joseph Vargheese PMP CSM CSP
 
PPTX
Your Client Wants What
lazygolfer
 
PDF
dev@InterConnect workshop - Lean and DevOps
Sanjeev Sharma
 
PDF
Enterprise DevOps
Liam McDowell
 
PDF
Use Scrum and Continuous Delivery to innovate like crazy!
Peter Gfader
 
PDF
The Rationale for Continuous Delivery
Perforce
 
PPTX
Keeping Product Backlog Healthy
Dhaval Panchal
 
PPTX
Continuous everything
TEST Huddle
 
Value Driven Development by Dave Thomas
Naresh Jain
 
Sea spin5 2013
Jeff Smith
 
Reduce Time to Value: Focus First on Configuration Management Debt
Chris Sterling
 
Top Devops bottlenecks, constraints and best practices
Mike Kavis
 
Using Lean Thinking to Identify and Address Delivery Pipeline Bottlenecks
IBM UrbanCode Products
 
DevOps evolution architecting the modern software factory - cloud expo east 2017
Anand Akela
 
Agile Product Owner
Aaron Sanders
 
DOES14 - Jonny Wooldridge - The Cambridge Satchel Company - 10 Enterprise Tip...
Gene Kim
 
Thin Slicing the Technology Adoption Life Cycle
Kent Richmond
 
Road to Continuous Delivery - Wix.com
Aviran Mordo
 
Using Lean Thinking to identify and address Delivery Pipeline bottlenecks
Sanjeev Sharma
 
Success recipe for new IT projects-Agile way. Fail Fast, Fail Early
Joseph Vargheese PMP CSM CSP
 
Your Client Wants What
lazygolfer
 
dev@InterConnect workshop - Lean and DevOps
Sanjeev Sharma
 
Enterprise DevOps
Liam McDowell
 
Use Scrum and Continuous Delivery to innovate like crazy!
Peter Gfader
 
The Rationale for Continuous Delivery
Perforce
 
Keeping Product Backlog Healthy
Dhaval Panchal
 
Continuous everything
TEST Huddle
 

More from IBM UrbanCode Products (20)

PDF
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
IBM UrbanCode Products
 
PPTX
What's New with IBM UrbanCode Deploy
IBM UrbanCode Products
 
PDF
Digital Disruption with DevOps - Reference Architecture Overview
IBM UrbanCode Products
 
PDF
Using Blueprints to Overcome Multi-speed IT Challenges
IBM UrbanCode Products
 
PDF
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
IBM UrbanCode Products
 
PDF
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
IBM UrbanCode Products
 
PDF
Shift Happens - Rapidly Rolling Forward During Production Failure
IBM UrbanCode Products
 
PDF
The Future of DevOps and UrbanCode
IBM UrbanCode Products
 
PDF
Death to Manual Deployments
IBM UrbanCode Products
 
PDF
Leading the Transformation: Applying DevOps and Agile Principles at Scale
IBM UrbanCode Products
 
PDF
Continuous Delivery in the Enterprise - with IBM UrbanCode
IBM UrbanCode Products
 
PDF
Securing the Automation of Application Deployment with UrbanCode Deploy
IBM UrbanCode Products
 
PDF
Adopting DevOps for 2-Speed IT
IBM UrbanCode Products
 
PDF
A True Story of Why QA Loves DevOps
IBM UrbanCode Products
 
PDF
UrbanCode Deploy and Docker Containers Connect the Dots
IBM UrbanCode Products
 
PDF
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
IBM UrbanCode Products
 
PDF
Building a DevOps Team that Isn't Evil
IBM UrbanCode Products
 
PDF
DevOps and the Case for ROI to Executives
IBM UrbanCode Products
 
PDF
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
IBM UrbanCode Products
 
PPTX
Creating a DevOps Team that Isn't Evil
IBM UrbanCode Products
 
Using UrbanCode Deploy to Migrate to WebSphere Application Server Version 9
IBM UrbanCode Products
 
What's New with IBM UrbanCode Deploy
IBM UrbanCode Products
 
Digital Disruption with DevOps - Reference Architecture Overview
IBM UrbanCode Products
 
Using Blueprints to Overcome Multi-speed IT Challenges
IBM UrbanCode Products
 
Efficient DevOps: Standardizing Chaotic Culture at NBCUniversal
IBM UrbanCode Products
 
Integrations, UI Enhancements and Cloud – See What’s New with IBM UrbanCode D...
IBM UrbanCode Products
 
Shift Happens - Rapidly Rolling Forward During Production Failure
IBM UrbanCode Products
 
The Future of DevOps and UrbanCode
IBM UrbanCode Products
 
Death to Manual Deployments
IBM UrbanCode Products
 
Leading the Transformation: Applying DevOps and Agile Principles at Scale
IBM UrbanCode Products
 
Continuous Delivery in the Enterprise - with IBM UrbanCode
IBM UrbanCode Products
 
Securing the Automation of Application Deployment with UrbanCode Deploy
IBM UrbanCode Products
 
Adopting DevOps for 2-Speed IT
IBM UrbanCode Products
 
A True Story of Why QA Loves DevOps
IBM UrbanCode Products
 
UrbanCode Deploy and Docker Containers Connect the Dots
IBM UrbanCode Products
 
Get Mapped: Using Value Stream Mapping to Create a DevOps Adoption Roadmap
IBM UrbanCode Products
 
Building a DevOps Team that Isn't Evil
IBM UrbanCode Products
 
DevOps and the Case for ROI to Executives
IBM UrbanCode Products
 
Continuous Delivery with Jenkins Enterprise and IBM UrbanCode Deploy
IBM UrbanCode Products
 
Creating a DevOps Team that Isn't Evil
IBM UrbanCode Products
 

Recently uploaded (20)

PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Doc9.....................................
SofiaCollazos
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
The Future of Artificial Intelligence (AI)
Mukul
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 

Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing

  • 1. Pushing the bottleneck Predicting what will break next in your SDLC
  • 2. Lead Consultant & Tech Evangelist Eric is Lead Consultant at IBM UrbanCode Products where I help customers get the most out of their build, deploy and release processes. Today he works with customers and industry leaders to figure out this DevOps thing. Eric Minick [email protected] @EricMinick
  • 3. The plan  Theory of constraints in a nutshell  Finding bottlenecks  Predicting the next bottleneck  Common bottleneck pushing patterns  Q&A
  • 5. A bottleneck is a constraint Maximum pouring speed
  • 6. Only by increasing flow through the constraint can overall throughput be increased* Making the bottle wide down here does not help * The Goal: a process of ongoing improvement. Goldratt eta al
  • 7. Optimize at your constraint Can pour faster now
  • 8. Your system must have a measureable goal My goal is to empty a wine bottle quickly
  • 9. Simplified five step plan 1. Identify the system’s most severe constraint 2. Decide how to get the most out of the constraint 3. Subordinate everything else to the above constraint 4. Make changes to expand constraint’s capacity 5. Once constraint is relieved, return to step 1
  • 10. Example: Slow QA cycles 1. Identify the system’s most severe constraint 2. Decide how to get the most out of the constraint 3. Subordinate everything else to the above constraint 4. Make changes to expand constraint’s capacity 5. Once constraint is relieved, return to step 1 1. It takes too long to test our changes. Everyone else waits 2. Testers should focus on exploratory testing 3. Devs help with regression tests. Ops prioritizes QA. 4. Dev & QA work together to automate regression tests 5. Find the next bottleneck
  • 11. Wait, what’s our goal in software?  Generally: turn ideas into business value  Measuring “business value” hard Emptying wine bottles only relevant if dev speed is the constraint and you believe in the Ballmer Peak (http://xkcd.com/323/) ?
  • 12. Wait, what’s our goal in software?  Generally: turn ideas into business value  Measuring “business value” hard  Features delivered minus bugs is a decent approximation – …but rewards building useless features. Emptying wine bottles only relevant if dev speed is the constraint and you believe in the Ballmer Peak (http://xkcd.com/323/) ?
  • 13. Three key measures  Lag time: how long from idea to value?  Throughput: how much delivered value per unit time?  Cost: what does it cost to deliver value? ?
  • 15. Most teams can feel the constraint  What are you waiting on?  Where’s the pain? Constraints before you in a process feel like not enough work. Constraints after you in a process are annoying or painful
  • 16. If it hurts, do it more often  Painful processes often grow exponentially worse with large batch sizes.  Examples – Integration work – Releases – Bug Triage – Updating databases – Visiting the dentist http://martinfowler.com/bliki/FrequencyReducesDifficulty.html Time between doing it Pain
  • 17. Use Lean techniques to measure  What does it take to get a change from idea to production? –At each phase measure wait time and work time  Long wait times indicate large batch sizes or backlogs image credits: http://commons.wikimedia.org/wiki/File:Diagram_spaghetti_kilka_produktow.PNG http://www.michaelnygard.com/blog/2008/02/outrunning_your_headlights.html
  • 18. Manual fix & verify spaghetti
  • 19. Bug fix & verify value stream 720 3600 240 2880 720 3600 240 15 15 120 60 15 15 60 Waiting Working 12000 300 1. Feature build 2. Build deployed 3. Bug reported 4. Dev fixes 5. Fix built 6. Fix deployed 7. Tester verifies
  • 20. Seeing the “next” bottleneck
  • 21. QA Scenario Dev Produces a nightly build Twice weekly, 2 hour deploy to Test Lab 3 Days to test each drop
  • 22. Dev produces a nightly build Twice weekly, 2 hour deploy to Test Lab 1.5 Days to test each drop If we improve test speed, our constraint moves.
  • 23. Examining a constraint • Manual process • Limited staff • Production releases have priority Why can we only deploy twice a week to QA?
  • 24. Tackling the constraint • Manual process • Limited staff • Production releases have priority Why can we only deploy twice a week to QA? • Automate processes • Hire more staff • Prioritize QA Releases Options
  • 25. Imagine a 1 day test cycle Dev produces a nightly build 2 hour deploy to Test Lab 1.0 Days to test each drop ¼ day deploy downtime becomes turns 1 day test cycle into two days.
  • 26. Tackling the constraint • Manual process • Limited staff • Production releases have priority Why can we only deploy twice a week to QA? • Automate processes • Hire more staff • Prioritize QA deploys Options Short term approach Long term approach
  • 27. Measuring utilization helps with this prediction  “Feeling” the pain isn’t enough to predict the next constraint  There may be no pain at the next constraint today
  • 28. When something is free, it is used more  Example: Amazon Prime. For $79/yr, customers get free 2 day shipping on everything. “…Customers spent as much as 150% more at Amazon after they became Prime members. Subscribers not only ordered more often … they started buying things at Amazon that they probably wouldn’t have in the past” * * http://business.time.com/2013/03/18/amazon-prime-bigger-more-powerful-more-profitable-than- anyone-imagined/
  • 29. Consider implications of making something free If builds, deploy, regression tests are free… We’re going to be testing lots more. Better buy some hardware.
  • 31. After build, deploy is next  Build guy & deploy guy used to be in sync  A CI server can do hundreds of builds per day  Agile tends to make Operations a constraint Knowing my stuff compiles at all times is great. I want to know if it passes functional tests too.
  • 32. As tests shift left, expensive tests constrain  Developers run more integration tests  Some tests use expensive resources –pay per use web services, mainframes, production systems…  Stubbing those resources becomes important – known as “service virtualization”
  • 33. Concurrent agile dev requires more test labs  More code is compiling, and set to be released “soon”  Need more environments to test changes in – Pressure for Platform as a Service
  • 34. Frequent releases demand fast feedback  Frequent releases enable experimentation  Monitoring of business outcomes required  Architectural pressures to support A/B testing ♫ Stop ignoring difference between features delivered and value delivered
  • 35. If we keep chasing constraints, where does it end?
  • 36. You may end up with Continuous Deployment Build Run thousands of tests Deploy to some servers Monitor Deploy to remaining servers
  • 37. Summary  Optimizations other than at the constraint don’t help  “Breaking” one constraint will expose the next  Patterns or analysis can be used to predict next constraint  Continual Improvement, Continual Improvement, Continual Improvement, Continual Improvement…
  • 38. IBM will collaborate with you to understand your current situation, goals and constraints. The Assessment and Planning Workshop will aim to capture sufficient information to make specific recommendations for improvement and implementation.  Intended Audience: Key leadership from practice areas and stakeholder organizations  Value Proposition Clear recommendations for capability improvements aligned to your business goals Initial Architecture Adoption roadmap based on proven best practices  Activities Workshop planning Assessment and Planning Workshop Collaborative discussion on current status, future goals and adoption requirements Produce Deliverable  Deliverables Current Status and Improvement Recommendations Architecture Adoption Roadmap Assessment and Planning Workshop
  • 39. More resources Urbancode.com/resources Continuous Delivery Maturity Model Deployment Automation Basics Applying Lean Principals to Software Delivery Blogs.urbancode.com Twitter.com/UrbanCode Facebook.com/IBMUrbanCodeProducts SlideShare.net/Urbancode

Editor's Notes

  • #6: http://commons.wikimedia.org/wiki/File:Empty_Wine_bottle.jpg
  • #8: http://commons.wikimedia.org/wiki/File:Empty_Wine_bottle.jpg