How do you decide when you have enough information to make an architectural decision?
Show the full answer Hide the answer
What is being tested
Whether you calibrate information-gathering to reversibility and consequence rather than to comfort.
First, classify the uncertainty
- Resolvable cheaply. A two-day spike answers it. Most performance and integration questions are here — and arguing about them for two weeks instead of measuring for two days is a common and expensive error.
- Resolvable expensively. A month of work would answer it. Worth doing only if the decision is irreversible and consequential.
- Irreducible. Future traffic, competitor behaviour, business direction. No analysis helps.
Most debated uncertainty is in the first category and is being treated as though it were in the third.
Then match the rigour to reversibility
Two-way doors — reversible in days or weeks — deserve a quick decision and an experiment. Most library choices, internal boundaries inside a monolith, deployment tooling.
One-way doors — the primary data store, the tenancy model, the shard key, a public API contract with external consumers — deserve deliberation proportionate to their cost.
Spending three weeks on something you could undo in a day is a real waste. So is choosing a shard key in an afternoon.
The most valuable move
Convert a one-way door into a two-way one. An abstraction at the boundary, verified data portability, a migration path proven at small scale. That changes how much analysis the decision needs, which is frequently cheaper than the analysis would have been.
When you have enough
You have enough when more information would not change the decision. That is the test, and it is answerable: for each open question, ask what you would do differently under each possible answer. If the answer is "the same thing", the question does not need answering.
For irreducible uncertainty
Do not gather more information. Design for it:
- Preserve optionality where it is cheap.
- Delay the irreversible decision to the last responsible moment — after which delaying costs more than deciding.
- Design for a range, not a point estimate.
- Write down the assumption and its trigger: "we assumed under 100,000 tenants; revisit at 50,000."
What to communicate
State the uncertainty explicitly and quantify where possible. Concealed uncertainty is discovered later and costs credibility; stated uncertainty is credible and invites help.