Version Control in DevOps Is More Important Than You Thought
According to over 9,200 survey responses, using version control tools in DevOps predicts higher performance. We collaborated with Jez Humble, co-author of Continuous Delivery, Dr. Nicole Forsgren Velasquez, and Puppet Labs, to design the 2014 State of DevOps Research Study. The results found that version control in DevOps was a higher indicator of performance than using version control for code alone.
The survey uncovered five cultural and technical practices that were top indicators for performance. They included:
- Organizing production artifacts using version control tools in DevOps.
- Adopting peer-reviews to scrutinize changes instead relying on external approvals.
- Proactive monitoring
- High trust within an organization's culture.
- Win-Win relationships between Dev and Ops.
Version control in DevOps consistently improved deployment lead time, deployment frequency, and Mean Time to Recover (MTTR). It was also enhanced job satisfaction for our survey candidates.
2014 State Of DevOps Report
There are several practices that high-performing teams adopted to increase throughput and reliability. One common factor was version control in DevOps.
Implementing version control boosted team's performance. They had more frequent production deployments, 8000 times faster deployment lead times, 50 percent lower change failure rates, and faster service restoration times when something went wrong.
These organizations were also two times more likely to exceed in profitability, market share, and productivity goals.
Support Teams With Version Control DevOps
So why is version control tools in DevOps so effective? Here are some reasons why.
There are more configurable settings in an environment than in the code. If something is misconfigured, it can result in the service not functioning correctly. When migrations fail, it is most often due to misconfigurations in the environment, not problems in the code.
One countermeasure is that all production configuration must be checked into version control. This serves as the single source of truth that can be deployed for all environments.
Stability In Version Control
Continuous delivery requires developers to create production-like environments on-demand via an automated build process. To ensure repeatable outcomes, the build mechanism and its dependencies should be checked into version control. This allows anyone to re-create environments based only on what is available in version control. This removes errors that can occur when relying on as individual or tribal knowledge, a build document, or a Wiki page.
Dev and Ops can count on version control to ensure changes to the code and environment are continuously being integrated and deployed. Version control for DevOps translates into increased IT and organizational performance.
For more information on DevOps and version control, check out our webinar: DevOps Done Right: The How and Why of Versioning Environment Artifacts.