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.
Why Product Management Is 1 of the 7 DevOps Practices
Product management is an inherent part of all seven of the DevOps best practices. But why, or how? (Especially when we didn’t list it as one of the 7 DevOps best practices below!)
DevOps has become the standard for creating and delivering software, and this shift intertwines product management with DevOps. It makes sense though. The goal of product management is get the best product to market as quickly as possible. And, once products are with customers, product managers want to ensure the product continually works as well as possible.
And the role of DevOps? Get the best products to market as quickly as possible. Product teams are Ops teams now. So product management is part of all seven DevOps practices.
Version Control 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).
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.
Learn Why Versioning Everything is a DevOps Practice
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.
Note: This blog was published in March 2015. A few paragraphs were added in Dec. 2018.