Handle Disagreement as a Lead — Engineering Leadership, Part 9
Two engineers can't agree. Now what? Or: two teams want different things. You're in the middle.
Step 1: Disagree and Commit > Avoid (10 min)
Default culture: speak up; once decided, commit.
Not:
Avoid disagreement
Pretend to agree
Sandbag the decision
A team that can't disagree well makes bad decisions in silence.
Model it: disagree in public; commit after.
Step 2: Time-Box Discussion (10 min)
"Let's discuss for 30 minutes. If no consensus, I'll decide."
Don't let it drag. After enough talk:
Either pattern emerges (consensus)
Or you decide
Time-boxing forces resolution.
Step 3: Stay Curious (10 min)
When engineers disagree:
Listen first
Ask "Why do you think so?"
Steel-man both sides
Look for unstated assumptions
Often: they're optimizing for different things. Surface the underlying values.
Example:
A: "We should rewrite this in Go."
B: "We should not rewrite."
You: "A, what specifically does Go give us? B, what does the rewrite cost?"
The "disagreement" is often a missed shared problem.
Step 4: Use Data (10 min)
Replace opinion with data:
Benchmarks
Profiling output
User research
Cost analysis
Prior incidents
"Before we decide, can someone benchmark? Let's reconvene Friday."
Data dissolves many arguments. Run the experiment.
Step 5: Acknowledge Both Sides Have a Point (10 min)
"A's right that we need to scale. B's right that the rewrite is
expensive. Here's the trade-off..."
Validation reduces defensiveness. People feel heard. Decision lands better.
Don't dismiss either side.
Step 6: Decide When You Need To (10 min)
Sometimes consensus won't emerge:
"We've heard both sides. I'm going with option A because [reason].
B, your concern is real; let's set a check at Q4."
Specific. Explained. Bounded.
Leaders decide. Hiding behind "team consensus" when there isn't any = abdication.
Step 7: Disagree with Your Manager (15 min)
Same principles up the chain:
Disagree in private
Be specific
Bring options
Once they decide: commit
If commit is impossible (ethical issue, hard line for you):
State that clearly
Discuss alternatives
Sometimes: escalate to skip-level
Sometimes: leave
Rare. But know when the conversation is past disagreement.
Step 8: Cross-Team Disagreement (15 min)
Your team vs. another team:
Direct conversation first (you ↔ their lead)
Agreed plan; both leads commit
Document the decision
Escalate to managers only if direct fails
Don't:
Slack-throw teams under buses
Run to managers first
Stew quietly
Other team leads are your peers, not your opponents.
Step 9: When to Get Help (10 min)
You and another lead can't resolve it. Escalate:
To your manager
Co-write a brief: positions, options, recommendations
Both leads present
Manager either decides or pushes the brief up. Decision documented.
Use sparingly. Most disagreements resolve at peer level.
Step 10: Healthy Conflict Habits (10 min)
For long-term team health:
Make disagreement normal
Praise people who push back well
Apologize when you're wrong (publicly)
Don't penalize the dissent that turned out wrong
Decide; commit; move on
Teams that fight well make better decisions. Teams that suppress fight rot.
What You Just Did
Disagreement as a lead: disagree-and-commit, time-box, curiosity, data, validate both sides, decide, manage up, cross-team, escalate, healthy conflict. Productive friction.
Common Failure Modes
Suppress disagreement. Bad decisions; rot.
Endless debate. Decision paralysis.
Cave to the loudest. Wrong calls.
Decide without explanation. Lose buy-in.
Hold grudges after decisions. Future disagreement avoided.


