Deux développeurs, un clavier, un meilleur code. Apprenez quand et comment faire du pair programming efficacement.
Le pair programming signifie que deux développeurs travaillent ensemble à un poste de travail. L'un tape (le pilote); l'autre observe, réfléchit et navigue (le navigateur).
Cela semble inefficace. Vous payez deux personnes pour faire le travail d'une seule. Mais les calculs fonctionnent différemment de ce que vous attendez :
Les études montrent que les paires produisent du code avec 15 % de défauts en moins tout en prenant seulement 15 % de temps en plus. Ce n'est pas le double du coût pour une meilleure qualité — c'est un investissement de 15 % pour des résultats nettement meilleurs.
La ligne de code la plus coûteuse est celle qui cause un incident de production à 3 h du matin. Le pair programming détecte ces lignes avant qu'elles ne soient écrites.
Le modèle classique de pair programming comporte deux rôles :
Le pilote tient le clavier. Il :
Le navigateur observe et réfléchit. Il :
Changez de rôle régulièrement. Toutes les 15 à 30 minutes, échangez. Cela maintient les deux partenaires engagés et empêche une personne de dominer.
Le navigateur n'est pas passif. Si vous naviguez et que vous voyez quelque chose qui ne va pas, parlez immédiatement. N'attendez pas. La valeur du pair programming vient de la rétroaction continue.
Il existe plusieurs styles efficaces de pair programming :
Pair programming ping-pong (fonctionne très bien avec le TDD) :
Cela maintient les deux personnes activement en train de coder et maintient la discipline du TDD.
Pair programming de style fort : « Pour qu'une idée passe de votre tête à l'ordinateur, elle doit passer par les mains de quelqu'un d'autre. »
Le navigateur dit au pilote quoi taper. Le pilote tape seulement; il ne prend pas de décisions. C'est excellent pour l'enseignement — le junior tape pendant que le senior navigue, forçant le transfert de connaissances.
Pair programming guide touristique : Une personne connaît la base de code; l'autre apprend. L'expert pilote et explique, donnant une visite guidée du code. Ensuite, ils échangent, l'apprenant tentant des tâches sous supervision.
Choisissez le style qui convient à la situation. Ping-pong pour le TDD. Style fort pour le mentorat. Guide touristique pour l'intégration.
Le pair programming fonctionne aussi à distance. Vous avez besoin de :
Conseils pour le pair programming à distance :
Certaines équipes trouvent que le pair programming à distance fonctionne encore mieux qu'en personne parce qu'il n'y a pas de tentation de « se pencher et prendre le clavier ». Chaque personne reste dans son rôle.
Faites du pair programming pour :
Envisagez le travail solo pour :
XP n'impose pas 100 % de pair programming, contrairement à la croyance populaire. Le XP original spécifiait le pair programming pour le code de production, mais le XP moderne reconnaît que les équipes efficaces mélangent le travail solo et en paire selon le contexte.
La clé : ne laissez jamais du code aller en production sans révision. Si vous ne faites pas de pair programming dessus, révisez-le. Le pair programming n'est qu'une révision de code en temps réel.
Commencez par faire du pair programming sur les problèmes les plus difficiles. Une fois que vous en voyez les avantages, étendez-le à plus de votre travail.
« Nos développeurs ne veulent pas faire de pair programming. » Commencez lentement. Faites du pair programming uniquement sur les problèmes difficiles. Laissez les gens expérimenter les avantages. N'imposez pas 100 % de pair programming dès le premier jour.
« Nous ne pouvons pas nous permettre deux personnes sur une tâche. » Vous ne pouvez pas non plus vous permettre des bogues en production. L'économie favorise le pair programming quand vous tenez compte de la réduction des bogues, des connaissances partagées et de l'amélioration de la qualité du code.
« Les développeurs seniors seront ralentis. » Parfois. Mais les seniors en pair programming avec les juniors accélèrent toute l'équipe. Les connaissances du senior se répandent. Le junior progresse. C'est un investissement dans la capacité de l'équipe.
« Les introvertis détestent le pair programming. » Certains introvertis adorent le pair programming parce que c'est une interaction structurée avec un objectif clair. D'autres ont besoin de temps seul pour se ressourcer. Respectez les besoins individuels, mais ne supposez pas que l'introversion signifie anti-pair programming.
« Le pair programming est épuisant. » C'est plus intense que le travail solo. Prenez des pauses. Ne faites pas de pair programming pendant 8 heures d'affilée. Mélangez le pair programming avec le travail solo, la révision de code ou le travail de conception.