The Decider Protocol in Ensemble Programming

🎯 Learning Goals

By the end of this session, participants will:

  1. Understand the purpose and steps of the Decider Protocol.
  2. Practice making small, structured team decisions quickly and inclusively.
  3. Learn when to trigger a Decider during ensemble work to keep flow.
  4. End the session with a shared commitment: when and how they will try it from now on.

1️⃣ Connect: Decision Friction Mini-Retro (10 min)

Ask:

Think of a recent moment when your team got stuck deciding something (in an ensemble, a meeting, or even in chat). What keywords would you use to describe the situation and the consequences?

  1. 1 min alone: answer by yourself in silence.
  2. 2 min pairs: share and select a group answer.
  3. 4 min pairs of pairs: same thing.
  4. All: popcorn share, write down group answers.

Note: In remote, use the 1-3-all format.

Bridge:

Today we’ll explore a quick way to make clear, safe decisions so we can move forward together — the Decider Protocol.

2️⃣ Concept: Demo & walk-through (10 min)

Mini-explanation (5 min)

Show or read the five steps of the Decider Protocol:

  1. Propose: someone says “I propose …” (small, concrete, actionable).
  2. Clarify: short Q&A (max 1 min).
  3. Vote: everyone shows one hand at once (vote as if alone):

    • 👍 → Yes
    • 🤜 → Support it ()”I can live with this proposal”, “I think it’s the best we have right now” “I support it even if I have few caveats that I might raise later when I know more”)
    • 👎 → Block (Avoid blocking for minor stuff)
  4. Integrate:

    • If majority of 👎 and 🤜 → Drop the proposal 🗑.
    • Otherwise, for any 👎, ask each dissenter what must change to get to 🤜/👍, no arguing. Modify → re-vote ⚒.
  5. Act: when all are 👍 or 🤜 → GO ✅!

Demo (5 min total)

Facilitator runs one quick example with everyone:

“I propose that we code in silence for 10 minutes” Walk through Clarify → Vote → Integrate → Act.

Discuss: What are your first impressions? Use the popcorn share to collect answers.

Note: If the team already knows the Emoji Protocol or 1-2-4-All, mention briefly that Decider complements these very well. Otherwise, skip.

3️⃣ Concrete: Practice in short, realistic rounds (30 min)

Setup:

Show a short, messy code snippet.

“We’ll use the Decider Protocol to choose how we’d refactor this.”

As a reference, with a team of system testers, we used “Uglified Tests” from the Supermarket Kata.

Tip: LLMs are really good at making code messier!

Decide:

Run as many Decider cycles as you can:

  1. Anyone can propose a refactor or improvement (rename, extract, add helper…). Make sure proposals are small and concrete (variable name, fixture style, etc.).
  2. Go through the full Decider steps. As a facilitator, model the timing discipline, aim for flow and repetition so that the protocols becomes fast. (As a reference, we managed to run 6 decider cycles the first time we ran the learning hour)
  3. Visualy capture the results in two groups of “Aggreed improvements” and “Rejected improvements”.

1-2-4-All Option:

If the team did the Emojies and 1-2-4-All-Design Learning Hour before, start with a 1-2-4-All-Design round to generate improvement proposals, then ask each group to trigger a Decider on their favorite proposal in turn.

4️⃣ Conclusions: Feedback and Propositions (10 min)

Collect Feedback

Ask the following questions:

What did you notice about speed, safety, inclusion? How did it feel to commit and move on? Do you have any question about the practice?

Collect answers and record them visually.

Propositions

Remind them:

“We don’t need every decision to be perfect. We just need to decide safely and move forward.”

Then ask:

What do you propose to try in the ensemble?

Wait for team members to come up with propositions, and make them use the decider. They should come with 1 or 2 tweaks to the decider to try in the ensemble.


💡 Optional Extensions & References

If the team already practiced 1-2-4-All and Emoji Protocols, combine them naturally:

The Decider is one of the Core Protocols, can find more details here: Decider Protocol.