Essay 16 - Three Rules of Deferred Decision-Making
This is what I remind myself to do on a daily
basis. It forces me to be problem-focused, not technology focused. It also
enforces the design principle of “deferred decision-making”.
- Isolate design decisions (via proper
allocation of responsibility) so that the final, final decision can be made as
late in the development process as possible.
- Create an architecture that allows
designers the freedom to tackle as many issues as possible as part of detailed
design.
- Create a detailed design that makes as
many questions as possible into simple programming choices.
- Make programming choices reconfigurable
with minimal rework.
- Implement reconfiguration through
run-time parameters: the final decisions are now the user’s to
make.