Why DevOps Culture drives success
The goals of the Development and Ops departments should not be separated, they must be combined to achieve success nowadays. This is what the DevOps culture is all about.
The corporate culture was stale for several decades. The tasks, responsibilities and tools were split and siloed between departments. Unfortunately, this had quite often lead to the situation where the goals of these departments were quite contradictory. For example, the Devs should constantly develop new products or features and push them to production, while Ops need to ensure the operational stability of the existing IT infrastructure and uninterrupted end user experience. However, updates and new releases ended up with bugs and service downtime quite often, which results in customer frustration and financial losses.. This is exactly the issue the DevOps culture helps to solve.
To understand this better, we have to dive into the definition of DevOps approach to software delivery first of all:
DevOps is a methodology of collaboration, a practical application of Agile principles, a set of practices aimed at shortening the software delivery time, simplifying the infrastructure management and bolstering the spirit of collaboration within the company.
The result of implementing the DevOps services lies within changing the attitudes of the parties involved. When all the process participants are colleagues, not rivals, the time and resources spent on achieving the goal are reduced significantly. This is achieved due to 3 main principles of DevOps:
- Infrastructure as Code or IaC. The cloud infrastructure is described by declarative Terraform and Kubernetes manifests and provisioned, configured and run automatically, as opposed to configuring each server individually. This helps save a ton of money, time and effort on designing, provisioning and running the infrastructure needed for the software and services delivery.
- Continuous Integration or CI. The new batches of code are pushed through the automated building and testing pipeline, where the required testing environment provisioning jobs are performed by Ansible and Jenkins, as opposed to manual testing and configuring the required servers manually every time. This also applies to the speed of applying customer feedback — when the software delivery is mostly automated, new features can be built and released faster to please your customers.
- Continuous Delivery or CD. Once the new code is successfully tested, it is pushed into production without interrupting the operations, through the means of in-app updates, rolling updates, Canary releases, etc. This pipeline is also automatic and after being configured once with Ansible playbooks or Jenkins workers, works automatically from there on.
The tools mentioned above are a small part of a versatile and powerful kit of must-have DevOps tools every IT department has to be able to use nowadays.
As you can see, the DevOps workflow is centered around optimizing the daily operations, resource allocation, shortening the time to market and ensuring better project outcomes under smaller budgets. However, it should be supported by DevOps culture to be efficient
DevOps culture: change is good, failure is a chance to learn
The process of implementing the DevOps culture in the organization usually looks as follows:
- The external specialists instate the Centers of Excellence (CoE), where they help your employees learn the ropes of the new workflows and adhere to the practices of active communication and collaboration between the departments. The CoE group works on a rather small separate project and later spreads the experience across the whole company.
- The core product or service of the company should be split into microservices, if that is feasible and beneficial. This allows to replace a monolithic app with prolonged update cycles with a group of loosely coupled separate projects, ensuring much faster development cycles, simple maintenance and separate updates. If the core product is not so big yet, the main emphasis must be made on the IT infrastructure optimization and implementing CI/CD for the software delivery workflows.
- Accepting the IaC approach, so the developers understand the resource requirements of the software they build and plan accordingly, while the DevOps engineers can design the infrastructure able to support this software. The Ops specialists will be involved in the process of automating the software building, testing and releasing, not merely at the stage of running it in the production environment.
One of the best parts of this process is the acceptance of failures as the chances to learn. As the server setup is now automated and is done within minutes, not hours and days manually, the price of error is reduced practically to zero and the team can experiment freely. This helps identify the bottlenecks in the existing infrastructure and workflows faster and remove them before they begin to impact your business continuity.
Thus said, the DevOps culture is not limited to the interactions between the Devs and the Ops, as literally any company department can benefit from the improved flexibility and efficiency of your IT department.
Why it is essential to implement the DevOps culture now?
Transition to DevOps culture is essential, as it is literally the only chance for a company to survive in the modern fast-paced business world. Following the old ways will leave you vulnerable and unable to compete with better-performing and faster-delivering competitors.
This seems a daunting perspective, yet it actually is the only way to follow. There is a famous saying from an American engineer William Edward Deming: “Survival is not mandatory”.
The only way to ensure long-term success is establishing strong ties with your customers and boosting the customer loyalty. Positive end user experience is the key factor in this endeavor, and uninterrupted service availability, regular product updates and short feedback loops are the main parts of building a positive usage memories. All of the above are impossible without following the DevOps workflows and accepting the DevOps culture in your company.
Back in 2015, Ian Head, the Gartner’s Director of Research has said that trying to adopt DevOps tools without adopting the DevOps culture will fail in 90% of cases.
How to ensure the adoption of DevOps culture will be successful then? Here is the suggested workflow:
Unite the goals for Dev and Ops departments. When the developers have to think how their software shall work in production instead of simply tossing it over the wall to be the Ops concern, the quality of the software delivery improves rapidly.
Encourage cross-training and knowledge sharing. This is actually the hardest part after the years of siloing the tasks, tools and responsibilities. However, once the Devs taste the new convenience of collaboration, when the required servers are provisioned within minutes and not hours or days — the things begin to go steadily uphill. Vice versa, when the Ops can plan the required infrastructure beforehand and discuss the software requirements with the Devs on the design stage, the process of provisioning and running the infrastructure is greatly simplified.
Take small steps, but advance steadily. The change does not happen overnight, so expect some time to pass, yet you will be able to reap the benefits of better collaboration soon enough.
Automates everything that needs to be automated. Modern tools allow creating automated deployment scenarios, software and infrastructure delivery pipelines, enabling automated testing of the code, etc. This might seem a huge investment of resources on the start, yet the savings of time and effort will be tremendous in the long run — as once you automate everything it just works.
This digital transformation cannot happen on its own, of course. This initiative should receive the wholehearted support of the C-suite and the managerial staff, as your team leads and heads of departments should be the pioneers in accepting this new mindset and workflow. You will have to hold an explanatory meeting or two, outline the reasons for the transition to the DevOps methodology, the timeframes, the scopes of involvement of the external DevOps-as-a-Service providers, if you go for that route. These specialists will help your team learn the ropes of the DevOps approach and further assist your employees if need be. This way your business will be transformed and ready to stand the challenges of the rapidly-changing market.
Almost a decade ago it was said that software will eat this world. Will your company be the hunter or the prey?