What is software operability?
Operability: the properties of a system which make it work well in Production
A software system with good operability delivers not only reliable end-user functionality, but also works well from the perspective of the operations team.
Such software has been built to operate successfully without needing application restarts, server reboots, load-balancer hacks, or any of the countless other fixes and work-arounds which operations teams have to use in order to make many business software systems work in practice on a daily basis.
Software systems which follow software operability good practice will tend to be simpler to operate and maintain, with a reduced cost of ownership, and almost certainly fewer operational problems.
Product delivery teams with end-to-end responsibility will generally produce systems with better operability than teams split into the traditional Dev + Ops silos. Many organisations today are still in this siloed world of Dev + Ops, but by gaining a better understanding of software operability, many engineering teams will move instinctively towards a “you-build-it-you-run-it” model advocated in the book Team Topologies.
Team Guide to Software Operability
For a software team, operability can often seem a distant and secondary concern, when features need to be delivered to schedule and budgets are tight. However, with a small amount of effort, we can make some basic design and implementation decisions which make the resulting software significantly more effective during operation.
With software systems becoming more (not less) complicated, we need ways to enable software teams to treat software operability as a first class concern; these pages and the accompanying book - Team Guide to Software Operability - aim to help software teams understand and implement software operability effectively.