DevOps without measuring the right metrics will be a failure
DevOps — not easy, but we can’t afford to not to do it.
DevOps enables faster delivery, better quality of the software and overall engineering efficiency. But by simply declaring that moving toward DevOps principles without a defined way for tracking success won’t help to succeed with DevOps.
Today every organisation increasingly rely on their ability to deliver and operate software systems to achieve their goals. To compare the performance on the delivery performance, the latest State-of-DevOps report recommends five measures as the key parameters for software delivery and operational (SDO) performance:
✅. Deployment Frequency: How often changes are released into production
✅. Lead time for change: How long it takes to deploy code to production from the time it is committed to code repo
✅. Time to restore service: How long it takes to restore a service incident that impacts its users
✅. Change failure rate: What % of changes to production result in service failures
✅. Availability: How well teams define the availability of their systems and track them effectively
The right and optimal level of DevOps/DevSecOps adoption is the key to increasing SDO performance. Here are a few capabilities that are referred to in the report as paramount for a positive improvement:
☑️ Loosely coupled architecture.
☑️ Trunk based development
☑️ Continuous Integration
☑️ Automated Testing
☑️ Disaster Recovery Testing
☑️ Culture of psychological safety
Now let’s look at what can we measure with DevOps, at a high level here are a few metrics :
Track development iteration length, team velocity and burndown to understand the health of the teams and project
Build Testing Pass/Fail Rate
When measuring builds, unit testing is done well matters. Automate 100%.
Code coverage %
Measure code coverage and reject anything below a baseline