Decision Making
Table of Contents
Every Decision Has a DRI
DRI stands for Directly Responsible Individual. For any meaningful decision, there’s one person who owns it. The DRI:
- Gathers input from stakeholders
- Makes the final call
- Documents the decision and reasoning
- Takes responsibility for the outcome
The DRI doesn’t need consensus. They need input. The difference matters - consensus leads to watered-down decisions that make nobody happy. Input leads to informed decisions made by someone accountable.
RFCs for Big Decisions
For decisions that affect multiple teams, change architecture, or are hard to reverse, we use a lightweight RFC (Request for Comments) process:
- Write a doc describing the problem, proposed solution, alternatives considered, and trade-offs
- Share it broadly - post in the relevant channel and tag stakeholders
- Set a deadline for feedback (usually 3-5 days)
- Make the call - the DRI decides, incorporating feedback as they see fit
- Document the outcome - update the RFC with the decision and reasoning
Not every decision needs an RFC. Use your judgment. If it’s easily reversible and low-risk, just do it and tell people what you did.
Disagree and Commit
Once a decision is made, everyone commits to it - even those who disagreed. You can:
- Voice concerns before the decision
- Propose alternatives during the feedback period
- Ask for the reasoning behind the decision
You should not:
- Relitigate settled decisions without new information
- Undermine a decision you disagreed with
- Refuse to execute because you would have decided differently
If new information emerges that changes the calculus, raise it. Decisions aren’t permanent - but they should be respected until they’re explicitly revisited.
Reversible vs. Irreversible
Not all decisions are equal. We think about decisions on a spectrum:
- Easily reversible (feature flag, UI change, internal process) → Decide fast, bias toward action
- Hard to reverse (architecture choice, pricing model, public commitment) → Take more time, gather more input, write an RFC