Accelerate: Metrics That Define High-Performance Software Delivery
Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim was released in 2018, and it changed how I think about software delivery.
Who really is responsible for the software delivery business or engineering? The book summarizes years of research of the State of DevOps Reports and presents four key metrics to measure software delivery performance. Each measure balances the other in such a way that an organization can perform well only if business and engineering work hand in hand, and it’s hard for someone to cheat the system!
Here is how the four measures are defined in the State of DevOps Reports 2022.
Deployment Frequency
For the primary application or service you work on, how often does your organization deploy code to production or release it to end users? The best in this category would be organizations that can deploy their code more than once a day.
Lead Time For Changes
For the primary application or service you work on, what is your lead time for changes (i.e., how long does it take to go from code committed to code successfully running in production)? The best-performing organization has a lead time ranging from one day to one week.
Time To Restore Service
For the primary application or service you work on, how long does it generally take to restore service when a service incident, or a defect that impacts users occurs (e.g., unplanned outage or service impairment)? Best companies can recover in less than one day.
Change Failure Rate
For the primary application or service you work on, what percentage of changes to production or released to users result in degraded service (e.g., lead to service impairment or service outage) and subsequently require remediation (e.g., require a hotfix, rollback, fix forward, patch)?
Best companies allow such incidents to be as low as 0 to 15%
These measures keep both business and engineering in check because they self-balance each other. If you try to reduce the lead time to change without adopting proper engineering practices, then your change failure rate may increase. If you want to decrease the change failure rate by never upgrading your customers, then your deployment frequency may reduce so on and so forth!
At Incubyte, we’ve taken software craftsmanship to heart. Internalizing an Agile and craftsmanship mindset has helped us focus on what makes our customers and end users happier. Small and frequent releases help us get value in the hands of the end users fast, get feedback from them fast, and continuously refine the product to create maximum impact - fast! Disciplined engineering practices have ensured that our software is always stable and bug-free. A user-first approach helps not only build the right product, but also fosters a collaborative and productive relationship with our customers.