See especially modifiability


Synonym: Mutability


One common theme popping up in projects is that change is the only constant. Code changes, architecture changes, technology changes, requirements change and people change. But often, change comes at a high cost. Things were just not prepared for change because doing so would have imposed the costs earlier on. But really the same costs? To reduce costs in the long run, wouldn’t it be beneficial to spend some effort in changeability upfront? Of course, but it is difficult to find the sweet spot between spending enough and too much effort to properly implement changeability.

… For aspects shall be distinguished:

  1. Robustness: the system is insensitive to a change in the surrounding environment.
  2. Flexibility: the system can easily be changed.
  3. Agility: the system can rapidly be changed.
  4. Adaptability: the system adapts itself to changing operating conditions.

Fabian Keller: Changeability in Software Architectures