Why is it so hard to implement DevOps practices?

It’s been over 10 years since DevOps emerged. Many have successfully adopted this new approach, but some still struggle. What could be the reasons? Because every organization is different and so could have different impediments.

1. It’s too obscure (a.k.a. What is DevOps anyway?)

So what is DevOps exactly? Some say it’s all about culture and if this was true then why don’t we call it "Agile Culture" then? After all, every type of organization needs to be fast, innovative, and improve itself based on gathered feedback, with healthy relations between departments, candor, and no finger-pointing. Maybe it’s about technology then? There are so many solutions such as cloud, containers, Kubernetes, and others that solve many problems of modern IT companies in a quite impressive and easy way. Can you be a DevOps-enabled company by just using one of those wonderful artworks of code?
How about processes? Maybe by streamlining the deployment process and making it fully automated, you can finally boast about implementing DevOps?

One of the most unfortunate things about DevOps is that unlike Agile it doesn’t have its official manifesto. This has opened opportunities for misinterpretation, adding "DevOps" labels to products that have little to do with it and many misconceptions that have arisen over the past decade. No wonder that with such an unclear definition many organizations still struggle to adopt it.

2. Impossible to achieve without the cloud

We all know how cloud services can quickly solve many problems, but what if you can’t use them for some reason? This may actually be a serious problem that may prevent any DevOps-related changes from happening (or at least it’s a valid excuse).
Can one transform their organization without access to the cloud? How can one bring all the critical processes to the next level without all these goodies and by using on-premise hardware?

Fortunately, with containers and Kubernetes it is possible to create a platform that is automated on almost the same level as public cloud providers. Thanks to Kubernetes operators, creating services similar to the ones available in the cloud is relatively easy.

3. There are too few "DevOps people"

In order to adopt the DevOps approach, you need people that will accelerate the process of deployment and provisioning of your Cloud Native environments (regardless if they actually use the public cloud or containers running on on-prem hardware). Over the past decade, we’ve seen many new roles emerge such as DevOps Engineer or even DevOps Architect and it’s often hard to find people to fill such positions, especially the most skilled ones.
In many cases, a natural process of switching roles inside organizations is quite effective where existing developers or system administrators decide to gain those new DevOps skills. Since most tasks require often a deep knowledge of infrastructure (especially when containers are used) the ones that have previous experience have often better chances to become skilled DevOps experts. When, on the other hand, there’s a lot of work that involves automation that requires writing a new software (e.g. complex Kubernetes operators, creating and exposing a new API), then previous experience with programming is highly desirable.

4. Control over autonomy

Let’s face it - it’s impossible to adopt DevOps practices without giving up control and starting to trust more in the people responsible for creating innovative products for your customers. In many organizations, however, there is still the cult of trusting in processes, bureaucracy, and control rather than trust and autonomy. Maybe it’s because of how deep it’s been integrated into the corporate culture, but isn’t that one of the reasons why those organizations need the DevOps approach in the first place?
Losing control can be painful if it has been your only method of pushing things forward. Giving autonomy to the people working in an organization is one of the best methods of creating psychological safety which is the foundation of innovative and agile organization culture.

Conclusion

According to The 2019 Accelerate State of DevOps report, one of the crucial things that really impacts the overall organization performance is the ability to create a robust Continuous Delivery process. During the implementation multiple impediments have to be removed, necessary skills need to be found internally or by filling new positions, and many answers to sometimes really hard questions have to be found. It’s a path that will lead to the DevOps-enabled organization with a proper culture emerged as a byproduct of this process and the result that is the real goal here - deliver innovative products that are delivered fast and that are loved by your customers.

Author Tomasz Cholewa

I love creating Cloud Native environments for our customers, because they not only speed up innovation, but also unlock the full potential of people working there.

Watch more

Contact us

and find out more detailed information!

Copyright © 2020 by Cloud Code Labs