Loading AI tools
technique collaborative de développement logiciel De Wikipédia, l'encyclopédie libre
La programmation en binôme (de l'anglais pair programming), parfois appelée programmation par pairs ou binômage, est une méthode de travail dans laquelle deux développeurs travaillent ensemble sur un même poste de travail. La personne qui rédige le code est appelée conducteur (driver). La seconde personne, appelée observateur (observer), assiste le conducteur en décelant les imperfections, en vérifiant que le code implémente correctement le design et en suggérant des alternatives de développement. Les rôles s'échangent régulièrement pendant la séance de programmation[1]. La programmation en binôme fait partie des bonnes pratiques de l'extreme programming.
Un des freins à l'adoption de la programmation en binôme en entreprise est l'idée que deux personnes travaillant sur un même projet constituent un gaspillage de ressources humaines[2]. Plusieurs études se sont intéressées à la productivité relative des binômes face aux programmeurs seuls[3]. Pour éviter l’ambiguïté entre temps passé et temps total par programmeur, Kim Man Lui (en) définit une mesure de l'effort relatif consenti par un binôme (de l'anglais relative effort afforded by pairs, abrégé en REAP) de la façon suivante[3] : où représente le temps passé par un binôme et le temps passé par un programmeur seul.
Équation en français: où représente le temps passé par un binôme et le temps passé par un programmeur seul.
Une valeur nulle de REAP indique qu'un binôme utilise exactement la moitié du temps nécessaire à un programmeur seul pour réaliser la même tâche. Une valeur de REAP comprise entre 0 et 100 % indique qu'un binôme réalise une tâche plus rapidement mais nécessite davantage d'heures-hommes. Une première étude réalisée en 1998 rapporte une valeur de 59,4 %[4]. Une autre étude complète ces résultats en indiquant qu'après une période d'ajustement, ce taux descend à 15 %[5]. La programmation en binôme est donc particulièrement utile lorsqu'il est nécessaire de réduire le délai de mise sur le marché d'un logiciel.[réf. nécessaire]
La programmation en binôme permet également une détection plus rapide des bugs, notamment par l'application continue de la revue de code par l'observateur[6]. De manière générale, un binôme conçoit des applications de meilleure qualité qu'un programmeur seul[7]. Cette différence s'explique par la nécessité pour un binôme de s'accorder au préalable sur la conception de l'application à produire en proposant un raisonnement justifié[8]. La programmation en binôme amène alors à des applications passant davantage de tests[9] et ayant des fonctionnalités implémentées avec moins de lignes de code[10].
Économiquement, le surcoût en personnel induit par la programmation en binôme est compensé par la hausse de qualité de l'application produite. Plus un défaut est décelé tard et plus il est coûteux de le corriger. Ainsi, la correction tardive des défauts supplémentaires d'une application développée par un programmeur seul est quinze à soixante fois plus coûteuse[Pas dans la source][11].
La programmation en binôme est une activité sociale qui nécessite d'apprendre à travailler avec les autres. Elle favorise ainsi la communication au sein d'une équipe en encourageant les développeurs à parler entre eux[12]. En outre, elle permet d'améliorer les compétences communicationnelles qui sont généralement peu travaillées pendant l'apprentissage de l'informatique. Cette pratique a également pour effet de renforcer les liens entre les développeurs et de créer un esprit d'équipe[13].
De plus, la programmation en binôme améliore le plaisir des programmeurs et la confiance dans leur travail. De nombreux sondages attestent que plus de 90 % des développeurs préfèrent programmer en binôme plutôt que seuls[14].
L’utilisation de la programmation en binôme appliquée dans le milieu universitaire permet une amélioration globale des notes des étudiants les plus faibles[15], sans pour autant diminuer les notes des plus forts[16] ; de plus, il permet une meilleure intégration des femmes et des minorités au sein des cursus informatiques[17].
La mise en place de binômes au sein d'un cours à l'université améliore également la qualité du travail effectué. De plus, le travail en binôme permet un échange plus aisé entre les étudiants[18], mais également avec le professeur[19], voire de réduire les différences pédagogiques entre les professeurs[20].
Au sein d'une entreprise, le développement en binôme encourage un transfert de connaissances techniques entre les membres de l'équipe, notamment lorsqu'un développeur considéré comme novice travaille avec un expert. Le novice peut non seulement apprendre de nouvelles technologies grâce à l'expert, mais aussi apprendre de bonnes pratiques ou découvrir de nouveaux logiciels utiles au développement[21].
La plupart des développeurs sont conditionnés pour travailler seul et l'adoption de la programmation en binôme est parfois délicate. Si la transition s'effectue généralement avec succès[22], il existe quelques indicateurs qu'un binôme ne fonctionne pas :
La programmation en binôme peut également être établie à distance[25]. Dans ce cas, des outils dédiés au travail collaboratif sont souvent mis en place, en vue notamment de partager l’affichage (Mikogo) ou le code source (XPairtise[26], Saros[27], Cloud9), de communiquer à distance (Skype), ou encore d'exécuter des instructions sur une machine distante (SSH)[28].
La communication au sein du binôme peut être perturbée par plusieurs éléments. Différents problèmes techniques tels qu'une coupure réseau ou des messages d’erreur dans un logiciel peuvent faire perdre du temps au binôme[25]. De plus, le manque de communication non verbale rend parfois l'échange plus difficile. Cependant, des outils de dessin, la sélection de code ou le curseur peuvent compenser ces problèmes de communication[28]. Enfin, on note également certains avantages, comme les modifications mineures de code sans perturber le binôme[29].
La programmation en binôme à distance modifie les rôles définis par la programmation en binôme classique. En effet, avoir deux écrans affichant le même code source rend l’observateur souvent plus actif. Deux situations peuvent être constatées :
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.