Le pair programming (ou la programmation en binome)

Alexandre, membre de la communauté de blogueurs JobProd. Qu’est-ce que c’est ? Quel intérêt ? Comment le mettre en place ? Alexandre Bruneau vous en dit plus !

Le pair programming ? Mais qu’est ce que c’est ?

Le pair programming est une méthode de programmation en binome (ah bon ?) où le duo travaille sur un unique ordinateur. Le binôme est composé :

  • d’un driver (ou pilote), chargé d’écrire le code ;
  • d’un partner (ou co-pilote), chargé d’effectuer le “code review” en direct et de veiller à ce que le code suive le bon cap et réponde aux besoins du client.

Si chacun a ses missions, il arrive que les deux développeurs échangent leur rôle. Il est parfois même recommandé de changer l’un des membre du binôme.

 

Quel intéret ?

Le pair programming peut avoir de nombreux avantages

  • L’amélioration de la cohésion de l’équipe : les développeurs ne travaillent plus seul devant leur poste, ils sont en échange permanent.
  • Le partage des connaissances : il n’est pas rare d’avoir dans une équipe un developpeur particulièrement doué. L’echange précedemment évoqué va tirer toute l’équipe vers le haut au travers du partage de connaissances.
  • Un meilleur code : deux développeurs valent mieux qu’un. Le driver peut se concentrer sur l’implémentation de l’algorithme, la gestion des contraintes et la validité du code pendant que son “co-pilote” veille à ce que le projet aille dans la bonne direction et remplisse l’objectif premier. De plus, la review continue du “co-pilote” va permettre d’obtenir un code optimal, souvent plus court et moins buggé.
  • Une forte capacité de challenging : les deux développeurs peuvent échanger sur la meilleure voie d’implémentation et faire tourner la problèmatique pour mieux cerner les objectifs.
  • Une meilleure gestion du temps : les points précédents vont (normalement) réduire la dette technique et permettre une implémentation de l’objectif plus rapide.

Si les avantages sont nombreux, il reste tout de même quelques inconvénients

  • Le premier est évidemment que cela nécessite la mobilisation de deux ressources pour un seul résultat. Ces deux développeurs ne vont implémenter qu’une seule feature alors que s’ils avaient travaillé seul, on aurait pu obtenir deux fonctionnalités.
  • Le second est que le pair programming n’est pas toujours possible : certaines personnes aiment travailler seules et sont plus productives dans cette circonstance.

Comment l’introduire dans mon équipe ?

Je vous entends déjà me dire “bon ça a l’air fun tout ça ! Mais comment je fais pour le mettre en place dans mon équipe ?”

  • Il vous faut convaincre vos collègues de bien vouloir essayer. Le plus simple étant d’énumérer les avantages.
  • Commencez par des projets simples et rapides pour que vos développeurs puissent prendre leurs marques.
  • Organisez vos développeurs en fonction de leurs affinités, dans un premiers temps faites des rassemblements entre des binomes qui sont déjà assez proches.

Et pour les dev, des conseils ?

  • Pour bien commencer un développement en binome, aillez une forte relation de confiance dans votre binome. Cela est primordiale pour que chaque membre du binôme puisse se consacrer à l’accomplissement de sa tache, sans penser au reste.
  • Evidemment pour une bonne réussite vous devez énormément vous parler. L’idéal est que vous disiez tout ce que vous pensez à hautes voix.
  • Changez de rôle fréquemment pour reprendre conscience des autres aspects et ne pas s’enfoncer dans un rôle unique. A chaque accomplissement, prenez une pause. Profitez en pour decouvrir votre collaborateur sur de nouveaux aspects, ou proposez à un autre duo de faire un échange.

Pour les freelances ?

Jusqu’à maintenant j’ai parlé de cette technique de programmation en mettant en scène deux développeurs. En tant que freelance, lorsque je travaille en présence d’un de mes clients, j’ai remarqué que si j’applique les mêmes méthodes, j’obtiens beaucoup plus rapidement ce que ces derniers attendent.
Bon évidemment, je ne demande pas au client de coder et nous n’échangeons pas nos places. Mais petit à petit le client est amené à vouloir coder lui même, sur des détails de mise en forme, de texte ou des rajouts de ci de là. Ainsi le client comprend mieux ce qu’il se passe lors du développement de son application et peut s’impliquer d’une nouvelle manière dans le projet. Et en tant que développeur, je gagne énormement de temps car il devient capable de faire les modifications qu’il veut au besoin et ainsi je peux me concentrer sur l’ajout de fonctionnalités.

Je vous recommande donc vivement cette experience et si vous n’avez pas l’occasion de la pratiquer dans votre milieu professionnel, il y a de nombreux dojo et randori de pair programming qui s’organise dans les divers meetup de vos technologies préférées.

En vous souhaitant de bons moments de code !

Alexandre Bruneau
Etudiant en école d’ingénieur le jour, freelance Ruby on Rails la nuit. Passionné par le monde du web de longue date, Internet a changé ma vie et continue de la changer tout les jours. Je suis aussi un défenseur des idées issues de l’open source et du partage en général.
Je solutionne mes problématiques du quotidien en allant courir. J’aime rencontrer et échanger sur tous les sujets. N’hésitez pas à me retrouver lors de différents meetups ou sur Twitter.

En savoir +

Alex Bruneau

Recent Posts

Communauté Tech et féminine : Interview avec Helvira de Motiv’her

Elles sont passées où les femmes dans la tech ? Entre le manque de représentation…

2 jours ago

Consommer des APIs HTTP en PHP comme un pro avec Nicolas Grekas.

Dans cette vidéo, on interview Nicolas Grekas, contributeur clé de Symfony, pour discuter de sa…

2 jours ago

Trouver son job grâce à WeLoveDevs.

 Comment trouver son job dans la tech ? Marie a la réponse ! Grâce à…

3 jours ago

Adobe, L’empire créatif.

Adobe, l'empire créatif, et pas des moindres ! Belle ascension de la part de ces…

1 semaine ago

La MAO musique ou musique assistée par ordinateur

Est-ce plus simple de créer des morceaux avec les outils de Musique Assistée par Ordinateur…

1 semaine ago