Evolvability

Summary: Making it easy for engineers to make changes to a system in the future.

Sources: chapter1

Last updated: 2026-04-15


Evolvability (also known as extensibility, modifiability, or plasticity) means the system’s requirements will almost certainly change over time, and the system should be easy to adapt to those changes (source: chapter1).

Key Factors for Evolvability

  • Agile Working Patterns: Test-driven development (TDD) and refactoring provide a framework for adapting to change (source: chapter1).
  • Good Abstractions: Abstractions can make a system easier to modify and adapt (source: chapter1).
  • Complexity Management: Simple systems are easier to evolve than complex ones (source: chapter1).
  • Compatibility: In distributed systems, backward-compatibility and forward-compatibility are essential for independently updating different parts of a system (source: chapter4).