Written by Bobby Woolf and Donald Lutz
Software development organizations should adopt a DevOps culture because it enables them to continuously deliver software faster with fewer problems. It also enables those problems to be discovered sooner, so they can be fixed more easily. Let’s consider what a DevOps culture is, its advantages, and the best practices for adopting it.
What is a DevOps Culture?
A DevOps culture aligns the development and operations teams so they can work well together. The development team creates an application that embodies user functionality. The operations team—which incorporates infrastructure, automation, security, and site reliability engineering (SRE)—deploys the application into the production environment and keeps it running. The better these two teams work together, the more the users benefit.
In a DevOps culture, operations and software engineers collaborate throughout the entire service lifecycle, from initial concept through the engineering process to production support. Traditionally, development has created the application and then “throws it over the wall” for operations to deploy and manage. Changing this culture requires collaboration, communication, and leadership.
What are the advantages of a DevOps Culture?
Adopting a DevOps culture has several benefits:
-
- Improved application quality – The application works better because iterations include developing user functionality and deploying it into a production-like environment. Problems are discovered in earlier iterations, and everything needed to deploy the application to production has already been done before in test environments.
- Improved engineering engagement – All roles—not just requirements and development, but also testing, infrastructure, deployment, security, monitoring and management—become involved early in the development process. This continuously ensures that the application meets both functional and non-functional requirements.
- Improved trust, collaboration, and innovation – Teams work better together through constant interaction, with daily opportunities to learn and build trust by working towards common goals.
- Improved team morale – Each team sees its efforts incorporated sooner and how their contributions add value to the whole.
- Rapid feedback – Each team can learn from its mistakes sooner and improve its contributions to the process.
- Blameless culture – Every “mistake” is seen as an opportunity to strengthen the system.
- Improved velocity – Aligned teams can more easily produce releases faster and with better quality.
However, changing a cultural paradigm is difficult. Friction can include:
-
- “Us vs. Them” mindset – Development implemented the user functionality; it’s not their fault if operations can’t keep the application running reliably. Teams must learn to work together for shared success.
- Velocity risk – Management may assume work being done quickly means it’s also being done carelessly. Additional effort may be needed to set expectations and build trust.
- Job security threat – Staff members may worry they’ll be obsolete as their tasks become automated and shared across the new team structure. They need to adapt and embrace new responsibilities that are required for the new paradigm to succeed.
- Learning curve – A project may move more slowly at first while teams learn how to work together and adopt new tools. The project needs to set this expectation up front and management needs to support the process.
The benefits of adopting a DevOps culture well easily outweigh the difficulties. It’s an investment toward making the teams more effective in the long run.