From f554b64c8e0693c61cc128cd308d50592e8831ce Mon Sep 17 00:00:00 2001 From: Philippe Bourgau Date: Thu, 27 Nov 2025 07:34:41 +0100 Subject: [PATCH 1/3] test: fix approvals tests To accomodate for new "Describe your experience" activity --- .../test_generated_search_json.test_search_json.approved.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_generated_search_json.test_search_json.approved.json b/tests/test_generated_search_json.test_search_json.approved.json index a19686e5..5f7d204a 100644 --- a/tests/test_generated_search_json.test_search_json.approved.json +++ b/tests/test_generated_search_json.test_search_json.approved.json @@ -139,6 +139,10 @@ "title": "Activity: Web Hunt", "url": "/activities/connect/webhunt.html" }, + { + "title": "Activity: Describe Your Experience", + "url": "/activities/connect/your_experience.html" + }, { "title": "Code Smell: Alternative Classes with Different Interfaces", "url": "/code_smells/alternative_classes_different_interfaces.html" From 18c7e230186bccb008603cdc58518d5100be6ee5 Mon Sep 17 00:00:00 2001 From: Philippe Bourgau Date: Wed, 19 Nov 2025 06:30:11 +0100 Subject: [PATCH 2/3] feat: add Decider Protocol learning hour --- _learning_hours/ensemble/decider.md | 128 ++++++++++++++++++ ...search_json.test_search_json.approved.json | 4 + 2 files changed, 132 insertions(+) create mode 100644 _learning_hours/ensemble/decider.md diff --git a/_learning_hours/ensemble/decider.md b/_learning_hours/ensemble/decider.md new file mode 100644 index 00000000..5b313808 --- /dev/null +++ b/_learning_hours/ensemble/decider.md @@ -0,0 +1,128 @@ +--- +theme: ensemble +title: The Decider Protocol in Ensemble Programming +kata: calc_stats +difficulty: 1 +author: philou +tags: teamwork +--- +# The Decider Protocol in Ensemble Programming + +* **Theme:** Collaboration & Decision-Making in the Ensemble +* **Duration:** ~60 minutes +* **Level:** Intermediate (teams already doing ensemble or pairing) + +## 🎯 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 next week. + +## 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]({% link _activities/conclusions/popcorn_feedback.md %}), 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]({% link _activities/conclusions/popcorn_feedback.md %}) 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](https://github.com/philou/Supermarket-TestDesign-Kata/tree/ugly_tests). + +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](./emojies_124all_design.md) 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**](./emojies_and_124all_design.md), combine them naturally: + +* πŸ— β†’ pause for design β†’ 1-2-4-All β†’ Decider β†’ Act. +* Otherwise, this learning hour stands completely on its own. + +The Decider is one of the core protocols, can find more details here: [Decider Protocol](https://thecoreprotocols.org/protocols/decider). + diff --git a/tests/test_generated_search_json.test_search_json.approved.json b/tests/test_generated_search_json.test_search_json.approved.json index 5f7d204a..29900106 100644 --- a/tests/test_generated_search_json.test_search_json.approved.json +++ b/tests/test_generated_search_json.test_search_json.approved.json @@ -603,6 +603,10 @@ "title": "Ensemble Learning Hours", "url": "/learning_hours/ensemble.html" }, + { + "title": "Learning Hour: The Decider Protocol in Ensemble Programming", + "url": "/learning_hours/ensemble/decider.html" + }, { "title": "Learning Hour: Ensemble Emojies and 124All-Design", "url": "/learning_hours/ensemble/emojies_and_124all_design.html" From 9b238dfaf79f0ea7885cca75cb0538faf4f96a87 Mon Sep 17 00:00:00 2001 From: Philippe Bourgau Date: Tue, 25 Nov 2025 07:24:08 +0100 Subject: [PATCH 3/3] doc: fix typos and links in Decider learning hour - link to supermarket kata - use % link % liquid links - improve wording --- _learning_hours/ensemble/decider.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_learning_hours/ensemble/decider.md b/_learning_hours/ensemble/decider.md index 5b313808..7fba40d5 100644 --- a/_learning_hours/ensemble/decider.md +++ b/_learning_hours/ensemble/decider.md @@ -1,7 +1,7 @@ --- theme: ensemble title: The Decider Protocol in Ensemble Programming -kata: calc_stats +kata: supermarket_receipt difficulty: 1 author: philou tags: teamwork @@ -19,7 +19,7 @@ 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 next week. +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) @@ -67,7 +67,7 @@ Facilitator runs one quick example with everyone: Discuss: _What are your first impressions?_ Use the [popcorn share]({% link _activities/conclusions/popcorn_feedback.md %}) 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. +Note: If the team already knows the [Emoji Protocol or 1-2-4-All]({% link _learning_hours/ensemble/emojies_and_124all_design.md %}), mention briefly that Decider complements these very well. Otherwise, skip. ## 3️⃣ Concrete: Practice in short, realistic rounds (30 min) @@ -77,7 +77,7 @@ 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](https://github.com/philou/Supermarket-TestDesign-Kata/tree/ugly_tests). +As a reference, with a team of system testers, we used ["Uglified Tests" from the Supermarket Kata](https://github.com/philou/Supermarket-TestDesign-Kata/tree/ugly_tests). Tip: LLMs are really good at making code messier! @@ -91,7 +91,7 @@ Run as many Decider cycles as you can: ### 1-2-4-All Option: -If the team did the [Emojies and 1-2-4-All-Design](./emojies_124all_design.md) 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. +If the team did the [Emojies and 1-2-4-All-Design]({% link _learning_hours/ensemble/emojies_and_124all_design.md %}) 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) @@ -119,10 +119,10 @@ Wait for team members to come up with propositions, and make them use the decide ## πŸ’‘ Optional Extensions & References -If the team already practiced [**1-2-4-All** and **Emoji Protocols**](./emojies_and_124all_design.md), combine them naturally: +If the team already practiced [**1-2-4-All** and **Emoji Protocols**]({% link _learning_hours/ensemble/emojies_and_124all_design.md %}), combine them naturally: * πŸ— β†’ pause for design β†’ 1-2-4-All β†’ Decider β†’ Act. * Otherwise, this learning hour stands completely on its own. -The Decider is one of the core protocols, can find more details here: [Decider Protocol](https://thecoreprotocols.org/protocols/decider). +The Decider is one of the Core Protocols, can find more details here: [Decider Protocol](https://thecoreprotocols.org/protocols/decider).