Comment travailler sur du code en équipe ?
Le développement en pair programming donne souvent l’impression d’être contre productif. Comment imaginer que 5 devs qui regardent un seul écran contrôlé par un seul d’entre eux seraient plus rapides que si chacun d’être eux travaillaient individuellement avec chacun leur clavier, leur souris et leur propre espace mental de concentration ?
C’est ignorer un aspect très important du développement informatique : l’échange d’idées et la complétion des connaissances. Peut être qu’un dev seul saura se débrouiller sur une partie du code, mais combien de temps passera t-il à analyser du code inconnu voir à demander de l’aide à Google, Stack Overflow ou Copilot ?
Si chaque développeur connait un aspect du logiciel, travailler ensemble, c’est l’occasion de mutualiser toutes les connaissances et l’expérience de l’équipe. C’est aussi une occasion en or de s’échanger les bonnes pratiques et de s’accorder sur les normes, ce qui augmentera la lisibilité pour tout le monde.
Passer de 5 devs qui rament tous dans leur barque à 5 membres d’équipage sur un même voilier ⛵
Du silo à la mutualisation, de la mutualisation à la super productivité
Faire du pair programming ne signifie pas forcément être cantonné à regarder du code sur un écran en plus. Chaque dev peut, à côté, regarder son propre écran, accéder au code sans le modifier, faire des recherches dans la documentation, etc.
L’important est d’être tous concentrés sur la même tâche, le même problème, en discutant ensemble, proposant des idées sans restriction pendant qu’un secrétaire écrit le code proposé et lance les tests.
Il n’est d’ailleurs pas nécessaire, ni pertinent, que ce soit le dev le plus expérimenté qui contrôle l’ordinateur commun, sinon ça pourrait se transformer en session de formation et perdre toute l’émulation de la mise en commun entre pairs. L’important est que ce secrétaire tape vite et qu’il connaisse l’outil de développement pour pouvoir faire tout ce qui est demandé le plus rapidement possible et accompagner la dynamique collective. C’est surtout un bon exécuteur.
Le résultat attendu d’une bonne session de pair programming est double :
- avoir développé une feature connue de tous l’équipe, car ils ont tous participé à sa conception, ce qui la rendra facile à maintenir.
- avoir permis à tous les développeurs de se mettre au diapason sur le code et de partager ce qu’ils savent et ce qui doit être fait.
Pisseurs Passeurs de code
En plus des avantages décrits plus haut, développer ensemble encourage aussi la qualité du code. De la même façon qu’on fait plus attention à sa tenue vestimentaire en public qu’en privé, du code écrit aux yeux de tous sera scruté par chacun et aura ainsi autant d’occasions de s’améliorer pour durer dans la base.
Ça peut même être l’occasion pour écrire en parallèle la documentation de la feature en ayant directement les yeux sur ce qui est produit 💪
Ok, mais comment on s’y met concrètement ?
En présentiel, le mieux est de commencer sur du debug, si possible sur un ticket un peu coriace, en se dégageant un temps dédié, dans un endroit calme et en laissant tout le monde apporter son laptop s’il en a un, du papier, des crayons, son téléphone (sauf si c’est pour slacker pendant que les autres bossent 🐻 ).
Il est aussi très pertinent si c’est possible de se mettre dans une salle doté d’un rétroprojecteur, sur lequel le code en cours d’écriture sera écrit.
Le plus important est d’en faire un moment de convivialité ou chacun se sent à l’aise pour s’exprimer. Il faut faire tomber les barrières de la gène pour créer le maximum d’émulation.
En distanciel, il existe maintenant de nombreux outils permettant de faire du partage d’écran, c’est une aubaine. Mon préféré est Discord personnellement. Il existe aussi des solutions dans certaines IDE pour travailler à quatre mains (ou plus) sur un seul projet, mais ça ne serait pas adapté au besoin.
Une démo ?
Si vous avez envie de devenir capable de fair du pair programming et d’exploser en productivité, de décloisonner le code et de faire avancer toute l’équipe enfin dans la même direction, n’hésitez pas à réserver un premier RDV gratuit avec moi. Je pourrais répondre à vos interrogations et venir vous aider en personne pour cette pratique en place dans votre entreprise.
J’ai une très longue expérience du live coding et de la programmation partagée. Je streame le développement de mes projets sur Twitch depuis des années et j’ai pair programmé avec de nombreuses personnes, sur leurs projets et sur les miens. 😊