4 Ways to Cultivate a CD Mindset
Aug 2, 2021 by Margaret Francis
Continuous delivery — CD for short — is well known as a core DevOps best practice. CD makes it possible for organizations to get high-quality, reliable software into the hands of end users as fast as possible by ensuring that code is always in a deployable state. This is regardless of how many developers are working on it, how frequently they make changes, or how many changes they make. CD entails building, testing and delivering improvements to code on an ongoing basis with help from automated tools, so that it’s possible to deploy as frequently as you’d like.
The goal is to make sure that you’re ready to roll out changes into production whenever you want or need to so that you’re able to ship software exactly as often as the business needs.
CD also enables software-centric companies to maximize the value they provide their customers, increasing business agility and enabling an organization to operate at the tempo that today’s market demands. Achieving this aim demands cross-organizational collaboration that goes beyond development and operations teams. It also requires a mindset shift on the part of everyone involved in building, using and maintaining the CD pipeline.
CD isn’t merely a set of technologies and processes, nor is it just a collection of principles and cultural practices: it’s both. Building an effective continuous delivery pipeline requires setting up automated tests, as well as version control, deployment automation and configuration management tooling. But, it also demands that everyone be working toward a common vision.
Here’s how to get developers, platform engineers and operations team members on board.
No. 1: Emphasize that CD’s benefits include greater job satisfaction as well as enhanced productivity.
Research continues to demonstrate that CD makes releases less painful, increases feelings of competence and accomplishment among practitioners and reduces burnout. In one recent survey, practitioners working in mature software delivery practices (incorporating both continuous integration and continuous delivery) reported feeling 1.5x happier and being 1.3x more productive than those in less mature practices.
This is no surprise. The “big bang” releases that were a hallmark of the waterfall methodology were invariably high-stress events, involving a myriad of post-live bug fixes and disruptions to customer experience in the best-case scenario and unexpected downtime in the worst.
When small builds are delivered more frequently, each change is much more manageable. If it’s quick and easy to deploy an app to production, developers can devote more attention to being creative, solving problems and writing code — the things they’re best at and enjoy most.
No. 2: Encourage end-to-end involvement in projects.
One of the biggest benefits of frequent release cycles is that they enable development organizations to collect ongoing feedback from end users about which features work well for them and which they don’t like. This gives developers first-hand visibility into the outcomes their code is driving. It makes it easy to see how improvements in software delivery enhance customer experience, which, in turn, boosts organizational performance overall.
Furthermore, in DevOps practices (incorporating CI/CD), developers are encouraged to communicate and collaborate with operators and vice versa. This gives every participant a deeper understanding of where their individual contribution fits within the release cycle and code base as a whole. Through the use of monitoring tools, developers will develop more advanced knowledge of operational issues in the environment, and will become able to chaperone changes they’ve made throughout the entire software development lifecycle. Taken together, these process changes make development a more holistic — and inherently satisfying — undertaking.
No. 3: Embrace iteration.
An organization that’s truly committed to continuously delivering small pieces of software can’t let fear of failure — or instability and outages in the production environment — slow it down. Because as many as 70% of outages are caused by failed updates, removing error-prone manual steps from the deployment process and instead implementing automated testing and deployment can significantly reduce the error surface. Once it’s possible to iterate safely and without fear of “breaking things,” developers can focus on innovation and software quality.
No. 4: Provide ongoing learning opportunities to sustain change.
Implementing continuous delivery requires adopting automated tools across the software development lifecycle, but it also entails taking on new responsibilities, communication patterns, and ways of working. This isn’t a small task. Organizations that embrace CI/CD practices as part of their culture are inevitably more successful than those that do not, but accomplishing this sort of sweeping transformation does require strategic change management.
Not only should practitioners learn to use the Continuous Delivery tools that will be employed in their organization, but they also should be encouraged to dive deeper into the DevOps philosophy on an ongoing basis. Training new hires on organization-specific best practices, as well as general tenets of CD, such as “build quality in” and “everyone is responsible” and “always pursue continuous improvement” is a way to keep the cultural imperative strong.
In today’s world, continuous delivery is growing ever more important as organizations strive to innovate in order to remain relevant in a rapidly changing business climate. Mastering the change management practices that will enable you to adopt CD successfully is essential if you want not just to survive but to thrive in the months and years to come.