🧑🏻🍳 Couteau-suisse versus Mob cooking ?
Laquelle recueille votre suffrage ?🧐 Il n’y a pas de bonne ou de mauvaise réponse, simplement des logiques différentes. J’avoue en toute honnêteté avoir un biais que vous percevez peut-être dans ma description; et si vous avez opté pour la brigade, vous avez une petite idée des avantages que peut présenter le « Ensemble » (prononcez à l’anglaise) ou « Mob programming ».
Voici les fondamentaux de la pratique : un seul écran, un seul clavier, plusieurs membres d’une même équipe travaillant ensemble (ou « en attroupement », traduction littérale de « mob », qui est le terme historique mais un peu pénalisé par des usages négatifs). Et une règle d’or ⭐️ : entre le cerveau de la personne qui l’a eue et le code source qui va aller en production, chaque idée doit obligatoirement passer par les mains d’une autre personne.
🖥 ⌨️👩🏽🧑🏼🦱👩🏻🦰👦🏿🧑🏽👱🏻♀️
C’est précisément cette règle qui crée la « magie » dont témoignent les nombreuses équipes qui ont adopté cette pratique, à des degrés divers (certaines l’utilisent à 100% de leur temps productif, d’autres seulement sur des plage horaires désignées).
La raison est à la fois simple et contre-intuitive : l’une des contributions majeures au phénomène dit de « dette technique » vient du désalignement progressif et croissant dans le temps entre les modèles mentaux des différentes personnes qui composent une équipe de développement.
🌚 Promenons-nous dans le noir …
Une belle métaphore illustre cette idée : celle d’une pièce obscure. Imaginez que vous devez traverser votre salle à manger que vous connaissez par coeur ; pour corser les choses, plongez-la dans le noir. Maintenant, supposez que vos invités (lors du fameux dîner peut-être!) se sont amusés à déplacer tous les meubles… bleus et bosses en perspective ! 🤕
Cette drôle de situation, c’est pourtant bien celle dans laquelle on se retrouve lorsqu’on a pris l’habitude de naviguer dans un bout de code et qu’on le retrouve modifié de cent façons différentes, subtiles ou moins subtiles, lors du prochain passage. Étendez la salle à manger à tout l’étage, puis l’étage à tout le bâtiment : vous aurez encore une faible idée de la situation vécue au quotidien par une équipe de dév.
💡 Rallumer la lumière?
Pour rétablir un jour salvateur dans un tel chaos, coder ensemble constitue une tactique efficace : elle relance la communication au sein de l’équipe. Chacune et chacun peut partager (et montrer) sa façon de placer tables, chaises ou meubles. Au fil du temps, une vision plus claire et partagée de la structure et de la texture du code émerge… c’est ce qui se passe dans un « Ensemble » bien rôdé.
Présentée pour la première fois en 2014 lors de la conférence Agile Alliance, la pratique du « Ensemble programming » a pour ancêtre celle du « Coding Dojo »… co-inventé par Emmanuel Gaillot et votre serviteur lui-même en 2004 🧙🏻. Ce n’est donc pas une lubie tombée de la dernière pluie mais un mouvement de fond que nous observons avec joie se déployer au sein d’équipes de plus en plus nombreuses !
📚 Pour en savoir plus, quelques lectures utiles :
- le « pitch » de la session de Woody Zuill à la conférence Agile Alliance
- « Le Demi-Cercle », la lumineuse série que Christophe Thibaut consacre à illustrer la métaphore de la bâtisse obscure en l’entrelaçant de tranches de vie de dév… et bien d’autres idées fortes
- « Samman Technical Coaching », le livre d’Emily Bache (déjà auteure du guide de référence sur le Coding Dojo) sur l’utilisation du Ensemble programming comme outil de coaching technique