CodeNews#1 - Et si on codait ensemble ? Une incitation au Mob Programming.

✨ Imaginez : pour célébrer une occasion importante, vous conviez une dizaine d’ami.e.s à dîner, espérez les régaler avec un menu trois étoiles mais ne savez pas cuisiner… Vous décidez de vous tourner vers des experts en espérant bien entendu ne pas vous ruiner, tout en restant réaliste quant aux exigences et à la valeur d’une telle prestation !Supposons que deux propositions vous parviennent. La première émane d’une prétendue « star » de la cuisine à domicile qui vous assure, croix de bois croix de fer pouvoir tout faire en solo de bout en bout, des amuses-bouche jusqu’au digestif. La seconde provient d’un humble chef de brigade, capable de répartir les tâches et ainsi d’assurer au mieux lors du fameux « coup de feu ». Ses membres pourront paralléliser les tâches, réagir en cas de pépin, s’épauler mutuellement.

November 30, 2021

🧑🏻‍🍳 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 :

CodeWorks, un paradigme d'ESN équitable, solidaire et durable

Notre Manifeste est le garant des droits et devoirs de chaque CodeWorker et des engagements que nous avons vis-à-vis de lui.
Il se veut réaliste, partagé et inscrit dans une démarche d'amélioration continue.

Rejoins-nous !

Tu veux partager tes connaissances et ton temps avec des pairs empathiques, incarner une vision commune de l'excellence logicielle et participer activement à un modèle d'entreprise alternatif, rejoins-nous.