Pair programming : le rôle de mentor et la théorie de la passe

Passe VergalloUn des travers dans l’utilisation de la programmation en paire est le syndrome du « clavier englué ». En effet qui n’a pas passé sa journée à jouer uniquement le rôle du pilote ou du co-pilote sans inverser les rôles ? En théorie, les rôles doivent être inversés aussi souvent que possible et au moins toutes les ½ heures (source www.wikihow.com).
Alors pourquoi est-ce si difficile de laisser ou de prendre le clavier ?

Lorsque la paire est composée d’individus assez équivalents en terme d’approche, de compétences, de rapidité d’écriture etc.. le problème ne se pose pas : le clavier peut être monopolisé un moment pour passer très vite de l’un à l’autre. J’ai déjà vu le clavier changer à chaque ligne. La sensation de performance est grisante. C’est là qu’on sent que la paire va vraiment plus vite que deux “monômes”. La difficulté arrive avec la notion de mentor. Lorsque la paire n’est pas équilibrée. Pour des raisons de performances qui semblent louables, le plus expérimenté risque de monopoliser le clavier et de ne pas se mettre au niveau de son équipier, de ne pas lui laisser le temps de progresser.

L’analogie avec le sport est intéressante  : dans les équipes on observe parfois quelques stars du ballon qui vont droit au but sans faire de passe. Cela donne l’illusion de performance car la personne moins compétente ne progresse pas si on ne lui fait pas confiance en lui laissant la balle.

Il en va de même dans les projets informatiques : les experts doivent apprendre à être un peu moins performants pour laisser le temps à leur coéquiper de progresser. A court terme on livre moins; mais très vite, les compétences des individus montent et le projet est gagnant.

This entry was posted in retours d'expérience and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>