Vous connaissez très certainement la programmation en binôme (pair programming). Cette pratique de développement préconisée par l’Extreme Programming consiste en la collaboration de deux développeurs à la réalisation de la même tâche, sur le même poste de travail. À tour de rôle, l’un est le conducteur, rédigeant le code, l’autre le navigateur qui guide son collègue et revoit les lignes de code.
Pour le Mob Programming, on pousse le concept plus loin. C’est désormais tout un groupe de développeurs qui travaille sur la même tâche. Bref, on retrouve une équipe de développement, une salle, un grand écran, un poste de travail.
Vous êtes sceptique? Vous ne voyez pas ce que peut apporter ce simili scénario de péplum? Lisez donc la suite pour savoir en quoi cette activité est profitable à votre équipe.
Description
Le Mob Programming est donc une activité relativement simple à décrire et notamment popularisée dans le monde du développement logiciel par Woody Zuill.
Tout comme pour le Pair Programming, on s’échange le rôle de conducteur à fréquence régulière, soit toutes les 15 à 30 minutes, afin de permettre la participation et l’apprentissage de chacun à un rythme raisonnablement soutenu.
D’autres stratégies pour la distribution des rôles sont envisageables. Par exemple, dans le cas du développement d’une fonctionnalité, un nouveau conducteur peut se voir désigner une phase parmi les suivantes :
- Écriture d’un test (test lancé : résultat rouge);
- Écriture du code qui le fera passer (vert);
- Réusinage (ou refactoring; au besoin, selon les remarques avancées).
Au cours de la séance, on s’assure que seul le conducteur est en mesure de « piloter » le poste de développement dès que ce rôle lui est attribué. Les navigateurs sont autorisés à s’exprimer et à réfléchir entre eux, et ce, sans interrompre de manière impromptue l’activité du conducteur. S’il doit y avoir une discussion entre le conducteur et un navigateur, l’échange d’un totem, l’instauration d’un signal ou la participation d’un facilitateur est requise. Le reste du temps, le conducteur est encouragé à expliquer spontanément son code en cours d’écriture.
Pour faire quoi?
Jusqu’à maintenant, vous devez certainement penser que oui, le Mob Programming, c’est une bien belle idée, mais qu’elle est plutôt utopique et productive dans une moindre mesure.
Certes à l’issue de séances de Mob Programming, le produit fini est souvent limité. Mais au-delà du simple décompte de lignes de code écrites à l’heure ou de demi-journées de soutien perdues, cette activité présente de réels avantages à moyen et long termes :
- Lancer concrètement un projet ou une idée à priori complexe en atteignant des sous-objectifs modestes;
- Partager et diffuser la connaissance et monter en compétence rapidement dans des technologies nouvelles ou domaines peu connus (le temps utilisé ensemble est plus court que celui cumulé à travailler chacun dans son coin, pour le même résultat);
- Accroître la pluridisciplinarité technique au sein même d’une équipe, d’une division;
- Briser les silos dans une organisation cloisonnée, donc diminuer les interdépendances;
- Promouvoir et entretenir la créativité des développeurs en sortant de la routine.
La recette d’une bonne séance de Mob Programming
Êtes-vous convaincu et inspiré par un thème particulier pour une future séance? Si oui, voici les étapes pour bien démarrer :
- Recueillez les idées (même folles!) et les besoins exprimés par votre équipe.
- Sélectionnez l’une des plus populaires.
- Avec les gens intéressés, convenez d’un objectif réalisable (quick win) et de la durée maximale de la séance pour y arriver (timebox). Une durée convenable va assurer la concentration de l’équipe et pimenter le défi.
- Proposez un créneau pour la séance et communiquez-le (conviez jusqu’à une dizaine de participants).
- Préparez un environnement confortable, correctement équipé (minimisez aussi les éventuelles perturbations extérieures). Il n’y a pas besoin d’autant de postes que de participants. Des blocs-notes et des ordinateurs portables feront l’affaire! Désignez une personne qui agira à titre de facilitateur pendant la séance (un spécialiste sur le thème abordé, un coach…).
- Le fameux jour J, Mob programmez!
- Enfin, capitalisez l’information en présentant le résultat produit et en partageant cette expérience.
Lancez-vous!
Quel sera donc le prochain sujet de votre atelier en groupe? Êtes-vous encore indécis? Si c’est le cas, n’hésitez pas à cibler des objectifs modestes, dans un premier temps, pour apprécier l’efficacité de cette méthode et la recommencer. Aussi, je vous invite à jeter un œil aux liens suivants et à partager vos réussites à l’aide du Mob Programming dans les commentaires.
- MobProgramming.com (Woody Zuill et communauté de Mob Programming);
- Retour d’expérience (Marcus Hammarberg sur Codebetter.com);
- Vidéo d’une séance : youtube.com/watch?v=p_pvslS4gEI (Woody Zuill, YouTube).
Bonnes séances à tous!
Pas de commentaire