Programmation en binôme : quelques conseils pour en tirer le meilleur parti

Les développeurs cherchent constamment des moyens d’améliorer leur productivité. Le Pair Programming peut les y aider. Si elle n’est pas nouvelle, cette technique est de plus en plus largement adoptée.

Alors que les programmeurs doivent rivaliser d’innovation avec la Silicon Valley en Californie et la Tech City à Londres, ils cherchent constamment des moyens de renforcer leurs atouts, d’améliorer leur productivité et de partager les connaissances entre leurs équipes. Une méthode de plus en plus prisée est la programmation en binôme, Pair Programming en anglais. Si elle n’est pas nouvelle, cette technique est de plus en plus largement adoptée par les développeurs, et les entreprises sont de plus en plus nombreuses à prendre conscience de ses avantages. Après tout, deux têtes valent mieux qu’une et la programmation en binôme peut aider les développeurs à écrire du code de haute qualité, comportant moins de bugs, tout en augmentant la motivation de l’équipe et en lui permettant de mieux gérer son temps. Des géants des nouvelles technologies s’y mettent, comme Facebook et Square ; et ce dernier a récemment révélé que 15 % de ses ingénieurs travaillent en binôme à plein temps.

Mais comment une entreprise envisageant d’adopter la programmation en binôme  peut-elle tirer le meilleur parti du travail de ses développeurs ? Voici mes conseils sur les choses à faire ou à éviter pour améliorer vos chances de succès. 

A faire :

Travailler simultanément sur le développement du même code
Les binômes de programmeurs efficaces communiquent et collaborent en permanence à propos de la conception du code et de la méthodologie. Nos développeurs utilisent deux claviers, deux souris, un écran et un ordinateur. Tandis qu’un programmeur « pilote » et écrit le code, l’autre navigue et conduit les discussions autour de la conception de l’application afin de veiller à l’observation des meilleures pratiques. Ces rôles doivent être permutés au moins toutes les demi-heures de façon à maintenir l’engagement plein et entier des deux programmeurs. 

Prendre le petit déjeuner entre collègues et tenir des réunions « debout »
Une réunion de trois à cinq minutes en début de journée, où tous les participants se tiennent debout en cercle, favorise la collaboration et le partage d’idées au sein de l’équipe des développeurs. C’est ce que nous faisons chaque matin chez Pivotal. Nous entamons ainsi chaque journée en prenant le petit déjeuner ensemble puis en discutant debout des nouveaux projets sur lesquels travaillent les équipes, voire des nouvelles lignes de code qu’elles ont développées. Partager le petit déjeuner est important car cela met tout le bureau dans le même rythme et donne à chacun l’opportunité de rencontrer ses collègues.

Associer étroitement le responsable produit au développement des applications
En associant le responsable produit dès les premières phases du développement d’un logiciel, le programmeur pourra mieux saisir ses besoins. Supposons qu’il s’agisse de concevoir une application destinée à analyser le comportement des clients. Si le responsable produit peut travailler physiquement aux côtés du développeur pour lui faire part en continu de ses commentaires et idées sur le fonctionnement souhaité de l’application, il en résultera une application plus intelligente qui fournira des analyses plus significatives des données clients.

Tester, tester et tester encore
La programmation en binôme n’est pas à l’abri des erreurs. Les développeurs adoptant cette technique sont donc encouragés à pratiquer le développement piloté par les tests (TDD, test-driven development) pour faire en sorte de créer un logiciel adapté à l'usage prévu. Le principe repose sur la réitération d’un cycle de développement très court : les développeurs doivent d’abord écrire un test qui échoue, puis écrire juste le code suffisant pour réussir le test, et enfin réusiner le nouveau code selon des critères satisfaisants.

A proscrire :

Se laisser distraire pendant le travail de programmation
Le travail en binôme avec un autre programmeur exige de chacun des partenaires une discipline rigoureuse. Toute distraction (e-mails, réseaux sociaux, achats en ligne) freine les progrès, non seulement du programmeur, mais aussi de son équipier ; c’est pourquoi les pauses ne doivent être prises qu’à des moments convenus à l’avance. 

Craindre de se tromper 
La programmation en binôme conjugue les connaissances de deux personnes pour résoudre un problème. Par exemple, il est plus facile pour le développeur d’éviter les ornières lorsqu’il a un équipier à ses côtés car il a alors tendance à s’interroger sur ses actions avant de les entreprendre. Cela revient au point évoqué plus haut : tester continuellement le logiciel, développer un nouveau code et le perfectionner jusqu’à ce qu’il donne satisfaction. 

Oublier de faire régulièrement des pauses 
La programmation peut être physiquement épuisante, en particulier si les développeurs fixent leur écran 8 heures par jour. Ceux-ci doivent donc faire régulièrement des pauses pour reposer leurs yeux et leur cerveau. De nombreux programmeurs mettent à profit leurs pauses pour jouer au tennis de table, s’en tenant à une partie de 15 minutes, un laps de temps pendant lequel ils exécutent des tests de leur logiciel en tâche de fond. 

Travailler en silence
L’un des principaux avantages de la programmation en binôme est l’enrichissement mutuel des connaissances par leur partage entre équipiers ; mais cela n’est possible que si les développeurs communiquent constamment entre eux. Les meilleurs binômes adoptent un environnement hautement collaboratif, en se parlant quasiment sans interruption. Les partenaires apprennent ainsi l’un de l’autre en se demandant continuellement leur avis et en se proposant des idées et solutions alternatives.

Alors que les entreprises sont de plus en plus nombreuses à s’intéresser au développement agile des logiciels, la pratique de la programmation en binôme se répand. En suivant ces quelques conseils simples, les entreprises envisageant d’adopter cette technique au sein de leur équipe de programmeurs devraient pouvoir en optimiser l’efficacité. 

Innovation / Collaboratif