Développeurs : Cinq conseils pour un « pair programming » efficace en période de télétravail

Par :
Franck Liso

jeu, 07/05/2020 - 14:10

« Seul on va plus vite, ensemble on va plus loin » dit l’expression. Le logiciel, la programmation ne font pas exception. La programmation en binôme (ou « pair programming ») est une technique de développement logiciel en plein essor. Elle consiste pour deux programmeurs à se consacrer au même problème, en parallèle, sur le même ordinateur, avec pour objectif de créer rapidement des applications modernes. 

Le développement d’application à distance : une question d’état d’esprit. 

Tout d’abord, il est toujours bon de se rappeler ceci : savoir d’où l’on vient/part pour savoir où l’on va. Il est donc essentiel de « penser son développement » ; le challenge à relever, ses étapes, l’organisation du binôme, avant de se mettre en action. Le « pair programming » s’appuie également sur un socle de valeurs que chaque membre du binôme doit intégrer et appliquer pour le rendre efficient : Esprit positif et ouvert, empathie et respect, patience et résilience, communication et feedback. Ce jeu de valeurs est une « donnée » importante pour adopter/utiliser la technique du pair programming et garantir son succès. 

Actuellement, la crise sanitaire induite par le COVID-19 impose de nouvelles contraintes. Dès lors, comment pratiquer la programmation en binôme, ou « pair programming » dans ce contexte si particulier ?

Voici cinq conseils pour une programmation en binôme efficace en cas de télétravail

1. Pratiquer le “Continuous software design”  (conception logicielle continue)

Tous les développeurs doivent consacrer du temps à réfléchir sciemment à la conception de leur application. Quelles architectures conviennent au problème à traiter ? Des modèles de conception courants s’appliquent-ils ? Existe-t-il des bibliothèques et des cadres pour mieux régler le problème ?

Votre binôme et vous échangez constamment des idées, en ajustant les orientations de conception logicielle à suivre. C’est que l’on appelle le « processus de conception continue » mais, au lieu de s’accorder sur le plus petit dénominateur commun, on parvient à la meilleure solution, fruit des meilleures idées recueillies à partir des expériences réunies. Enfin, en cas de rotation régulière des binômes, la conception logicielle continue poursuit son évolution en synthétisant l’expérience collective mise en œuvre pour résoudre les problèmes.

Comment la pratiquer à distance ? A l’aide de tableaux blancs. De nombreux programmeurs collaborent sur une conception logicielle en collectant quelques schémas et en dessinant des cases et des flèches. Il existe de nombreux services de collaboration en ligne qui offrent des outils de dessin et d’annotation virtuelle. Par exemple : Miro, Whimsical, Jamboard, Diagrams.net et bien d’autres. Et pour la communication et collaboration en temps réel, Zoom est actuellement l’outil en vogue. Il permet des appels audio et vidéo de haute qualité, avec des fonctions de partage d’écran et de contrôle à distance fluides. 

2. Formuler ses objectifs

Les programmeurs évoquent souvent une « sensation de bulle », état mental où le code semble couler de soi, où les écueils s’envolent devant soi un à un alors que l’on trouve des solutions en rafale.

Toutefois, n’êtes-vous jamais sorti de la bulle après des heures (voire des jours) avant de réunir l’équipe pour l’informer de vos activités, en réalisant soudain que votre solution ne marchera vraiment pas, car irrémédiablement bancale ? Cette situation est connue de tous. C’est le piège de cet état de bulle, car il nous fait tendre vers la focalisation mentale. Pour contourner cet écueil, la programmation en binôme est une excellente approche. Elle oblige à communiquer sur ses activités en cours. On aborde la résolution de problèmes différemment lorsqu’on explique les idées et en discute plutôt que de s’y atteler tête baissée. Pratiquer cette formulation ainsi qu’une introspection mentale permet de voir les défauts de nos solutions, et invite notre binôme à contribuer. 

3. Soigner la communication entre pairs et créer une checklist commune 

Quelle que soit la technique de programmation en binôme et à distance retenue (Ping Pong, Lightning Pairing, Pilote/Navigateur), au delà des compétences, la communication est la clé de la réussite du “pair programming”.  Voici quelques conseils  à suivre pour la fluidifier au maximum: 

  • Communiquez,  en pensant à haute voix.
  • Pointez bien les éléments à l'écran avec votre souris ou des outils de dessin 
  • Avant d'exécuter un code nouvellement écrit, indiquez si vous pensez que le test réussira ou échouera, et s'il échoue, la raison de l'échec. Assurez-vous d’être en accord avec votre partenaire avant d'exécuter le test. Vérifiez si vos attentes ont été satisfaites.
  • Utilisez des noms de fichier et des numéros de ligne pour décrire le morceau de code auquel vous faites référence.
  • À la fin de la journée, faites le point avec votre “partner in code” pour savoir comment la journée s’est passée, ce qu’il faut améliorer, changer, conserver en l’état 

Pour éviter tout écueil, et réussir son développement en binôme à distance, le mieux est encore de préparer une checklist commune renseignant les éléments suivants: 

  • Est-ce que vos outils audio/vidéo, leur qualité, celle des outils de partage d’écran sont bien configurés et adaptés à vos attentes respectives et besoins communs? 
  • Vous sentez-vous intégré, impliqué, participez vous aux tâches, votre binôme vous laisse-t-il  suffisamment de “place”? Etes-vous sur la même longueur d’onde quant à la ligne directrice à suivre? 
  • Faites-vous suffisamment de pauses? Car, effectivement, la programmation en binôme à distance est épuisant intellectuellement et nerveusement. Au delà de leur quantité, la qualité de ces pauses est primordiale. 
  • Travaillez-vous sur des fuseaux horaires différents ? 

Autant de questions à se poser et de réponses à apporter au fil  de la collaboration afin d’en garantir son efficacité. 

4. Apprendre des autres

Un grief courant des programmeurs est que leurs compétences stagnent. Le meilleur moyen d’acquérir de nouvelles compétences pratiques consiste à collaborer étroitement avec un collègue ou une personne plus expérimentée. Pour les développeurs, la programmation en binôme offre une méthode inégalée d’apprentissage mutuel.

Comment le faire à distance ? Par l’implication. Pour apprendre des autres, il faut s’impliquer pleinement dans l’exercice du pairing. Que peut-on faire pour éviter les distractions ? Fermez ou réduisez les autres fenêtres d’application, trouvez un espace dédié au travail si possible et faites des pauses fréquentes, pour préserver l’énergie de chacun.

5. Enseigner aux autres

La programmation en binôme constituant le meilleur moyen d’enseigner à d’autres développeurs, soyez généreux, partagez vos connaissances et évitez ainsi l’omniscience dominatrice. 

Comment le faire à distance ? Lors du pairing virtuel, il s’avère très facile de noyer son binôme pendant un exposé fervent sur, par exemple, les contrats de niveau de service. Demandez souvent et sciemment s’il va bien et s’il a des questions, notamment en cas de rapport senior/junior, comme durant l’intégration d’un membre à l’équipe. N’oubliez pas de tout formuler en détail, comme « nous allons utiliser le même modèle qu’à la ligne 157 » au lieu de « cela ressemble à ce que nous avons fait l’autre jour, tu te souviens ? ».

Tirer parti du confinement pour se rapprocher et gagner en productivité est donc possible. Le pairing virtuel peut rendre vos pratiques de télétravail plus collaboratives, productives,  gratifiantes et permettre à tous de créer des applications meilleures que jamais.

A propos de l'auteur

Franck Liso
Directeur de VMware Pivotal Labs Paris/Tanzu