Introduction to System Design: What is Maintainability?

Scott Cosentino
3 min readJun 19, 2023

When you develop software, you must continue maintaining the software you created until it reaches its end of life. The maintenance phase of the software life-cycle is often longer and more expensive than the development phase. Due to this, you must design software so that it is easily maintainable.

We can divide maintainability into three main categories: operability, simplicity, and evolvability. This article will explore these three categories to better understand how to achieve maintainability.

What is Operability?

Operations teams are essential to keeping software systems running. Operations teams are generally responsible for tracking the health of a system, tracking down causes of failures, keeping software and platforms up to date, and performing various maintenance tasks. A software system that has good operability makes these tasks easy to complete. To achieve operability, you should ensure your system:

  • Provides good visibility and monitoring for the runtime behaviour of your system
  • Provides the ability to integrate 3rd party tools and automation
  • Is designed to be as hardware independent as possible
  • Has good documentation that clearly describes how to complete tasks and how…

--

--

Scott Cosentino
Scott Cosentino

No responses yet