The "Why Now?" Question
Before adopting any new technology or pattern, demand a concrete reason — not "it would be cool."
The "Why Now?" Question
In one line: Before adopting any new technology or pattern, ask: why now, specifically? — and demand an answer that's a concrete problem, not a feeling.
"Why now?" is the single most useful question in tech-adoption meetings. If the answer is a specific, measurable problem — go. If the answer is vibes — wait. Most premature migrations die because nobody could articulate why this quarter was the right time.
The answer should be a concrete problem, not "it would be cool" or "the team wants to."
Good reasons
- "We're hitting Postgres limits we've measured."
- "This library version has critical security bugs we can't ignore."
- "Our hiring is constrained by language X."
- "The new framework solves a specific bug class we've had."
Bad reasons
- "It's the latest thing."
- "Other companies use it."
- "The team is bored."
- "It would look good on our blog."
- "I read a Twitter thread."
If you can't answer "why now?" specifically, the answer is probably "not now."
Forcing functions
Make the question explicit:
- Require justification in RFC templates.
- Include "what problem does this solve?" in tech proposals.
- Estimate the migration cost before deciding.
A team proposes migrating their backend from Express to Fastify "for performance."
"Why now?" forces the real conversation:
- Measured P99 latency? 80ms — the framework is not the bottleneck.
- CPU bound? No, mostly I/O wait.
- Cost pressure? No, server costs are 2% of revenue.
- Hiring pressure? No, Express engineers are abundant.
- Specific bug class? No, no relevant outages.
The actual answer turns out to be "one engineer read a benchmark blog post." The proposal dies after the meeting — saving roughly six months of migration work and avoiding the cost of a partially-migrated codebase. Months later, when the team does have a measured latency problem, they have the budget and credibility to address it properly.
Every adoption proposal should include an explicit "do nothing" option with its costs and benefits. Often "do nothing" is the right answer — and surfacing it forces the proponent to articulate what actually changes if you wait six months.
If the cost of waiting is unclear, you're probably not at the "why now" moment yet.
Common mistakes
- Accepting a hypothetical problem as a "why now." "We might need this when we scale to 10x" is not a why-now — it's a why-someday. Demand a problem that exists today and is measurable today, not a forecast that conveniently arrives whenever the proposer needs it to.
- Letting "we already started" function as the answer. Sunk-cost framing sneaks in: "we've already spent two months on the spike, we should just finish." If you couldn't justify starting today, you can't justify finishing — kill the work and reallocate. The two months are gone either way.
- Confusing "why this tool" with "why now." A team often picks a great tool to solve a real problem at the wrong moment. The right answer to "Postgres is hitting capacity in 18 months" might be "revisit in 6 months," not "migrate to a sharded database today." Match the timing to the urgency, not the elegance of the solution.
- Skipping the "do nothing" baseline because it feels lazy. Engineers feel uncomfortable advocating inaction — it sounds unambitious. But the do-nothing option is a real proposal with real costs, and writing it out is the cheapest way to discover that the migration nobody questioned was never worth it.
Page checkpoint
Did the 'why now?' question stick?
RequiredWhat's next
→ Continue to The Cost-of-Inaction Calculation — sometimes the cost of not deciding is bigger than picking the wrong option.