Note: This started as a scratchpad I wrote as CTO at dbt Labs to think out loud about decision-making. It’s a draft of my own thoughts — sharing here as a work in progress.
Decisions at any level of a company — from how a module catches errors to next year’s budget — are the one thing that most determines its long-term success. Most teams I’ve been in don’t do this well.
We had a leadership principle, We debate and decide, that we kept coming back to. Over time, talking about how we needed to make and communicate decisions better, I realized we were conflating phases of a decision that are actually quite different from each other. Each phase has its own work, its own failure modes, and its own success criteria. Mixing them up is one of the most common ways teams stall out.
Here’s the way I started thinking about it: every decision moves through five phases — the 5Ds.
DISCOVER
All decisions need to have data. We need to discover the right amount of data — not too little, not too much. The goal is enough to make a justified call, not so much that we’ve burned weeks gold-plating the inputs to a decision that needed to be made yesterday.
DEBATE
We have healthy discussions, with all the different dimensions of healthy — including the meta-question of whether this decision is even important to make right now. Some debates are worth having; others are a sign we’ve over-scoped what’s in front of us.
DECIDE
We make sure we have the right data, the right people, and we make a decision in the right timeframe. Once made, we stick with the decision until and unless we have new information that warrants making a different one. People who choose to be absent during the decision-making process (if invited) default to committing to it. Frame the decision clearly. Allow no ambiguity, even if your stakeholders hate how nitpicky you are about the wording.
DECLARE
Communicating the decision to the right audience, in the right way. This is the phase that gets shortchanged most often — we make the call, then move on, and a quarter later discover that half the org didn’t know. Cascading is a discipline of its own: who needs to know, in what order, with what context, and how do they know they’re supposed to act on it?
Communicate the decision in a durable way — a written artifact people can return to. Once made, make it clear you’ll stick with it until/unless new information warrants revisiting. No intermediate states, no ambiguity.
DELIVER
We do the thing — with no doubts, no caveats — and we monitor our delivery. If new data shows up (which it often does), we go back to the top of the 5Ds. Otherwise, we march on. A decision that doesn’t get delivered isn’t a decision; it’s a wish. And it’s this clarity — that we’re delivering until we hear otherwise — that builds a culture where decisions actually matter.
The reason I find this framework useful isn’t the five labels — it’s that naming the phases gives a team a vocabulary for diagnosing where a decision is stuck. “We’re not stuck on the decision, we’re stuck in the debate” is a different conversation than “we decided weeks ago, we just never declared.” Different problem, different fix.
