Zooce

October 14, 2025

Maintainability != Changeability

There is a massive difference between "maintainability" and "changeability" that many don't seem to understand or even consider at all.

Let me give you a dumb analogy.

We maintain our vehicles because our vehicles generally don't change. We replace oil, but it's the same oil. We replace the air filter, but it's the same air filter. Same goes for spark plugs, belts, fluids...you get what I'm saying.

We change our vehicle's tires. We replace old tires, but we can use completely different tires. This is possible because the interface between the wheels and the tires stays the same. The same goes for the wheels themselves - we can replace them with completely different wheels.

"Maintaining software" is an oxymoron because to maintain something is to generally keep it the same while a fundamental property of software is change.

How to make software changeable?

There are exactly two foundational engineering principals that, in my experience, always lead to changeable systems (using my own terms):

  1. Isolation of Inseparable Work (similar to Separation of Concerns)
  2. Necessary Responsibility (similar to Single Responsibility)

Isolating Inseparable Work

Most people would refer to the principal called Separation of Concerns here, but that description is wildly abused in reality. I like the term Isolation of Inseparable Work. The main idea behind this is to group work together that must be together and connect these groups of work with small and specific interfaces. Those interfaces are what you expect to "maintain" while the groups of work can freely "change" over time.

Necessary Responsibility

Like Separation of Concerns, the Single Responsibility principal is often misused. I prefer the term Necessary Responsibility because it focuses necessity in a group of work instead of a count, which has nothing to do with anything meaningful. Just do the necessary work. Just solve the problem directly. Sometimes that means one "responsibility" and other times it means more. As long as the work is necessary, you're good. This is complimented by the first principal of Isolating Inseparable Work.