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).