Direct answer
I would stop the escalation, reset the meeting to the decision we need, make each side's argument visible and testable, find the real crux, and end with either a decision or a named owner, a test and a date. I treat the 15 minutes as five timeboxed steps (each has a fixed time limit).
Terms: psychological safety means people believe they can speak up, disagree or admit a mistake without being punished or humiliated. Technical debt is the accumulated cost of earlier shortcuts in code or design. Parking lot is a visible list where off-topic points are written down to be handled later. Crux is the one point the disagreement actually turns on. Disagree and commit means voicing an objection, then backing the decision once it is made.
Step-by-step (15 minutes)
| Minutes | Step |
|---|
| 2 | Pause and reset the room |
| 2 | Restate the decision and park side issues |
| 5 | Structured positions: claim, evidence, what would change your mind |
| 3 | Find the crux: assumptions and uncertainty |
| 3 | Decide, or define the next step with owner and date |
That is 2 + 2 + 5 + 3 + 3 = 15.
1. Pause and reset (2 min)
Interrupt calmly: "Let me pause us. I can hear that this matters to everyone." Slow the pace, lower my voice, and name the norm: "We're arguing about the design, not about each other." If a person is being personal, I address the behaviour briefly and privately later.
2. Restate the decision (2 min)
"We need to choose between A and B by the end of today, or agree how to find out." Put it on a shared screen. Anything else goes to a visible parking lot.
3. Structured positions (5 min)
Each side gets about two minutes, no interruptions: what they believe, the evidence, and what would change their mind. I write these on the board. Listening to a time-limited statement is safer than a free-for-all and reveals whether the dispute is about facts or priorities.
4. Find the crux and surface assumptions (3 min)
Ask: "What would have to be true for A to be right? For B?" Often the disagreement reduces to one assumption (expected traffic, how hard a migration is). Write it down. If it is a fact, assign someone to test it. If a value (speed versus long-term maintainability), it belongs to the decision owner.
5. Decide or define the next step (3 min)
- If the crux is resolved or the owner can decide: they decide, state the rationale, and anyone who disagrees states it for the record (disagree and commit).
- If not: write the outstanding uncertainty, an owner, a test (e.g. a prototype or benchmark), a date and a decision-maker. Never end with "let's think about it".
Worked example (the five steps on a real argument)
Two engineers argue: A wants to add a cache in front of a slow search endpoint this week; B wants to redesign the query and indexes. Step 3 on the board: A: claim a cache fixes latency in days; evidence most requests repeat; would change my mind if hit rates turn out to be low. B: claim the query is the real problem; evidence the slow part is one unindexed lookup; would change my mind if indexing does not help in a test. Step 4, the crux: "will the same requests really repeat?" That is a fact, so one engineer measures repeat rates by Thursday. A second question, whether to accept some technical debt (cache invalidation logic to maintain) in exchange for speed, is a value, so the owner decides it. Step 5: the owner records "measure first, decide Thursday" and who runs the measurement.
After the meeting
Send notes within a day: decision or next step, outstanding uncertainties, owners and dates. Check in privately with anyone who seemed hurt.
Why it works / what I would change
It protects safety through norms, equal time and a visible process, and it converts heat into a testable question. If the argument is clearly personal rather than technical, I end the meeting and handle that separately. If the owner is absent, the correct output is a scheduled decision, not a vote of those present.