If you want to know the secret to a comprehensive DevOps evolution it’s simple. Literally.
Still waiting for the punchline? OK then, I’ll explain. It’s simplicity. For the road to automation mastery, and by that we mean a DevOps evolution, starts with simplification.
Yes, kicking off a DevOps evolution by reducing complexity may surprise many of you who may think of automation as a first step in DevOps. I mean isn’t it true that automation is a core pillar of the movement?
Well, technically yes it is. Very much at the core of a successful DevOps setup relies heavily on automation. But, and here’s the interesting part, the key automation practices which are typically attached to DevOps are not in the spotlight until your cloud journey passes some important stages.
Why? because a huge amount of careful preparation must take place before automation can be properly designed, out in place, and then implemented as part of any cloud management strategy.
DevOps evolution starts here
Before we begin, let’s have a quick look at the Five Stages of DevOps evolution as defined in the recent 2018 State of DevOps Report compiled by Puppet and Splunk.
Source: State of DevOps Report, 2018
The above essentially represent some “foundational practices” that highly evolved organizations adopt early on and continue to evolve as they progress through their individual journeys. The report is the result of research conducted over the last year, following a sever year track with over 30,000 technical professionals around the globe taking part.
Now, while the above diagram shows a quite linear or hierarchical progression, this is not always how things go. Some businesses for example, may kick off at Stage 4, without having been through any normalization, standardization and expansion first.
And what happens? They wonder why they are not successful. As the report point out, it’s usually “because they lack a foundation of collaboration and sharing across team boundaries. This sharing is a critical factor to helping to define the problems an organization faces and coming up with solutions that work for all teams.” All of this points to what we state about the fact that when you take care of the simple things first, the complicated stuff runs smoothly.
The research shows that DevOps evolution actually begins a long way before automation, so if you skip the early stages, then you are missing out on the learning that takes place
during these periods.
The early stages are also when teams establishing and succeeding at DevOps practices earn the trust of the business, which can mean more resources and permission to progress faster.
A matter of control
As previous State of DevOps Reports have shown, the use of version control for all production artifacts correlates highly with key IT performance metrics. Elements such as deployment frequency, lead time for changes, and mean time to recover. As mentioned in this year’s report, in 2017 the analysis showed that the use of continuous delivery practices — deployment automation, continuous integration and testing, and version control for all production artifacts — predicted lower levels of deployment pain, higher IT performance, and lower change failure rates.
Controlled innovation then, if you like, is the key. From a commercial point of view, there are plenty of benefits to standardization. Here are a few of the main ones:
- reduced licensing costs (it’s cheaper to buy licenses in bulk)
- ability to hire for a specific skill set
- shared knowledge across teams
- greater agility and faster delivery of higher quality software
But be flexible
All of the above are great. But there’s also the other side of the coin to factor in. That any mention of the word standardizing can sound scary. Many times there’s a fear attached to this word that it translates as “limitations”. In IT circles this fear is well founded. Because while we do want to follow some standard procedures, you also need to be able to make important changes.
Yes standardizing your tech stack does provides clear business benefits as we’ve seen. But, when you rigidly adhere to certain “standards”, you are risking putting a dampener on learning and innovation. These two words, as we all know, all the key to any successful DevOps evolution.
So what DevOps practices should you follow to make sure you do learn? As the State of DevOps report points out, “the key is to regularly revisit standards and build in exceptions for innovation and experimentation. We recommend standardizing with an eye to what is optimal for all applications, not just a few applications. Use proven technologies and reliable processes for what goes into production, and provide clear processes and guidelines for adding any new technology to enable product incubations, research and experimentation.”
So, yes, to go back to what we said in the beginning, you also need to think simply to ensure you set up your DevOps evolution policy in the best way for your business.
References: See here to get access to the full 2018 State of DevOps Report