7 DevOps Practices For Outstanding Results
Forrester Reseach and experts Jez Humble and Gene Kim agree that version control is crucial for successful DevOps results. But what makes some organizations succeed, while others don't? Here are seven practices that highly productive organizations have in common for enhanced DevOps performance.
Version control of all production artifacts – Both Dev and Ops should use version control for everything and share the same single source of truth.
Continuous integration and deployment – Check in code every day and check into the trunk every day, as opposed to hanging onto private code branches and integrating only at the end of the release.
Automated acceptance testing – Stop the line not only when the build breaks but also when something breaks in an automated user test, an integration test, or a system test. This step keeps things in an always-deployable state.
Peer review of production changes – Use peer reviews for better quality; leverage your team’s familiarity, shared goals, and mutual accountability,as opposed to external change approval (such as a change advisory board).
High trust culture – This is both a practice and an outcome result from a single source of truth, peer reviews, and shared goals.
Proactive monitoring of the production environment – Monitor and communicate across the teams so everyone can see, understand, and affect end results and customer utilization.
Win-win relationship (and outcomes) between Dev and Ops – This approach counters the learned behavior that deployments hurt.By deploying code into production every day, you can change lives in Operations. Deployments don’t have to be done at midnight on Friday with Ops working all weekend to get things running. When Ops employees are working the same hours as Dev, there is a sense of teamwork and joint accomplishment.
As #1 on the list indicates, organizations should make sure they version everything – all elements across Dev and Ops, including environment artifacts. And when Ops uses the same version control system as Dev, anybody can reproduce the production environment based on what’s in version control.
Dev and Ops can depend on version control to ensure that changes to the code and environment are continuously being integrated and deployed into the production environment, resulting in higher performance and improved collaboration and trust between teams.