How to DevOps? Part 1: Why DevOps?

Why are people interested in DevOps?

To succeed, a DevOps transformation must be anchored the right way, for the right reasons. A DevOps transformation should never only be about tools. It should neither only be about processes. It should not only be about people, even if this might be the most critical part of the transformation. It really is a global culture transformation. In this series of 7 posts, I will cover the whole DevOps transformation journey. So let’s start by why an organization should initiate a DevOps transformation in the first place.

What are the measured benefits of a successful DevOps transformation?

As described in the Puppet’s 2017 State of DevOps report and their 2016 State of DevOps report, the following elements were measured in companies that went through a successful DevOps transformation:

DevOpsBenefits

Pretty awesome relative numbers, heh?

OK, but what does this mean exactly in absolute terms?

Since those improvements factors are huge, it might be interesting to look more precisely into the corresponding absolute values for those KPIs:

KPISBEST IT PERFORMERSWORST IT PERFORMERS
# of DeploymentsDozens of times per day or moreOnce a month or less
Lead time from Code commits to ProductionLess than 1 hour1-4 weeks or more
Mean Time To Recover (MTTR) from Production issueLess than 1 hour1-7 days or more
Rate of problems when deploying to Production0-15% of deployments30-50% of deployments

I want that; How can I obtain those same benefits?

In the number of years I mentored businesses of all types to go through DevOps transformations (even before the creation of the DevOps term, which suddenly makes me feel old!), I can assure you that I found that every company could succeed in a DevOps transformation journey, in every sector or industry; The key is not to look at the potentially very long list of things you need to do to get there, but to take on the journey, one step at a time, with a continuous improvement mindset. DevOps practices by DevOps practices, try things, adapt them when needed, add as you progress other practices, etc.

Here is the list of areas of improvements I found to be useful over time. They will be the subjects of the following posts in this series of How to DevOps:

DevOpsJourney
  • Part 2: Integrate the Agile and Continuous Improvement/Lean mindsets + master Source Code Management practices
    • In this part, we will look into the pre-requisites to embark on a DevOps journey, essentially, the basic practices required before you can truly start with the other ones requiring a bit more maturity.
  • Part 3: Take the biggest step: Continuous Integration
    • In this part, we will look into Continuous Builds triggered from code commits, the importance of good units tests coverage as well as the benefits of code inspections to monitor technical debt, potential security vulnerabilities, etc.
  • Part 4: Integrate automatic system testing and go towards Continuous Delivery
    • In the fourth part, we will discuss the addition of system tests, performance tests, elements required before we can think of delivering software automatically to our users
  • Part 5: Integrate mature techniques and go all the way to Continuous Deployment
    • The fifth part integrates mature concepts such as real-time production feature monitoring, feature toggles, A-B testing and similar techniques to go as far as Continuous Deployment, without suffering from it
  • Part 6: Finally, DevOps!
    • In this last part, we adhere to the you build it, you run it! mindset. This part is the most anchored in the cultural aspect of the transformation, requires addition of transparent postmortem among other things.
  • Part 7: Recap of what is required to achieve success with your DevOps transformation
    • We will conclude with a recap on this series and provides links on the various steps to help you progress further in your DevOps journey

Enjoy the DevOps ride and keep DevOps-ing!

Leave a Reply

Your email address will not be published. Required fields are marked *