2018 in review: State of DevOps adoption
Last year IT Svit published a report on the state of DevOps adoption in 2017, based on the findings of Puppet and Atlassian surveys. Now we compare it to the latest DORA report on the state of DevOps.
While DevOps practices are becoming the mainframe of IT industry, different companies get different results in adopting them:
- First of all, there are top Managed Service Providers. These companies live and breathe the DevOps culture and have ample hands-on expertise with various ways of transition to DevOps. They are the elite performers, able to get the most astonishing results out of applying DevOps tools and workflows to reach customer’s business goals.
- Some businesses decide to hire external DevOps-as-a-Service providers to get top-notch tech, skills and best DevOps practices in their disposal. Such companies form the body of high performers.
- Many others try to take a slower and more cautious approach and build an in-house DevOps expertise. This is a standard way for starting using DevOps for SMEs and big corporations, who become medium performers and evolve into high performers once their in-house DevOps expertise matures.
- Lastly, there are still are companies that think they do not need DevOps. They exercise time-tested workflows and don’t try to innovate, they simply serve their customers in the ways they find feasible and cost-effective enough. As these businesses do not use any DevOps practices at all, they can be considered low performers, as their speed of software delivery and updates is much slower, as compared to the rest of the market.
Here is how these groups differ in the terms of software development lifecycle parameters.
As you can see, there are pretty significant differences across multiple aspects of software delivery lifecycle. The key takeaways from Puppet and Atlassian reports from 2017 are listed in the table below, along with the updated data provided by DORA in 2018.
Thus said, there are very significant improvements in 2 crucial aspects of software delivery. Why so? We thinks these results are due to 2 major breakthrough that happened last year:
- First tangible results of applying AIOps in daily IT operations. When the system monitoring tools can understand the trouble is brewing and react accordingly, the chances of a critical failure are close to zero. To say even more, when the incident report holds the root cause of the issue, along with the suggested solution, the time needed to recover from incidents shortens significantly — 2,604 times to be exact.
- When the elite performers adopt the Google way to do CI/CD and begin using the monorepo, the software delivery process becomes much simpler. When all the resources are readily available and easily configurable, each code commit becomes a new release after a successful testing. The numbers don’t lie, this practice provides 2,555 times faster software delivery!
DevOps adoption outcome: automation of manual tasks
There are many great outcomes of DevOps adoption. Some of them cannot be measured in simple numbers, like the improvement of inter-department communication and team collaboration. Or transition from “toss the code over the wall to be someone else’s problem” to “you built it, now you run it” principle. However, some results of transition to DevOps can be measured easily, and these include the quantity of manual tasks performed by IT department before and after the digital transformation.
It is obvious, that moving to using DevOps tools helps save a ton of time and effort and removing multiple operational bottlenecks like change approvals, or setting up testing environments. The best results, however, are achieved in the field of configuration management and deployment automation, due to utilizing powerful automation tools like Kubernetes, Terraform, Jenkins and Ansible. The teams that can use these tools effectively, can build Continuous Integration/ Continuous Deployment (CI/CD) software delivery pipelines that eliminate nearly all waste (meaning, manual work) from the process.
Ups and downs of the path to DevOps adoption
We speak a lot about digital transformation and adoption of DevOps practices and workflows. This might seem a smooth and effortless way… but it is not.
When the company decides to move to DevOps workflows, the general expectations are high. The company devises a roadmap and begins performing the required updates to their workflows and operations. Once some obvious issues are dealt with (like automation of testing environments provisioning and setup), the low performers become the medium performers from the table above. Everything seems to be working fine, yes?
However, automated provisioning of testing environments cannot speed up the process of manual testing. Some time along the road the management understands that automated unit tests are needed, or the digital transformation initiative will fail under the pressure of technical debt. Introducing the unit testing, however, requires a deep redesign and reconfiguration of the whole software delivery pipeline.
If the company does not falter and keeps solving the problems as they arise — not by increasing the amount of manual tasks, mind you, but through structural reforms and implementing DevOps practices and tools where possible — only then the company is able to become a high performer.
However, the transformational experience obtained during the transition to DevOps, helps businesses overcome multiple operational and organisational challenges, reach business goals faster, spend less and deliver more value to their customers. This is a result of a long way and a hard work, yet it is amply justified by the results.
What are the practices that must be adopted to enable a successful path to DevOps?
- Using Agile practices instead of Waterfall methodology
- Using public or private cloud instead of on-prem or dedicated servers
- Opting for multi-cloud strategy through using Kubernetes and Terraform as the intermediary layer to create cloud-agnostic and resilient infrastructures
- Building the cloud-native systems for core products, while choosing to lift-and-shift the systems that don’t require scalability that much. In any way, hybrid cloud approach proved to be not too much of an option, so the move to the cloud must be total
- Splitting the monolith apps into microservices and running those in Docker containers managed through Kubernetes clusters. Using Docker and Kubernetes together provides a tectonic shift in the nature of software delivery, as if replacing the horse carts not even internal combustion engines, but with Tesla autonomous cars.
- Outsourcing certain parts of operations to a trustworthy IT outsourcing provider. Many companies had negative experience outsourcing to India, but now Eastern Europe and Ukraine are the prime IT outsourcing destinations, and IT industry is booming due to using their affordable and highly-skilled services. Hiring dedicated teams to perform the tasks outside the scope of skills of in-house IT department helps the company concentrate the effort on mission-critical tasks and drive more value to the customers.
These are the crucial parts of digital transformation, yet they are impossible without a complete overhaul of corporate culture, attitude to innovation and approach to collaboration.
DevOps culture: the main part of the mix
While the points above might seem daunting enough, the transition to a new type of thinking is the most important part. Gartner report back from 2015 stated, that 9 out of 10 initiatives aimed at adopting DevOps tools will fail by 2018, if they do not accept DevOps culture. In its turn, accepting this culture is a huge shock for many companies, as it leads to management losing a huge deal of executive and approval power, destroying the siloed tasks and responsibilities, adopting the positive attitude towards innovation.
The main principles of DevOps culture can be formulated as follows:
Failure does not mean the idea is bad, it means the system can be improved. It is a chance to learn for the team, not the blame to be laid upon anyone. Fail fast, fail often, learn valuable lessons, move forward and constantly improve.
This is exactly what DevOps adoption is all about: using cloud virtual machines, DevOps tools and automated CI/CD pipelines to inspire the developers to experiment and find better ways. When a new server is configured with 1 command and in 5 minutes, testing an idea costs literally no time or resources, and the developers are not so afraid of innovating.
This leads to constant learning and self-development, resulting in faster commits of cleaner code, less bugs, faster implementation of customer feedback, greater creativity and productivity, increased company loyalty, etc. Most importantly, this leads to better end-user experience, positive outcomes and word of mouth brand advocacy, the best advertising any business can have.
Final thoughts on the state of DevOps adoption in 2018
The numbers above prove the efficiency of adopting DevOps for companies of all sizes. Forrester has announced 2018 to be a year of enterprise DevOps, as more than 50% of enterprise businesses are now actively using internal or external DevOps services. In a series of articles, we described how DevOps helps greatly improve the business processes in industries like financial services, healthcare, insurance, travel, e-Commerce, etc.
Thus said, every company is free to choose the best way to DevOps adoption. If cautious experimentation and slow evolvement fits your corporate strategy best — try to raise DevOps talent in-house and good luck to you with this endeavor. But if you want to see great results fast — hiring a specialized DevOps services provider is a must. If you want IT Svit to help you with DevOps journey — give us a nudge, we are always ready to help!
Originally published at itsvit.com on October 16, 2018.