Une tête est bonne, et deux est meilleure, ou la programmation par paires en action


Pilote et navigateur en action (version nord-coréenne de la méthodologie)

D'un traducteur: Aujourd'hui, nous publions un article pour vous par Andrew Sprul , spécialiste en science des données. Il parle des avantages de jumeler des programmeurs sur le même projet.

J'entends souvent des gens dire qu'ils travaillent mieux seuls. Je comprends que certaines idées et méthodes qui conviennent à une personne ne conviennent pas à une autre. Mais néanmoins, le dicton «Une tête est bonne et deux c'est mieux» est proche de moi. Sous la coupe se trouvent deux vidéos qui montrent à quel point deux personnes peuvent travailler sur une seule tâche. Ce n'est que de l'harmonie - au propre comme au figuré.

Skillbox recommande: un cours pratique de deux ans, "Je suis un développeur Web PRO . "

Nous vous rappelons: pour tous les lecteurs de «Habr» - une remise de 10 000 roubles lors de l'inscription à un cours Skillbox en utilisant le code promo «Habr».



Voici la deuxième vidéo (l'auteur a interdit l'intégration de ressources tierces, mais cela vaut vraiment le coup d'œil).

La musique n'est pas le seul domaine où la collaboration entre deux personnes peut bénéficier d'un projet commun. Il en existe bien d'autres, comme Michael P. Farrell, professeur de sociologie à l'Université de Buffalo, en parle dans son livre Collaborative Circles: Friendship Dynamics and Creative Work. En particulier, il pense que de nombreuses grandes idées sont apparues chez les personnes qui travaillaient en binôme: il pouvait s'agir de scientifiques, d'artistes, d'écrivains.

En peinture, c'est Monet et Renoir, par écrit - Tolkien et Lewis, en science - Creek et Watson ... Vous pouvez lister longtemps. De plus, environ la moitié des lauréats du prix Nobel dans la catégorie «Physiologie et médecine» sont des équipes de deux personnes.

Eh bien, à notre époque, la «programmation par paires», que Wikipedia décrit comme une méthodologie agile pour le développement de logiciels, qui consiste en deux programmeurs travaillant sur le même poste de travail, donne d'excellents résultats. L'un d'eux, le pilote, écrit le code, le second, l'observateur, surveille le processus et lit chaque ligne tapée. Les programmeurs changent souvent de rôle.

Cette technique n'est pas liée au travail sur le modèle du "professeur-élève", nous parlons du travail conjoint de deux spécialistes égaux. L'un d'entre eux a peut-être plus d'expérience, mais ils fonctionnent de la même manière, les droits sont égaux. En général, l'idée est que deux personnes trouvent une solution plus rapidement qu'une.

Au début, il peut être difficile pour un couple de fonctionner correctement, et en effet, un tel flux de travail semblera ridicule pour beaucoup. Mais ici, comme ailleurs, l'expérience est nécessaire. Au fil du temps, le travail s'améliore et le processus se déroule sans heurts, presque sans problème.



Je le répète, dans la programmation par paires, il y a deux rôles: pilote et navigateur. La tâche principale du premier est de suivre les détails du code, de mettre en œuvre des idées, de les transformer en lignes de code. Le conducteur et le navigateur doivent discuter des idées et des problèmes.

Le navigateur fait attention à chaque ligne tapée, et cette attention n'est pas dispersée, car il n'a pas besoin de taper du texte. Le principal objectif du navigateur est de transmettre des idées claires au conducteur. Le navigateur doit donner au conducteur des instructions avec un certain niveau d'abstraction afin qu'il puisse les mettre en œuvre le plus efficacement possible.



Si un pilote a une idée, le navigateur et le pilote peuvent changer de rôle. Cela permet aux partenaires de travailler de manière synchrone. Partager des idées s'apparente à un brainstorming, mais c'est un processus plus efficace, plus le taux d'erreur est réduit (comme le montre le diagramme ci-dessus).

Je peux conseiller aux spécialistes qui travaillent en binômes de s'interrompre parfois et de se poser des questions. Cela aide à penser dans une direction, à se comprendre et à travailler efficacement.

Paire de programmation et de workflow




En étudiant la question de la programmation par paires, j'ai trouvé qu'il existe plusieurs stratégies pour un tel travail. Certaines des options peuvent être trouvées ici . L'une des stratégies les plus intéressantes s'appelle Ping Pong Sparring. Cela fonctionne comme suit:
  • Le programmeur A écrit un nouveau test et constate qu'il ne fonctionne pas.
  • Le programmeur B ajoute le code nécessaire pour réussir le test.
  • Le programmeur B écrit un nouveau test et voit qu'il ne fonctionne pas.
  • Le programmeur A ajoute le code nécessaire pour réussir le test.
  • Reviens.

Oui, cela ne ressemble pas à un flux de travail idéal, mais nous ne saurons pas à quel point il est efficace avant d'essayer.

J'ai récemment appris d'un camarade de classe qu'Atom a un package Teletype qui permet aux développeurs de travailler ensemble en temps réel, donnant aux collègues l'accès à leur bureau. C'est encore mieux que de simplement s'asseoir ensemble sur le même poste de travail, car cela vous permet d'être dans des conditions plus confortables et moins distraites.

Et n'oubliez pas: les rôles que vous devez changer tout au long de la journée. Cependant, vous ne pouvez pas utiliser la minuterie, car elle interférera avec le flux de travail. Beaucoup de gens pensent que vous devriez changer de rôle dans un intervalle de 30 minutes. Mais tout est subjectif ici.

La période d'adaptation lors de la transition de la programmation en couple à la programmation en binôme est similaire à la consommation de piment. La première fois que tout va mal, vous ne l'aimez pas. Mais plus vous mangez de poivre, plus tôt vous l'aimez.

En conclusion, ce qui a été dit


Une fois que j'ai entendu la phrase: «Pour que l'idée se réalise dans une figure, il faut qu'elle passe entre les mains d'une autre personne. Ce type de programmation est la communication et la collaboration. » Il me semble que la communication et la coopération sont les deux composantes d'un travail réussi.

Je suis moi-même plus productif lorsque je travaille en tandem avec quelqu'un. Mon expérience en tant que musicien suggère que jouer dans un ensemble est mieux que d'être un artiste solo. Ce n'est pas parce que je suis dépendant d'une autre personne, mais plutôt que ma confiance dans le succès grandit quand je vois que le travail général est plus efficace. Maintenant, j'ai un meilleur navigateur qu'un pilote, mais je m'améliore progressivement. J'espère que cet article aidera vos futurs projets.

Skillbox recommande:

Source: https://habr.com/ru/post/fr436442/


All Articles