While DevOps is by now a well-established philosophy, practice and tool for boosting an organization's ability to rapidly deliver services and applications, one overriding DevOps myth still prevents many organizations from maximizing the value their teams are able to deliver.
That myth? That DevOps will fix your Dev culture.
Before DevOps, we had (and still have) Continuous Integration and Continuous Delivery (CI/CD). The myth is that implementing DevOps into your organization will magically modernize and speed software delivery. Unfortunately, this is not the case. The fact is, without a good CI/CD process the true benefit of DevOps will never really be put into practice.
Why Has This Belief Gained Traction?
Consider a traditional DevOps pipeline — most likely it fires an automated process on a code commit to a repository. This pipeline will first build the source and then either package it into a container or deploy it to an existing server (or possibly to a new machine from a virtual image). If the application you're building is still a monolithic beast and folks are only committing when features are complete, you have not really increased speed. You just changed the delivery process.
How Does This Myth Harm DevOps Processes and Teams?
Much of what's written around DevOps today focuses more on the “Ops.” Containerization and automated pipelines are great, but if your teams aren't in the habit of regularly checking-in their code, deployments to production will be few and far between. Consistent feedback is necessary to build quality software.
What Steps Can Be Taken to Dispel This Myth?
I recommend the following:
■ Ensure that developers are working in sprints and regularly checking-in their code.
■ Have multiple check-ins a day — even hourly. This is best to achieve the consistent feedback needed to increase the speed of application development.
■ Make sure Members of the DevOps teams attend all development meetings and planning sessions to ensure a comprehensive understating of the product being built. DevOps teams are often born from the Operations side of the house. But without DevOps members being fully integrated into the Development cycle, they're just implementing another way to manage systems.
■ Avoid large applications — Service-oriented architecture should be implemented where possible. This will allow developers to work on specific features simultaneously rather than an entire application. If you're in the cloud, consider uncoupling items that could be consumed as a service — such as queues, APIs and message-streaming.