The ongoing maintenance of a system costs more that the initial development. It's not surprising that more people are hired for maintaining a legacy system, instead of building from scratch.
Improving the maintainability of a system reduces the cost and hence it's an over-going thing that most companies are thriving to achieve.
The maintainability of a system has not a concrete measurement like availability. However, it relates to several factors:
- How fast a but fix can be checked in and released;
- The number of operation engineers;
- The mean time to detect and resolve incidents;
- The number of security vulnerables by regularly security scanning and auditing;
- The size of the pool of tech debts;
- The size of the pool of new requirements;
- The number of you getting On-Call requests. 📞
Most factors can be categorized into three:
- The evolvability of the code.
- The operability of the system.
- The simplicity of the code and system.
There is no easy way to measure the maintainability of a system, though we can take a lot of actions to make it simpler, make the life of operations easier, and make it easier to extend and grow.