J’ai toujours aimé travailler en équipe. J’y prends beaucoup de plaisir et j’aime le lot de challenge que cela implique.
Il y a trois ans, j’entendais pour la première fois le mot “mob programming”. Ce gros mot intimidant qui semble provenir tout droit d’un film d’extra-terrestres.
En réalité, cette pratique n’a rien d’extra-terrestre. C’est tout le contraire même, le mob programming est centré sur les humains.
Piqué par la curiosité, je me suis lancé dans la compréhension et dans l’expérimentation de cette pratique qui ne fait pas l’unanimité parmi les développeurs.
Je vous propose dans cet article ma vision du mob programming. Je vous donnerai quelques conseils et les pièges à éviter pour pouvoir obtenir les bénéfices de cette pratique !
Qu’est-ce que le mob programming ?
Commençons par une définition simple. Le mob programming, c’est un groupe de personnes travaillant dans la même pièce, sur un même ordinateur, sur un même sujet.
Comment organiser une session de mob programming ?
Organiser une session de mob programming, ce n’est vraiment pas difficile, voici ce qu’il vous faut :
- deux personnes volontaires ou plus,
- une chaise confortable par personne
- un seul clavier
- au moins un écran
Voilà le tour est joué, vous avez votre configuration minimale pour mener à bien votre première session de mob, mais laissez-moi vous donner quelques conseils supplémentaires pour rendre l’expérience encore plus agréable.
Conseil n°1
Trouvez un écran assez grand pour que tout le monde puisse voir correctement le code. Il est désagréable de devoir plisser les yeux ou se tordre la nuque pour apercevoir le code.
Conseil n°2
Ajouter un tableau blanc et des post-it pour faciliter les échanges et les moments de réflexion collectifs.
Conseil n°3
Trouvez une salle calme dans laquelle les membres peuvent s’exprimer au volume sonore souhaité sans déranger leurs collègues. Il n’y a rien de pire que de surenchérir sur le volume sonore dans un open space et finir la journée avec une migraine.
Conseil n°4
Trouvez un endroit où chacun peut se déplacer librement et se sentir à l’aise.
Le but vous l’aurez compris, c’est de créer un environnement calme, propice à la collaboration, dans lequel chacun se sent bien et peux s’exprimer.
Les rôles
Il y a deux rôles principaux lors d’une session de mob programming, le conducteur et les les navigateurs.
Le conducteur, c’est la personne qui a le clavier. Il va écrire l’ensemble des idées de ses collègues sur l’ordinateur. Dans la philosophie mob, le conducteur ne donne pas ses idées, il pose plutôt des questions pour comprendre ce que les autres lui demandent d’écrire.
Les navigateurs quant à eux donnent les idées et les instructions au conducteur. Les navigateurs brainstorm entre eux pour trouver des idées et des solutions aux problèmes qu’ils essaient de résoudre. Parfois, on retrouve parmi les navigateurs une personne responsable de trancher afin d’éviter les débat à rallonge. Son rôle est de recentrer l’équipe sur la cible, c’est le rabat-joie du groupe !
Les règles
Les règles du mob sont assez simples. Les rôles changent toutes les 5 minutes ce qui permet à chacun de s’exprimer ou de pianoter sur le clavier.
De mon expérience, je préfère me dire que chaque équipe est différente et que les règles sont faites pour être adaptées.
N’hésitez pas à considérer le chronomètre comme un indicateur afin d’éviter de passer toute la session dans la même configuration.
Personnellement, j’aime donner la parole au conducteur dans certaines situations.
Ne perdez pas de vue que le mob, comme toute méthodologie ou pratique ne vaut rien si elle n’est pas adaptée à votre organisation.
Pourquoi faire du Mob programming ?
La pratique du mob programming apporte de nombreux avantages. Voici les raisons, qui selon moi, font du mob programming une bonne pratique.
1 - Améliorer le partage de connaissance
Pour commencer, le mob favorise le partage de connaissance au sein d’une équipe.
Voici les deux niveaux de connaissance :
- Les connaissances métier : le jargon du produit sur lequel vous travaillez, les habitudes des clients qui utilisent le produit …
- Les connaissances techniques : tout le monde n’a pas les mêmes compétences, les mêmes expériences ou encore les mêmes sensibilités vis à vis du code. Il est donc très enrichissant de confronter différentes visions et pratiques au sein d’une équipe.
J’ai eu la chance dans ma carrière d’avoir un mentor pendant mon alternance. J’ai bénéficié du temps et de l’expérience d’une personne plus expérimentée que moi qui m’a fait des retours et m’a aiguillé afin d’éviter les pièges sur le chemin. Ce processus m’a permis de monter très rapidement en compétences.
Le mob programming permet de bénéficier des plus expérimentés et de prodiguer des conseils aux plus novices.
2 - Éviter les sorties de route
Lorsqu’on développe tout seul dans son coin et que tout devient flou, il est facile de tomber dans une spirale infernale. Parfois, une vision extérieure évite de longues heures de frustration à tourner en rond.
Faut-il choisir la solution a ou la solution b ? Faut-il passer à autre chose et revenir sur ça plus tard ? Faut-il faire un test unitaire ou un test d’intégration ? Est-ce que ces questions sont pertinentes pour résoudre mon problème ? Tant de questions qui seront plus faciles à résoudre si on a le point de vue de plusieurs personnes.
L’essence de cette pratique repose sur l’intelligence collective. C’est la diversité des points de vue qui permet d’obtenir de la justesse dans ce que l’on fait.
3 - Solidifier les liens, apporter du sens et accroitre le bonheur
En tant que développeur, on connait tous le soulagement de partager la résolution d’un bug pénible avec un collègue. Vous galérez, mais vous galérez ensemble ! Puis tout à coup, vous changez une ligne de code et le code compile ! Eurêka, le problème est résolu, place à la sécrétion de dopamine dans votre cerveau.
La joie partagée est une double joie ; la peine partagée est une demi-peine - Jacques Deval
Cette citation retranscrit très bien les bénéfices prodigués par le mob programming.
Partager les moments difficiles permet de diminuer la charge mentale, qui en tant que développeur est déjà bien élevée.
On dit souvent que c’est dans l’échec et l’adversité que l’on apprend. Et bien ici, c’est l’occasion d’en apprendre d’avantage sur vous même mais également sur les différents membres de l’équipe, de créer une cohésion et d’avancer ensemble.
Ce troisième point est pour moi la raison d’être du mob programming, c’est de placer les humains au centre du travail de développeur.
Quoi de mieux que de créer du lien avec ses collègues, se sentir utile, soutenu et reconnu par le groupe. Ne serait-ce pas là la clé du bonheur au travail ?
Les challenges
On ne va pas se mentir, à ce moment de l’article vous vous dites certainement que c’est trop beau pour être vrai. En effet, si le mob programming est très bénéfique lorsqu’il est pratiqué dans dans une bonne configuration, il peut présenter son lot de challenge.
Voici les obstacles sur lesquels vous pouvez vous heurter en pratiquant le mob programming.
L’ego du développeur
L’ennemi public numéro 1 quand il s’agit de mob programming, c’est l’ego du développeur.
Qu’est-ce que c’est l’ego du développeur ?
Je l’explique pour nos amis qui ne seraient pas développeur et qui lisent cet article. L’ego du développeur c’est le fait de ne pas accepter les remarques et critiques sur le code que vous avez produit en tant que développeur. Je ne saurai pas l’expliquer mais tous les développeurs l’on subi au moins une fois dans leur carrière. On dirait que le code est une sorte de prolongement du développeur.
L’égo du développeur se soigne en exposant progressivement la personne à des retours constructifs de son code. Il est important de faire cela dans un climat de bienveillance en mettant la personne en confiance.
Il faudra expliquer à la personne que ces retours n’ont qu’un seul objectif : assurer la bonne réalisation du projet.
Être en phase avec le fait de faire des erreurs et accepter la critique permet en tant que développeur de se libérer d’un grand fardeau.
Accorder les violons
Prenons un orchestre. Chaque instrument a ses propres caractéristiques et produit un son qui lui est propre. Chaque instrument peut produire une jolie mélodie de façon isolée. Prenez tous ces instruments et faites les jouer sans chef d’orchestre. Il est très probable que le son produit soit chaotique.
Maintenant, prenez tous ces instruments, accordez les et faites les jouer en rythme, au bon niveau sonore pour que chacun d’entre eux viennent apporter la touche qu’il faut à cette magnifique mélodie collective. Vous entendez ce son doux pour vos oreilles ?
Et bien figurez-vous qu’un développeur c’est un peu comme un instrument et l’équipe de développement un peu comme l’orchestre. Chacun a des compétences, chacun peut produire un résultat de façon isolés mais si vous arrivez à combiner toutes ces compétences et vous faites en sorte que chacun puisse collaborer pour accomplir un but commun, alors le résultat va être grandiose !
Trouver votre chef d’orchestre, cette personne qui parvient à guider l’équipe afin de tirer ce qui a de meilleur en chacun et ainsi à réaliser de grandes choses !
Oser
Selon les caractères, les différentes personnes du groupe peuvent avoir des peurs différentes.
Certains n’arriveront pas à s’exprimer devant le reste du groupe par peur de manquer de pertinence. D’autres personnes auront peur d’échouer en public.
Il ne faut pas oublier que l’échec n’est pas très bien vu dans notre société ou toute la lumière est mise sur les success stories. Pour résoudre ce problème, je n’ai qu’une solution : la bienveillance et le temps.
Laissez moi vous vous rappeler quelque chose d’important. Ce qui fait la force et la beauté du mob programming c’est la diversité des points de vue et des expériences. Chacun est différent et a quelque chose à apporter.
Osez vous exprimer devant un groupe, osez échouer car la pire chose qui puisse vous arriver c’est d’oser réussir.
Conclusion
Pour conclure, je dirais que le mob programming ça n’est pas magique et que ce n’est pas fait pour tout le monde.
Certaines personnes ont besoin d’être seule pour trouver la concentration nécessaire à l’accomplissement de leurs tâches.
Si vous sentez que la façon dont vous travaillez vous convient, continuez ainsi ! On ne change pas une équipe qui gagne.
Par contre, si vous sentez que vous n’êtes pas pleinement épanouis et que vous cherchez du sens dans ce que vous faites, que vous aimez travailler en équipe alors foncez !
Attention toutefois à ne pas vous prendre les pieds dans les racines qui jonchent le chemin.
Empathie, patience et bienveillance, voilà les maîtres mots du mob programming. Je vous souhaite de vous épanouir dans cette pratique.
J’espère que l’article vous aura plu. Je serais heureux d’avoir votre avis sur le sujet, alors n’hésitez pas !