Format for making design choices:
-
Problem: what are we trying to solve
-
Assumptions: what assumptions can we make about the problems, use cases and potential solutions
-
Required optionality: what options do we need to leave open; make room for
As chief architect, I am frequently asked whether an architecture is good. My standard answer to that is "it depends". It depends on what problem the team is trying to solve, which assumptions they can make, and which options they need to leave open. Often it turns out that answering these questions helps them make better architecture decisions.