June 28, 2017
Operability is the ability to keep an equipment, a system or a whole industrial installation in a safe and reliable functioning condition, according to predefined operational requirements. ~https://en.wikipedia.org/wiki/Operability
The term Operability caught my attention during Dan North’s keynote titled Ops and Operability @ Pipeline Conference. I had heard this term many times in the past, especially as part of "ilities". But this talk was different, about the importance of developers asking and experiencing the answers for the below questions:
So how do you measure Operability? How do you need to know what needs to be improved?
State of DevOps Report ‘17
Every year, Puppet along with Nicole Forsgren, Jez Humble, Gene Kim, Nigel Kersten publishes this report by analysing the results of a survey that they conduct. They have received more than 27,000 responses over the last six years and found clear evidence that DevOps practices yield remarkable results for IT teams and organisations.
The report measures the performance of various teams using the following four metrics and categorises them as High, Medium and Low performers.
Lead time [from commit to production]
Mean Time to Recovery
Change Failure Rate [% of changes resulting in impairment or service outage requiring hotfix or patch]
The analysis shows that the high performing teams always outplay the rest on all the above metrics by:
On Demand deployment over deployments once per week or month
Less than an hour of Lead time than once in a week to a month
Less than an hour of Mean time to Recovery than once in a week to a month
0-15% Change Failure Rate than 30-45%
The reasons the high performance teams outplay others are due to:
High level of Automation [build, test and deploy automations]
Loosely coupled Architecture
Lean product development [working in small batches with tight feedback cycle]
To summarise, Continuous Delivery, DevOps along with Lean product development helps the team to be high performant.
The report covers in detail about each aspect of the above. You can download the report from the below link.
Aim for Operability
Coming back to Operability, the topic of this post, Continuous Delivery focuses on Operational Excellence. As Steve Smith has mentioned in the post Aim for Operability, not DevOps as a cult:
Operability is of critical importance to Continuous Delivery, as throughput is dependent upon the ability of the organisation to maintain safe and reliable systems according to its operational requirements.
And focusing on improving the four metrics mentioned above - Deployment Frequency, Lead Time, Mean time to Recovery (MTTR), Change Failure Rate - helps you to improve Operability. These metrics are for improving the flow - a continuous flow of value to the customers.
Key for this, IMO, is building resilience - resilient teams, resilient management and leadership and resilient systems. And that is where the culture comes into the picture, a culture where there are blameless postmortems to learn from incidents and take appropriate measures in the future.
I had written briefly about how to get started with Continuous Delivery at a very high level. If you are really keen on taking it forward, please read DevOps Handbook by Gene Kim, Jez Humble, Patrick Debois, and John Willis.