You don’t have to look far to find media that shouts about the benefits of DevOps – How it can shorten delivery times, increase your business’ ability to innovate and reduce costs all at the same time. Whilst these claims are mainly true and DevOps can work wonders, there is another side to the story. What you don’t often hear are the many stories of failed attempts at implementing DevOps.
DevOps adoption is, more often than not, a difficult process. There are many pitfalls to avoid and challenges to overcome. Look long enough and you will find that many do fail, resulting in expensive exercises that do not achieve the promised benefits.
One Gartner.com article states “…through 2022, 75% of DevOps initiatives will fail…”, which is equally astonishing as it is frightening.
Throughout our own DevOps journey and our work with our clients, we have seen a common set of challenges to DevOps adoption. This article describes the top 3.
Hopefully, highlighting such challenges will help you avoid them on your DevOps journey.
#1 – Ignoring the importance of culture
It sounds so simple, but it is impossible to overstate the importance of having the right culture for a DevOps transformation to succeed. Gartner.com agrees:
“90% of I&O organizations looking to leverage DevOps without specifically addressing the cultural foundations will fail.”
You can provide all the tools and processes that money can buy, but if your team don’t understand why they are necessary and, more importantly, care; such tools will be misused and processes circumvented.
This is probably the single biggest reason for failure, because it is the hardest area to get right. Cultural change of any organisation requires significant time, effort and investment.
#2 – Tackling the wrong problem
To describe this particular problem, it is necessary to step back into the theory.
There are many different definitions of DevOps. We like to use the following:
DevOps is: getting from ideas to working software in production, as efficiently as possible; using a combination of culture, practices and tools to do so.
If you have read the DevOps Handbook, The Phoenix Project or any of the other seminal books on DevOps; you will know that DevOps is based heavily on the Lean Manufacturing principles – The Theory of Constraints is one of those principles.
The Theory of Constraints states the following:
“In any value stream, there is always a direction of flow, and there is one and only constraint; any improvement not made at that constraint is an illusion.”
In layman’s terms, this translates to: In any workflow, there is one major bottleneck that is restricting the process more than any other. If you don’t address that particular bottleneck, your efforts will not yield the results you desire.
Often in DevOps adoption, the tendency is for teams to focus on the deployment and tooling aspects of the development value stream. It is not surprising as much of the literature has a similar focus, it appeals to the technically minded and there are many software tools that promise to improve your deployment processes.
What we have found, more often than not, is that deployment is not the major constraint of the development value stream. Often the constraint is either the testing and/or the work-task management process. This is frequently the case for long established development teams and those working on legacy code bases.
In these cases we have seen much investment in the tooling to improve the deployment process, but little overall improvement in the speed at which the business can get from ideas to working software in production.
#3 – Unrealistic Expectations
Let’s be realistic – DevOps is not a quick fix. As mentioned earlier, cultural shifts take time – There are often years of old habits to unravel.
In addition, things often get worse before they get better. It is only once you start that you realise how deep the rabit-hold goes.
The State Of DevOps Report 2019 found that:
“…medium performers are starting to uncover all the buried complexity that led to glue and duct tape, technical debt and manual controls in the first place.”
We have found that DevOps is often pitched to stakeholders as something that can just be “switched-on” and not as an ongoing process of evolution. Then once the project is underway it becomes all too clear how much time and effort is required, leading to disappointed stakeholders and unwanted pressure on an already difficult project.
How to avoid these pitfalls
Everyone’s DevOps journey is different, as will the challenges they face, but here are a few pointers that will help avoid these common pitfalls:
Identify the business objectives
Make sure your DevOps adoption is based on business objectives and goals. Adopting DevOps for DevOps’ sake will likely get you nowhere.
Ensure that you agree these objectives with your stakeholders, define them clearly and use them to guide how you adopt DevOps. If you need to increase business innovation, your journey will be very different to a business that is aiming to reduce costs.
Focus on the people
Once you have you objectives set, ensure your team are on-board. They need to understand and believe in the end-goal for your DevOps transformation to succeed. As mentioned previously, your people are the core of the DevOps practices. Ensure you have the right people in the right roles and prepare to educate your team on an ongoing basis.
It will be a difficult journey, so you need strong leadership to keep everyone pulling together and ensure the all-important culture stays strong. Equally important, is the need to manage stakeholder expectations and buy-in.
How do you, or your stakeholders, know if your DevOps adoption has been a success? If it is only a subjective measure, it will be difficult to convince your stakeholders.
If you have agreed the business’ objectives and can define a set of metrics to measure against those objectives, it is much easier to prove your success.
Such metrics will also allow you to use a more agile method of adoption. Evaluating the effectiveness of your changes in an empirical way, giving you the information required to decide if you should continue with a certain aspect, or re-evaluate and try an alternative route.
Target the key constraint(s)
Make sure that you target the key constraints of your value stream first. That way you will get the most benefit from your initial stages. Not only will this improve you value stream, but it will help convince your stakeholders to continue support for DevOps.
It will always be tempting to solve all your problems in one go but, almost always, you won’t have identified all of your problems until you are underway; so it is easy for things to get out of hand.
As with the adoption of any new process or practices, there will be lessons learnt along the way. By starting small the lessons will be manageable and the learnings can be applied to the latter stages to great effect.
If you’d like to know more about how Synetec can help you on your DevOps journey and modernise your operations, contact us.