Keep Options Open
- Categories
- Architecture
Good design preserves the freedom to change course. Because requirements, technologies, and understanding all change, the valuable property is not forecasting the future correctly but keeping decisions cheap to revise: defer commitment until the last responsible moment, and isolate choices so a wrong one can be undone.
Reinforced By
- Reversibility — keep important decisions behind abstractions so a choice that turns out wrong can be undone without rewriting everything.
- Orthogonality — independent parts let one decision change without disturbing the rest.
- Schema Evolution — encodings that stay backward and forward compatible let data and code change independently.
- Derived Data — views you can rebuild from a source of truth keep storage and indexing choices revisable.
- Last Responsible Moment — commit only when deferring would cost more than deciding, so choices are made with the most information.
- Fitness Functions — automated guards that let an architecture keep evolving without silently losing the qualities that matter.
Why it Matters
The Pragmatic Programmer argues at the level of code and architecture that there are no final decisions, so reversibility and orthogonality keep change cheap. Designing Data-Intensive Applications argues the same at the level of data: data outlives code, so encodings must evolve, and derived data should be rebuildable rather than locked in. Fundamentals of Software Architecture makes it the architect's stance: defer decisions to the last responsible moment and guard the architecture with fitness functions so it can evolve safely. Across software craft, data systems, and architecture the worldview is identical: you cannot foresee what will change, so build to change cheaply instead of betting on a forecast.
Tension
Keeping options open is itself a cost: every abstraction, compatibility rule, and rebuildable view is added complexity and indirection. At some point committing is cheaper than staying flexible. The skill is knowing which decisions deserve a two-way door and which to simply make.