As the wind picks up again in Wellington it’s time to think how change sweeps into a solution, and how the last part of the EndGame manifesto — Maintainable — addresses this.
Picking up from where I last left off in Why Sturdy?, the team at EndGame are always looking to produce solutions that are long lived. As such, you can expect that maintenance will need to happen at some point. And, while we will create sturdy solutions (which act to remove the need for the support maintenance) we are customer driven so the feature set will change over time.
A business solution must be maintainable. If it’s set in stone, it can’t bend to the constant winds of change. Unfortunately, a truly sturdy solution can easily be made obsolete by change.
If sturdy is the ability of the solution to be become invisible, maintainability is the ability to observe and change it. Here’s another way to look at it:
Maintainable solutions need to be observable, modifiable and describable.
Observable — To support the solution over its life, we need to see into its working state to form an opinion. At the lowest level this may be logs and monitoring from underlining infrastructure. But the customer must also be able to observe through dashboard metrics and reports.
Modifiable — To respond to change or correct errors, we must be able to modify the solution — this is more than just having a maintainable code base. The business solution as a whole must be nimble. Design, test, support and business functions must have the levers to modify their domain and have that flow into the business.
Describable — To maintain something you must be able to describe it, so that you know what you’re observing or modifying. Once again this must take many forms as it will be used to communicate between each function of the business.
For example, one of the key changes that can happen to a business is a change in staff. Without being able to describe the solution to the right level of detail new people will be unable to work with the new solution.
With these three points working together (observe, modify, describe) you gain the ability to float on change — rather than the need to steadfastly resist it — which is the heart of maintainability.
Thanks to Elliot Strange.