Programmation en binôme
chez LesFurets.com

Alexandre DuBreuil

Alexandre DuBreuil

Tech lead équipe panel assureur

Canadien qui code dans une cabane en bois

LesFurets.com

1er site indépendant de comparaison d’assurance, lancé en septembre 2012

Un lieu unique pour comparer rapidement des centaines d’offres (assurances auto, moto, MRH, santé et emprunteur)

Organisation

L'équipe de développement est séparé en 4 streams ou feature team, avec 20+ développeurs

Les différents stream sont responsables de la qualité de leur code... on a pas de QA

Programmation en binôme

Définition : une méthode de développement Agile dans laquelle deux développeurs travaillent ensemble sur un même poste de travail.

Historique

... c'est un peu vieux

1978-1988

P.J. Plauger, un des développeur du langage C :

A chaque terminal, deux développeurs. Évidemment, seulement un développeur utilise le clavier, mais les autres regardent par dessus son épaule

1978-1988

P.J. Plauger : inventeur ou précurseur de la technique, sans la nommer "pair programming".

1995

Le terme arrive plus tard...

  • Developing in pairs, un pattern dans un livre de Jim Complien
  • Constantine on peopleware, de Larry Constantine

1998

Kent Beck : eXtreme programming explained

Le binômage est au centre de la pratique

2002

Laurie Williams : Pair programming illuminated

  • Premier livre dédié sur le pair programming
  • Premières études empiriques

Programmation en binôme

Définition : une vieille méthode de développement Agile dans laquelle deux développeurs travaillent ensemble sur un même poste de travail.

Pour 15% d'augmentation du temps de développement

(si vous me croyez pas demandez a Mme Williams...)

Avantages pour un développeur

  • améliore la satisfaction des développeurs
  • améliore les capacités de résolution de problème
  • permet de découvrir de nouveaux idiomes
  • rend les tâches difficiles plus accessibles
  • rend les tâches monotones plus intéressantes

Avantages pour une société

  • améliore la cohésion d'équipe
  • améliore les problématiques de recrutement
  • augmente le "nombre bus"
  • les inspections sont effectuées JIT
  • permet de faire de la revue de code gratuitement

Avantages pour un produit

  • améliore la qualité du design
  • diminue les coûts de productions
  • moins de chance de faire la solution "sale"

C'est tu pas beautiful mon buddy boy ?

Programmation en binôme

Définition : une vieille méthode de développement Agile efficace et éprouvée dans laquelle deux développeurs travaillent ensemble sur un même poste de travail.

Et pourquoi personne n'en fait, du pair programming ?

Le travail en équipe...

... est indéfini dans notre métier

Le développement...

... est souvent appris comme une activité solo

La mentalité rockstar...

... est encouragée

Difficile à justifier auprès des gestionnaires...

Ça va prendre le double du temps

... les idées sont fausses mais bien ancrées

Auditoire : "Je suis convaincu !"

... et on fait comment ?

Pilote

  • développe
  • explique sa démarche
  • vérifie
  • réfléchis aux problèmes
  • garde la structure globale en tête

Copilote

Une recette simple comme la poutine !

0Créer un environnement de développement

avec des outils accessibles...

1Sélectionnez correctement votre paire

2Sélectionnez une tâche assez définie

...mais pas trop !

3Faire confiance en son partenaire et le supporter

4Parler beaucoup

"qu'est-ce que tu penses de..."

"comment ferais-tu pour..."

"je vais tester comme ça..."

5Se synchroniser souvent et chercher l'approbation

6Célébrer

7Varier les paires, varier le temps de travail

8Tourner souvent

9Faire des rétros sur la pratique

10Planifier les paires dans le temps

11Donner un temps de "jello"

Comme toute méthode, c'est avant tout une question de culture

ça se développe

ça se travaille

ça s'apprend

Programmation en binôme

Définition : une vieille méthode de développement Agile efficace et éprouvée dans laquelle deux développeurs travaillent ensemble sur un même poste de travail. C'est une culture qui se développe, s'entretient et se célèbre.

Questions / réponses

par T-Rex le chat