SlideShare a Scribd company logo
1 of 154
Download to read offline
Releasing Frequently
    Reduces Risk
         Owen Rogers
      Twitter: @exortech
   http://exortech.com/blog
1 year
48 releases
~ 1 release / week
10+/day
50+/day
continuous
deployment
crazy
sea change
competitive advantage
evolve software
resolve problems
faster than the
 competition
capability
respond to change
Agile Manifesto

▪
Individuals and interactions over processes and tools



▪
Working software over comprehensive documentation



▪
Customer collaboration over contract negotiation



▪
Responding to change over following a plan
proposition
frequent releases
   increase risk
frequent releases
   increase risk
    reduce
1) expose
2) mitigate
?
can you deploy
    daily?
“we can’t do that...”

 (3 minutes, 3 reasons)
3 common excuses
1. not enough time to test
1. not enough time to test
2. disruptive to users
1. not enough time to test
2. disruptive to users
3. too much overhead
1. not enough time to test
2. disruptive to users
3. too much overhead
1. not enough time to test
1. not enough time to test
Risk: cost of bugs getting into production
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
 • we know what our customers want
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
 • we know what our customers want
 • bugs are expensive
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
 • we know what our customers want
 • bugs are expensive
 • testing takes a long time
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
 • we know what our customers want
 • bugs are expensive
 • testing takes a long time
 • all bugs can be found in test
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
 • we know what our customers want
 • bugs are expensive
 • testing takes a long time
 • all bugs can be found in test
1. not enough time to test
Assume: we know what our customers want


      testing: did we
       build it right?
1. not enough time to test
Assume: we know what our customers want


    risk: did we build
     the right thing?
1. not enough time to test
Assume: we know what our customers want


                 $O
1. not enough time to test
Assume: we know what our customers want


                 $O
     (well, negative $ actually)
1. not enough time to test
Assume: we know what our customers want
1. not enough time to test
Assume: we know what our customers want

  • we understand our customer’s needs
1. not enough time to test
Assume: we know what our customers want

  • we understand our customer’s needs
  • our customers know what they want
1. not enough time to test
Assume: we know what our customers want

  • we understand our customer’s needs
  • our customers know what they want
  • our customers will still want what we
  have when we give to them
1. not enough time to test
Assume: we know what our customers want


   validated learning
    about customers
1. not enough time to test
Assume: we know what our customers want


    simplest solution
       to validate
       hypothesis
1. not enough time to test
Assume: we know what our customers want



            split test
1. not enough time to test
Assume: we know what our customers want

   “deliver fast enough that the
   customer doesn’t have time
      to change their mind”
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
 • we know what our customers want
 • bugs are expensive
 • testing takes a long time
 • all bugs can be found in test
1. not enough time to test
Assumption: bugs are expensive



      $ million bug
1. not enough time to test
Assumption: bugs are expensive


          = $10 billion
1. not enough time to test
Assumption: bugs are expensive


          = 120M users/day
1. not enough time to test
Assumption: bugs are expensive



 bugs are inevitable
1. not enough time to test
Assumption: bugs are expensive



  speed of response
1. not enough time to test
Assumption: bugs are expensive



        continuous
        monitoring
1. not enough time to test
Assumption: bugs are expensive
1. not enough time to test
Assumption: bugs are expensive
1. not enough time to test
Assumption: bugs are expensive
1. not enough time to test
Assumption: bugs are expensive
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
 • we know what our customers want
 • bugs are expensive
 • testing takes a long time
 • all bugs can be found in test
1. not enough time to test
Assumption: testing takes a long time



      small changes
1. not enough time to test
Assumption: testing takes a long time



        continuous
        integration
1. not enough time to test
Assumption: testing takes a long time



        continuous
          testing
1. not enough time to test
Assumption: testing takes a long time




    test automation
1. not enough time to test
Assumption: testing takes a long time




 always releaseable
1. not enough time to test
Risk: cost of bugs getting into production

Assumptions:
 • we know what our customers want
 • bugs are expensive
 • testing takes a long time
 • all bugs can be found in test
1. not enough time to test
Assumption: all bugs can be found in test



         = 40,000 photos/sec
1. not enough time to test
Assumption: all bugs can be found in test



          = 6 Pb of storage
1. not enough time to test
Assumption: all bugs can be found in test
1. not enough time to test
2. disruptive to users
3. too much overhead
2. disruptive to users
2. disruptive to users
Risk: new releases will annoy users
2. disruptive to users
Risk: new releases will annoy users

Assumptions:
2. disruptive to users
Risk: new releases will annoy users

Assumptions:
 • releases incur downtime
2. disruptive to users
Risk: new releases will annoy users

Assumptions:
 • releases incur downtime
 • users will notice changes
2. disruptive to users
Risk: new releases will annoy users

Assumptions:
 • releases incur downtime
 • users will notice changes
 • changes are visible to all users
2. disruptive to users
Risk: new releases will annoy users

Assumptions:
 • releases incur downtime
 • users will notice changes
 • changes are visible to all users
2. disruptive to users
Assumption: releases incur downtime



    patch releases?
2. disruptive to users
Assumption: releases incur downtime




             good will
2. disruptive to users
Assumption: releases incur downtime



    zero-downtime
      deployment
2. disruptive to users
Assumption: releases incur downtime



       redundancy
2. disruptive to users
Risk: new releases will annoy users

Assumptions:
 • releases incur downtime
 • users will notice changes
 • changes are visible to all users
2. disruptive to users
Assumption: users will notice changes
2. disruptive to users
Assumption: users will notice changes
2. disruptive to users
Assumption: users will notice changes



           version?
2. disruptive to users
Risk: new releases will annoy users

Assumptions:
 • releases incur downtime
 • users will notice changes
 • changes are visible to all users
2. disruptive to users
Assumption: changes are visible to all
users


   big-bang release
2. disruptive to users
Assumption: changes are visible to all
users


             options
2. disruptive to users
Assumption: changes are visible to all
users
2. disruptive to users
Assumption: changes are visible to all
users
Options:
2. disruptive to users
Assumption: changes are visible to all
users
Options:
  • release to user subset (private beta)
2. disruptive to users
Assumption: changes are visible to all
users
Options:
  • release to user subset (private beta)
  • rollout to some servers
2. disruptive to users
Assumption: changes are visible to all
users
Options:
  • release to user subset (private beta)
  • rollout to some servers
  • downgrade feature
2. disruptive to users
Assumption: changes are visible to all
users
Options:
  • release to user subset (private beta)
  • rollout to some servers
  • downgrade feature
  • disable feature (feature darkmode)
2. disruptive to users
Assumption: changes are visible to all
users
Options:
  • release to user subset (private beta)
  • rollout to some servers
  • downgrade feature
  • disable feature (feature darkmode)
  • defer commit
2. disruptive to users
Assumption: changes are visible to all
users
Options:
  • release to user subset (private beta)
  • rollout to some servers
  • downgrade feature
  • disable feature (feature darkmode)
  • defer commit
  • defer release
2. disruptive to users
Assumption: changes are visible to all
users


      options = $$$
2. disruptive to users
Assumption: changes are visible to all
users


   “release is a
marketing decision”
2. disruptive to users
Assumption: changes are visible to all
users

             bonus:
1. not enough time to test
2. disruptive to users
3. too much overhead
3. too much overhead
3. too much overhead
Risk: cost of a release is greater than the
benefit of its changes
3. too much overhead
Risk: cost of a release is greater than the
benefit of its changes

Assumptions:
3. too much overhead
Risk: cost of a release is greater than the
benefit of its changes

Assumptions:
 • high coordination overhead
3. too much overhead
Risk: cost of a release is greater than the
benefit of its changes

Assumptions:
 • high coordination overhead
 • releases are risky
3. too much overhead
Risk: cost of a release is greater than the
benefit of its changes

Assumptions:
 • high coordination overhead
 • releases are risky
 • deployment takes a long time
3. too much overhead
Risk: cost of a release is greater than the
benefit of its changes

Assumptions:
 • high coordination overhead
 • releases are risky
 • deployment takes a long time
3. too much overhead
Assumption: high coordination overhead



    functional silos
3. too much overhead
Assumption: high coordination overhead



        dev vs. ops
3. too much overhead
Assumption: high coordination overhead



   devs don’t know
         prod
3. too much overhead
Assumption: high coordination overhead



    ops don’t know
         code
3. too much overhead
Assumption: high coordination overhead



        shared
     accountability
3. too much overhead
Assumption: high coordination overhead
3. too much overhead
Assumption: high coordination overhead



        shared
     accountability
3. too much overhead
Risk: cost of a release is greater than the
benefit of its changes

Assumptions:
 • high coordination overhead
 • releases are risky
 • deployment takes a long time
3. too much overhead
Assumption: releases are risky



    “if it hurts, do it
       more often”
3. too much overhead
Assumption: releases are risky



        incremental
          change
3. too much overhead
Assumption: releases are risky



  more or less same
      system
3. too much overhead
Assumption: releases are risky



     practice makes
         perfect
3. too much overhead
Risk: cost of a release is greater than the
benefit of its changes

Assumptions:
 • high coordination overhead
 • releases are risky
 • deployment takes a long time
3. too much overhead
Assumption: deployment takes a long
time



 risk: manual steps
3. too much overhead
Assumption: deployment takes a long
time


       automated
       deployment
3. too much overhead
Assumption: deployment takes a long
time



   one-step process
Summary
Frequent Releases?



?
concerns
1. not enough time to test
2. disruptive to users
3. too much overhead
risks
1. bugs getting into production
2. new releases will annoy users
3. cost of a release is greater
than the benefit of its changes
localized risk
1) expose
underlying risks
Risks:
 • do we know what customers want?
 • can we respond fast enough to
  problems?
 • can we detect problems when they
  happen?
 • can we limit the impact of changes?
 • can we deploy without downtime?
 • can we build production-ready
  software?
2) mitigate
mitigation strategies
Strategies:
  • validated learning about customers
  • split testing
  • continuous monitoring
  • continuous integration
  • test automation
  • zero-down time deployment
  • deployment options
  • operation levers
  • automated deployment
Thank You!
Shameless Plug
Nov 2 - 5
•   Eric Evans

•   Michael Feathers

•   Martin Fowler

•   Jeff Patton

•   Mary Poppendieck

•   Michael Nygard

•   Linda Rising

•   Johanna Rothmann
Releasing Frequently
    Reduces Risk
         Owen Rogers
      Twitter: @exortech
   http://exortech.com/blog
1. not enough time to test
2. disruptive to users
3. too much overhead
1. bugs getting into production
2. new releases will annoy users
3. cost of a release is greater
than the benefit of its changes

More Related Content

Similar to Frequent Releases Reduce Risk

Introduction to bugs measurement
Introduction to bugs measurementIntroduction to bugs measurement
Introduction to bugs measurementVolodya Novostavsky
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev opsAgile Montréal
 
An Introduction To Software Development - Final Review
An Introduction To Software Development - Final ReviewAn Introduction To Software Development - Final Review
An Introduction To Software Development - Final ReviewBlue Elephant Consulting
 
2013 ucar best practices
2013 ucar best practices2013 ucar best practices
2013 ucar best practicesc.titus.brown
 
Continuous Delivery for the Rest of Us
Continuous Delivery for the Rest of UsContinuous Delivery for the Rest of Us
Continuous Delivery for the Rest of UsC4Media
 
Reducing risk through continuous delivery (Nov 2014)
Reducing risk through continuous delivery (Nov 2014)Reducing risk through continuous delivery (Nov 2014)
Reducing risk through continuous delivery (Nov 2014)Joel Chippindale
 
Reducing risk through continuous delivery (Nov 2014)
Reducing risk through continuous delivery (Nov 2014)Reducing risk through continuous delivery (Nov 2014)
Reducing risk through continuous delivery (Nov 2014)FutureLearn
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week Indiaexortech
 
Five Cliches of Online Game Development
Five Cliches of Online Game DevelopmentFive Cliches of Online Game Development
Five Cliches of Online Game Developmentiandundore
 
Just test it - discovering new products and reducing risk through rapid proto...
Just test it - discovering new products and reducing risk through rapid proto...Just test it - discovering new products and reducing risk through rapid proto...
Just test it - discovering new products and reducing risk through rapid proto...Philip Pantelides
 
Changing rules 1_stopcheating_slideshare
Changing rules 1_stopcheating_slideshareChanging rules 1_stopcheating_slideshare
Changing rules 1_stopcheating_slideshareSOASTA
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingIBM UrbanCode Products
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsMike Long
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing codeZivtech, LLC
 
Load-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.ioLoad-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.ioHassy Veldstra
 
Why Remote Research Is (or isn't) Right for your project
Why Remote Research Is (or isn't) Right for your projectWhy Remote Research Is (or isn't) Right for your project
Why Remote Research Is (or isn't) Right for your projectGreenlight Guru
 
Be a Quality Evangelist
Be a Quality EvangelistBe a Quality Evangelist
Be a Quality Evangelistyusra123
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comAviran Mordo
 
iOSDC 2018 Presentation - Casual Talk
iOSDC 2018 Presentation - Casual TalkiOSDC 2018 Presentation - Casual Talk
iOSDC 2018 Presentation - Casual Talkkimi Ng
 

Similar to Frequent Releases Reduce Risk (20)

Introduction to bugs measurement
Introduction to bugs measurementIntroduction to bugs measurement
Introduction to bugs measurement
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
An Introduction To Software Development - Final Review
An Introduction To Software Development - Final ReviewAn Introduction To Software Development - Final Review
An Introduction To Software Development - Final Review
 
2013 ucar best practices
2013 ucar best practices2013 ucar best practices
2013 ucar best practices
 
Continuous Delivery for the Rest of Us
Continuous Delivery for the Rest of UsContinuous Delivery for the Rest of Us
Continuous Delivery for the Rest of Us
 
Reducing risk through continuous delivery (Nov 2014)
Reducing risk through continuous delivery (Nov 2014)Reducing risk through continuous delivery (Nov 2014)
Reducing risk through continuous delivery (Nov 2014)
 
Reducing risk through continuous delivery (Nov 2014)
Reducing risk through continuous delivery (Nov 2014)Reducing risk through continuous delivery (Nov 2014)
Reducing risk through continuous delivery (Nov 2014)
 
Releasing To Production Every Week India
Releasing To Production Every Week   IndiaReleasing To Production Every Week   India
Releasing To Production Every Week India
 
Five Cliches of Online Game Development
Five Cliches of Online Game DevelopmentFive Cliches of Online Game Development
Five Cliches of Online Game Development
 
Just test it - discovering new products and reducing risk through rapid proto...
Just test it - discovering new products and reducing risk through rapid proto...Just test it - discovering new products and reducing risk through rapid proto...
Just test it - discovering new products and reducing risk through rapid proto...
 
Changing rules 1_stopcheating_slideshare
Changing rules 1_stopcheating_slideshareChanging rules 1_stopcheating_slideshare
Changing rules 1_stopcheating_slideshare
 
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next ThingPushing the Bottleneck: Predicting and Addressing the Next, Next Thing
Pushing the Bottleneck: Predicting and Addressing the Next, Next Thing
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
Load-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.ioLoad-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.io
 
Viral loops
Viral loopsViral loops
Viral loops
 
Why Remote Research Is (or isn't) Right for your project
Why Remote Research Is (or isn't) Right for your projectWhy Remote Research Is (or isn't) Right for your project
Why Remote Research Is (or isn't) Right for your project
 
Be a Quality Evangelist
Be a Quality EvangelistBe a Quality Evangelist
Be a Quality Evangelist
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
iOSDC 2018 Presentation - Casual Talk
iOSDC 2018 Presentation - Casual TalkiOSDC 2018 Presentation - Casual Talk
iOSDC 2018 Presentation - Casual Talk
 

Recently uploaded

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

Frequent Releases Reduce Risk

  • 1. Releasing Frequently Reduces Risk Owen Rogers Twitter: @exortech http://exortech.com/blog
  • 3.
  • 5. ~ 1 release / week
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 13.
  • 14.
  • 17. crazy
  • 18.
  • 19.
  • 24. faster than the competition
  • 27. Agile Manifesto ▪ Individuals and interactions over processes and tools ▪ Working software over comprehensive documentation ▪ Customer collaboration over contract negotiation ▪ Responding to change over following a plan
  • 29. frequent releases increase risk
  • 30. frequent releases increase risk reduce
  • 33. ?
  • 34. can you deploy daily?
  • 35. “we can’t do that...” (3 minutes, 3 reasons)
  • 37.
  • 38. 1. not enough time to test
  • 39. 1. not enough time to test 2. disruptive to users
  • 40. 1. not enough time to test 2. disruptive to users 3. too much overhead
  • 41. 1. not enough time to test 2. disruptive to users 3. too much overhead
  • 42. 1. not enough time to test
  • 43. 1. not enough time to test Risk: cost of bugs getting into production
  • 44. 1. not enough time to test Risk: cost of bugs getting into production Assumptions:
  • 45. 1. not enough time to test Risk: cost of bugs getting into production Assumptions: • we know what our customers want
  • 46. 1. not enough time to test Risk: cost of bugs getting into production Assumptions: • we know what our customers want • bugs are expensive
  • 47. 1. not enough time to test Risk: cost of bugs getting into production Assumptions: • we know what our customers want • bugs are expensive • testing takes a long time
  • 48. 1. not enough time to test Risk: cost of bugs getting into production Assumptions: • we know what our customers want • bugs are expensive • testing takes a long time • all bugs can be found in test
  • 49. 1. not enough time to test Risk: cost of bugs getting into production Assumptions: • we know what our customers want • bugs are expensive • testing takes a long time • all bugs can be found in test
  • 50. 1. not enough time to test Assume: we know what our customers want testing: did we build it right?
  • 51. 1. not enough time to test Assume: we know what our customers want risk: did we build the right thing?
  • 52. 1. not enough time to test Assume: we know what our customers want $O
  • 53. 1. not enough time to test Assume: we know what our customers want $O (well, negative $ actually)
  • 54. 1. not enough time to test Assume: we know what our customers want
  • 55. 1. not enough time to test Assume: we know what our customers want • we understand our customer’s needs
  • 56. 1. not enough time to test Assume: we know what our customers want • we understand our customer’s needs • our customers know what they want
  • 57. 1. not enough time to test Assume: we know what our customers want • we understand our customer’s needs • our customers know what they want • our customers will still want what we have when we give to them
  • 58. 1. not enough time to test Assume: we know what our customers want validated learning about customers
  • 59. 1. not enough time to test Assume: we know what our customers want simplest solution to validate hypothesis
  • 60. 1. not enough time to test Assume: we know what our customers want split test
  • 61. 1. not enough time to test Assume: we know what our customers want “deliver fast enough that the customer doesn’t have time to change their mind”
  • 62. 1. not enough time to test Risk: cost of bugs getting into production Assumptions: • we know what our customers want • bugs are expensive • testing takes a long time • all bugs can be found in test
  • 63. 1. not enough time to test Assumption: bugs are expensive $ million bug
  • 64. 1. not enough time to test Assumption: bugs are expensive = $10 billion
  • 65. 1. not enough time to test Assumption: bugs are expensive = 120M users/day
  • 66. 1. not enough time to test Assumption: bugs are expensive bugs are inevitable
  • 67. 1. not enough time to test Assumption: bugs are expensive speed of response
  • 68. 1. not enough time to test Assumption: bugs are expensive continuous monitoring
  • 69. 1. not enough time to test Assumption: bugs are expensive
  • 70. 1. not enough time to test Assumption: bugs are expensive
  • 71. 1. not enough time to test Assumption: bugs are expensive
  • 72. 1. not enough time to test Assumption: bugs are expensive
  • 73. 1. not enough time to test Risk: cost of bugs getting into production Assumptions: • we know what our customers want • bugs are expensive • testing takes a long time • all bugs can be found in test
  • 74. 1. not enough time to test Assumption: testing takes a long time small changes
  • 75. 1. not enough time to test Assumption: testing takes a long time continuous integration
  • 76. 1. not enough time to test Assumption: testing takes a long time continuous testing
  • 77. 1. not enough time to test Assumption: testing takes a long time test automation
  • 78. 1. not enough time to test Assumption: testing takes a long time always releaseable
  • 79. 1. not enough time to test Risk: cost of bugs getting into production Assumptions: • we know what our customers want • bugs are expensive • testing takes a long time • all bugs can be found in test
  • 80. 1. not enough time to test Assumption: all bugs can be found in test = 40,000 photos/sec
  • 81. 1. not enough time to test Assumption: all bugs can be found in test = 6 Pb of storage
  • 82. 1. not enough time to test Assumption: all bugs can be found in test
  • 83. 1. not enough time to test 2. disruptive to users 3. too much overhead
  • 85. 2. disruptive to users Risk: new releases will annoy users
  • 86. 2. disruptive to users Risk: new releases will annoy users Assumptions:
  • 87. 2. disruptive to users Risk: new releases will annoy users Assumptions: • releases incur downtime
  • 88. 2. disruptive to users Risk: new releases will annoy users Assumptions: • releases incur downtime • users will notice changes
  • 89. 2. disruptive to users Risk: new releases will annoy users Assumptions: • releases incur downtime • users will notice changes • changes are visible to all users
  • 90. 2. disruptive to users Risk: new releases will annoy users Assumptions: • releases incur downtime • users will notice changes • changes are visible to all users
  • 91. 2. disruptive to users Assumption: releases incur downtime patch releases?
  • 92. 2. disruptive to users Assumption: releases incur downtime good will
  • 93. 2. disruptive to users Assumption: releases incur downtime zero-downtime deployment
  • 94. 2. disruptive to users Assumption: releases incur downtime redundancy
  • 95. 2. disruptive to users Risk: new releases will annoy users Assumptions: • releases incur downtime • users will notice changes • changes are visible to all users
  • 96. 2. disruptive to users Assumption: users will notice changes
  • 97. 2. disruptive to users Assumption: users will notice changes
  • 98. 2. disruptive to users Assumption: users will notice changes version?
  • 99. 2. disruptive to users Risk: new releases will annoy users Assumptions: • releases incur downtime • users will notice changes • changes are visible to all users
  • 100. 2. disruptive to users Assumption: changes are visible to all users big-bang release
  • 101. 2. disruptive to users Assumption: changes are visible to all users options
  • 102. 2. disruptive to users Assumption: changes are visible to all users
  • 103. 2. disruptive to users Assumption: changes are visible to all users Options:
  • 104. 2. disruptive to users Assumption: changes are visible to all users Options: • release to user subset (private beta)
  • 105. 2. disruptive to users Assumption: changes are visible to all users Options: • release to user subset (private beta) • rollout to some servers
  • 106. 2. disruptive to users Assumption: changes are visible to all users Options: • release to user subset (private beta) • rollout to some servers • downgrade feature
  • 107. 2. disruptive to users Assumption: changes are visible to all users Options: • release to user subset (private beta) • rollout to some servers • downgrade feature • disable feature (feature darkmode)
  • 108. 2. disruptive to users Assumption: changes are visible to all users Options: • release to user subset (private beta) • rollout to some servers • downgrade feature • disable feature (feature darkmode) • defer commit
  • 109. 2. disruptive to users Assumption: changes are visible to all users Options: • release to user subset (private beta) • rollout to some servers • downgrade feature • disable feature (feature darkmode) • defer commit • defer release
  • 110. 2. disruptive to users Assumption: changes are visible to all users options = $$$
  • 111. 2. disruptive to users Assumption: changes are visible to all users “release is a marketing decision”
  • 112. 2. disruptive to users Assumption: changes are visible to all users bonus:
  • 113. 1. not enough time to test 2. disruptive to users 3. too much overhead
  • 114. 3. too much overhead
  • 115. 3. too much overhead Risk: cost of a release is greater than the benefit of its changes
  • 116. 3. too much overhead Risk: cost of a release is greater than the benefit of its changes Assumptions:
  • 117. 3. too much overhead Risk: cost of a release is greater than the benefit of its changes Assumptions: • high coordination overhead
  • 118. 3. too much overhead Risk: cost of a release is greater than the benefit of its changes Assumptions: • high coordination overhead • releases are risky
  • 119. 3. too much overhead Risk: cost of a release is greater than the benefit of its changes Assumptions: • high coordination overhead • releases are risky • deployment takes a long time
  • 120. 3. too much overhead Risk: cost of a release is greater than the benefit of its changes Assumptions: • high coordination overhead • releases are risky • deployment takes a long time
  • 121. 3. too much overhead Assumption: high coordination overhead functional silos
  • 122. 3. too much overhead Assumption: high coordination overhead dev vs. ops
  • 123. 3. too much overhead Assumption: high coordination overhead devs don’t know prod
  • 124. 3. too much overhead Assumption: high coordination overhead ops don’t know code
  • 125. 3. too much overhead Assumption: high coordination overhead shared accountability
  • 126. 3. too much overhead Assumption: high coordination overhead
  • 127. 3. too much overhead Assumption: high coordination overhead shared accountability
  • 128. 3. too much overhead Risk: cost of a release is greater than the benefit of its changes Assumptions: • high coordination overhead • releases are risky • deployment takes a long time
  • 129. 3. too much overhead Assumption: releases are risky “if it hurts, do it more often”
  • 130. 3. too much overhead Assumption: releases are risky incremental change
  • 131. 3. too much overhead Assumption: releases are risky more or less same system
  • 132. 3. too much overhead Assumption: releases are risky practice makes perfect
  • 133. 3. too much overhead Risk: cost of a release is greater than the benefit of its changes Assumptions: • high coordination overhead • releases are risky • deployment takes a long time
  • 134. 3. too much overhead Assumption: deployment takes a long time risk: manual steps
  • 135. 3. too much overhead Assumption: deployment takes a long time automated deployment
  • 136. 3. too much overhead Assumption: deployment takes a long time one-step process
  • 140. 1. not enough time to test 2. disruptive to users 3. too much overhead
  • 141. risks
  • 142. 1. bugs getting into production 2. new releases will annoy users 3. cost of a release is greater than the benefit of its changes
  • 145. underlying risks Risks: • do we know what customers want? • can we respond fast enough to problems? • can we detect problems when they happen? • can we limit the impact of changes? • can we deploy without downtime? • can we build production-ready software?
  • 147. mitigation strategies Strategies: • validated learning about customers • split testing • continuous monitoring • continuous integration • test automation • zero-down time deployment • deployment options • operation levers • automated deployment
  • 150.
  • 151. Nov 2 - 5 • Eric Evans • Michael Feathers • Martin Fowler • Jeff Patton • Mary Poppendieck • Michael Nygard • Linda Rising • Johanna Rothmann
  • 152. Releasing Frequently Reduces Risk Owen Rogers Twitter: @exortech http://exortech.com/blog
  • 153. 1. not enough time to test 2. disruptive to users 3. too much overhead
  • 154. 1. bugs getting into production 2. new releases will annoy users 3. cost of a release is greater than the benefit of its changes