Skip to content

Commit

Permalink
event(2023-11-03): Globay Day Of Code Retreat 2023
Browse files Browse the repository at this point in the history
  • Loading branch information
Fabien HIEGEL committed Nov 3, 2023
1 parent 5edc8a1 commit 72ccda8
Show file tree
Hide file tree
Showing 25 changed files with 494 additions and 63 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
submodules: recursive
- name: Install and Build 🔧
run: |
pip install mkdocs mkdocs-material
pip install mkdocs mkdocs-material mkdocs-include-markdown-plugin
mkdocs build
- name: Deploy 🚀
uses: JamesIves/[email protected]
Expand Down
2 changes: 1 addition & 1 deletion docs/constraints/code-swap/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ tags:
---
# Code Swap

Au début de cette itération, au lieu de supprimer le code de l'itération précédente, vous le léguez à un autre binôme.
Au début de cette itération, au lieu de supprimer le code de l'itération précédente, vous le léguez à une autre équipe.
3 changes: 3 additions & 0 deletions docs/constraints/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Contraintes

> 🔗 https://www.coderetreat.org/facilitators/constraints/
23 changes: 23 additions & 0 deletions docs/constraints/links.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
[TDD]: /code-retreat/constraints/tdd/
[Test && Commit || Revert]: /code-retreat/constraints/tcr/
[TDD As If You Meant It]: /code-retreat/constraints/tdd/as-if-you-meant-it/
[Outside-In TDD]: /code-retreat/constraints/tdd/outside-in

[Pas de if]: /code-retreat/constraints/no-if/
[No Primitives]: /code-retreat/constraints/no-primitives/
[Small Classes]: /code-retreat/constraints/small-classes/
[Tell, don't ask]: /code-retreat/constraints/tell-dont-ask/
[Immutable Code]: /code-retreat/constraints/immutable-code/

[Code swap]: /code-retreat/constraints/code-swap/
[Refactoring]: /code-retreat/constraints/refactoring/

[Pair-Programming]: /code-retreat/constraints/pair-programming/
[Règle du "Oui"]: /code-retreat/constraints/regle-du-oui
[Ping-Pong Pair-Programming]: /code-retreat/constraints/pair-programming/ping-pong/
[Strong Style Pair-Programming]: /code-retreat/constraints/pair-programming/strong-style/
[Silent Pair-Programming]: /code-retreat/constraints/pair-programming/silent/
[Mob-Programming]: /code-retreat/constraints/mob-programming/
[Blind Navigator]: /code-retreat/constraints/mob-programming/blind-navigator
[Mute Mobbers]: /code-retreat/constraints/mob-programming/mute-mobbers
[Many More Much Smaller Steps]: /code-retreat/constraints/many-more-much-smaller-steps
11 changes: 11 additions & 0 deletions docs/constraints/many-more-much-smaller-steps/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Many More Much Smaller Steps

> 🔗 https://www.geepawhill.org/series/many-more-much-smaller-steps/
Identifiez le prochain plus petit pas possible dans votre développement logiciel.
Dès que vous avez réalisé ce petit pas, changez de Driver.

> L'idée de cette contrainte est d'instaurer un ryhme dans la réalisation des tâches, comme ce qui est fait
> pour le [Ping-Pong Pair-Programming](../pair-programming/ping-pong)
Remarque : pour corser la difficulté, vous pouvez coupler cette contrainte avec la pratique [TCR](../tcr)
6 changes: 6 additions & 0 deletions docs/constraints/mob-programming/blind-navigator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Blind Navigator

> Contrainte spécifique au [Mob-Programming](index.md)
Le Navigateur n'a pas le droit de regarder le code.
Le Driver et les Mobber ont le droit de regarder le code et de le décrire au Navigateur.
14 changes: 11 additions & 3 deletions docs/constraints/mob-programming/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,18 @@
tags:
- constraint
---
# Mob Programming
# Mob Programming (aka. Team-Programming, Ensemble-Programming)

> "Mettre toutes les personnes travaillant sur la même chose, au même moment dans la même pièce, sur le même ordinateur."
> "Mettre toutes les personnes travaillant sur la même chose, au même moment dans la même pièce,
> sur le même ordinateur."
>
> -- Woody Zuil (traduction)
> -- Woody Zuill (traduction)
Le Mob-Programming est une approche collaborative de développement logiciel, où l'équipe entière travaille ensemble, en même temps sur la même code base.
L'équipe s'organise autour de trois rôles principaux :

- **Le Driver** est en charge d'écrire le code, et, plus généralement, d'interagir avec l'ordinateur. Il est la personne qui prend les décisions et qui est responsable du produit final.
- **Le Navigator** est la personne qui formalise les décisions de l'équipe pour les transmettre au Driver.
- **Le Mobber** est le rôle de tout membre de l'équipe autre que Driver et Navigator. Il est en charge de réfléchir, discuter et proposer des solutions aux problèmes actuels de l'équipe.

Ici : on va se limiter à des groupes de 3-5 personnes travaillant sur le kata.
8 changes: 8 additions & 0 deletions docs/constraints/mob-programming/mute-mobbers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Mute Mobbers

> Contrainte spécifique au [Mob-Programming](index.md)
> Pour le [Pair-Programming](../pair-programming/index.md), aller plutôt voir le [Silent Pair-Programming](../pair-programming/index.md)

Les Mobbers n'ont pas le droit de parler.
Ils peuvent s'exprimer par des gestes et, si le groupe l'accepte, par des onomatopées.
2 changes: 1 addition & 1 deletion docs/constraints/no-primitives/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ tags:
# Pas de primitive

## Niveau 1 🌶️
️Toutes méthode (autres que les constructeurs) ne doit accepter que classes comme argument et pas de primitive.
️Toutes méthode (autres que les constructeurs) ne doit accepter que des classes comme argument et pas de primitive.

Les nombres, les chaînes de caractères, etc. ne sont pas autorisés, même en utilisant les "classes primitives" de Java (Integer, Boolean, String, etc.).

Expand Down
9 changes: 6 additions & 3 deletions docs/constraints/pair-programming/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@ tags:
---
# Pair-Programming

Travailler à deux sur un même ordinateur nécessite de définir des rôles
Le Mob-Programming est une approche collaborative de développement logiciel,
où un binôme travaille ensemble, en même temps sur le même ordinateur.
Le binôme s'organise autour de deux rôles principaux :

- Le Driver : la personne au clavier
- Le Navigator : la personne qui n’est pas au clavier
- **Le Driver** est en charge d'écrire le code, et, plus généralement, d'interagir avec l'ordinateur.
Il est la personne qui prend les décisions et qui est responsable du produit final.
- **Le Navigator** est la personne qui formalise les décisions de l'équipe pour les transmettre au Driver.

> 💡Conseil
>
Expand Down
2 changes: 2 additions & 0 deletions docs/constraints/pair-programming/ping-pong.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ tags:
---
# Ping-Pong Pair-Programming

> Contrainte spécifique au [Pair-Programming](index.md)
Le binômage dit ping-pong permet de coupler la pratique du binômage avec le TDD.
Dans ce cadre, les itérations ne sont plus rythmées par le temps, mais par le cycle du TDD.
Les rôles alternent à chaque fois qu’on termine une phase rouge du cycle de TDD.
Expand Down
3 changes: 3 additions & 0 deletions docs/constraints/pair-programming/silent.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ tags:
---
# Silent Pair-Programming

> Contrainte spécifique au [Pair-Programming](index.md).
> Pour le [Mob-Programming](../mob-programming/index.md), aller plutôt voir le [Mute Mobbers](../mob-programming/mute-mobbers.md)
Il est interdit de parler, d'écrire ou de dessiner.

Seul le code peut être utilisé pour communiquer, mais il est interdit d’utiliser les commentaires de code à cet effet.
8 changes: 6 additions & 2 deletions docs/constraints/pair-programming/strong-style.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,16 @@
tags:
- constraint
---
# Strong Style Pair-Programming
# Strong Style Navigation

> 🔗 https://llewellynfalco.blogspot.com/2014/06/llewellyns-strong-style-pairing.html
> Contrainte applicable au [Pair-Programming](index.md) comme au [Mob-Programming](../mob-programming/index.md)
Pour transmettre une idée de votre esprit à l’ordinateur, il faut la faire transiter par les mains de quelqu’un d’autre

- Le Driver a toujours le clavier
- Le Navigator n’a pas le clavier, et prend toutes les décision. Il donne les instructions au Driver pour que ce dernier implémente les idées du Navigator (au plus haut niveau d’abstraction permettant au Drvier de travailler de manière fluide.
- Le Navigator n’a pas le clavier, et formalise les décisions de l'équipe. Il donne les instructions au Driver pour que ce dernier implémente les idées du Navigator (au plus haut niveau d’abstraction permettant au Driver de travailler de manière fluide).
- Mettez un timer de 2-5 minutes pour changer les rôles

> 💡Conseil
Expand Down
14 changes: 14 additions & 0 deletions docs/constraints/regle-du-oui/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
tags:
- constraint
---

# Règle du "Oui"

> 🔗 https://improetc.wordpress.com/2013/10/20/la-regle-du-oui/ <br>
> 🔗 https://theatrespontane.wordpress.com/2011/11/17/oui-et-construction-histoire-juxtaposition/
La « règle du oui » consiste à enrichir ce qui été fait avant vous.
Vous devez composer avec la proposition de la personne qui vient de parler, et vous montrer constructif.

Vous ne pouvez pas tout effacer et repartir de zéro, ou ignorer ce qui vient d'être dit pour partir selon votre idée.
12 changes: 12 additions & 0 deletions docs/constraints/tdd/outside-in.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Outside-In TDD


L'Outside-In TDD est une approche du Test-Driven Development (TDD)
qui consiste commencer par écrire les tests matérialisant les interactions du système avec l'extérieur,
puis à rentrer peu à peu dans le système, cyle de TDD après cycle du TDD.

Exemples :

- Pour une application Web, cela consisterait à commencer par écrire les tests bout en bout (end-to-end, e2e)
- Pour une API, cela consisterait à commencer par écrire les tests du controller Web
- Pour le Game Of Life, cela consisterait à commencer par écrire des tests d'affichage du jeu, ou d'interaction avec celui-ci
5 changes: 5 additions & 0 deletions docs/events/.authors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
authors:
fhiegel:
name: Fabien Hiegel
description: Knowledge worker
avatar: /assets/fhiegel.jpeg
18 changes: 16 additions & 2 deletions docs/events/index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
---
title: Événements
---
# Événements

Chez Shodo cela nous arrive de faire des "Code Retreat".

Ce repository existe pour fournir un support des instructions d'une session.

- 2023-07-04 [⛱️ Summer Shodo Code Retreat ⛩️](events/2023/07/04/index.md)
## C'est quoi une "Code retreat" ?

Une "Code Retreat" est un format de journée permettant de se poser pour coder.
L'objectif est d'apprendre les uns des autres sur un exercice de code (un Kata)

- 🕓 Par itérations de 1h chacune
- 45 min de code
- 10 mins de debrief
- 5 mins de pause
- ❌ A la fin de chaque itération, on supprime le code
- 👥 En binômes, différents à chaque itération
- 📖 Un seul Kata de Code (l’exercice) qu'on refera à chaque itération
- 🦾 Chaque itération proposera différentes contraintes, pour travailler différentes choses (chaque itération sera unique)

# Code retreats
70 changes: 70 additions & 0 deletions docs/events/past/2022-11-08-global-day-of-code-retreat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: 🌍 Global Day 2022 ⛩️
date: 2022-11-08
---
# 🌍 Global Day Of Code Retreat 2022 ⛩️

> **🗓️ Quand ?** <br> Mardi 08 novembre 2022
>
> **📍Où ?** <br> A "L'Aquarium" à la Cantine Numérique
<!-- more -->
## Agenda

| 🕓 9h-9h30 | Accueil, Petit déjeuner & Présentation de la journée |
|----------------|------------------------------------------------------|
| 🕓 9h30-10h30 | Itération \#1 |
| 🕓 10h30-11h30 | Itération \#2 |
| 🕓 11h30-12h30 | Itération \#3 |
| 🕓 12h30-14h | 🍕 Déjeuner 🍕 |
| 🕓 14h-15h | Itération \#4 |
| 🕓 15h-16h | Itération \#5 |
| 🕓 16h-17h | Itération \#6 |
| 🕓 17h-17h30 | Debrief et conclusion de la journée |

## Le Kata

[Game Of Life](/code-retreat/katas/game-of-life/)

## Déroulé de la journée : Itérations

### Itération \#1 : Découverte

- [TDD]
- [Pair-Programming]

### Itération \#2 Donner du sens au code

> :warning: On continue à travailler en TDD ET en Pair-Programming
- [No Primitives]
- [Small Classes]

### Itération \#3 : Améliorer sa communication

> :warning: On continue à travailler en TDD ET en Pair-Programming
- [Ping-Pong Pair-Programming]
- [Strong Style Pair-Programming]

### Itération \#4 : Refactorer

> :warning: On continue à travailler en TDD ET en Pair-Programming
- [Refactoring]
- [Pas de if]

### Itération \#5 : 5. Communiquer par le code

> :warning: On continue à travailler en TDD ET en Pair-Programming
- [Silent Pair-Programming]
- [Immutable Code]

### Itération \#6 : Converger

> :warning: On continue à travailler en TDD
- [Mob-Programming]
- [Objet Calisthenics]

{% include-markdown "../../constraints/links.md" %}
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# ⛱️ Summer Shodo Code Retreat ⛩️
---
title: ⛱️ Shodo Summer 2023 ⛩️
date: 2023-07-04
---
# ⛱️ Shodo Summer Code Retreat 2023 ⛩️

> **🗓️ Quand ?** <br> Mardi 04 juillet 2023
>
> **📍Où ?** <br> A "L'Atelier" à la Cantine Numérique
<!-- more -->
## Agenda

| 🕓 9h-9h30 | Accueil & Petit déjeuner |
Expand Down Expand Up @@ -39,7 +43,7 @@
> :warning: On continue à travailler en TDD ET en Pair-Programming
- [Pas de if]<br>
- [Pair-Programming Ping-Pong]<br>
- [Ping-Pong Pair-Programming]<br>

### Itération \#3

Expand All @@ -53,7 +57,7 @@

> :warning: On continue à travailler en TDD ET en Pair-Programming
- [Pair-Programming Strong Style]
- [Strong Style Pair-Programming]
- [Immutable Code]

### Itération \#5
Expand All @@ -69,19 +73,4 @@
- [Mob-Programming]


[TDD]: /code-retreat/constraints/tdd/
[Pas de if]: /code-retreat/constraints/no-if/
[Code swap]: /code-retreat/constraints/code-swap/
[Refactoring]: /code-retreat/constraints/refactoring/
[Tell, don't ask]: /code-retreat/constraints/tell-dont-ask/
[Immutable Code]: /code-retreat/constraints/immutable-code/
[Test && Commit || Revert]: /code-retreat/constraints/tcr/
[TDD As If You Meant It]: /code-retreat/constraints/tdd/as-if-you-meant-it/


[Pair-Programming]: /code-retreat/constraints/pair-programming/
[Pair-Programming Ping-Pong]: /code-retreat/constraints/pair-programming/ping-pong/
[Pair-Programming Strong Style]: /code-retreat/constraints/pair-programming/strong-style/
[Silent Pair-Programming]: /code-retreat/constraints/pair-programming/silent/
[Mob-Programming]: /code-retreat/constraints/mob-programming/
{% include-markdown "../../constraints/links.md" %}
Loading

0 comments on commit 72ccda8

Please sign in to comment.