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)FutureLearn
 
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
 
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

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Recently uploaded (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

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