Je sais que la programmation par paires est une technique de développement logiciel agile dans laquelle deux programmeurs travaillent ensemble sur un même poste de travail. L'un, le pilote, écrit le code tandis que l'autre, l'observateur, examine chaque ligne de code au fur et à mesure de sa saisie.
Mais je me demande simplement que la stratégie fonctionne toujours dans le cas. Par exemple
- s'ils ont un niveau de compétence en programmation très différent.
- si l'on ne connaît jamais dans le domaine du problème alors qu'un autre en a.
- Est-ce toujours OK s'ils ont un faible niveau de compétence en programmation?
Pourriez-vous suggérer la stratégie de programmation de paire dans le cas ci-dessus?
agile
pair-programming
Sakares
la source
la source
Réponses:
En supposant que la personne la plus expérimentée du couple ait le tempérament pour encadrer l'autre personne, jumeler quelqu'un avec peu d'expérience dans la langue ou le domaine problématique avec une personne expérimentée faciliterait le transfert de connaissances. La personne moins expérimentée aurait un mentor pour les instruire sur la langue, le domaine, l'application et les meilleures pratiques ou conventions de l'équipe.
Il y a un résumé intéressant sur C2 wiki sur le transfert de connaissances en utilisant la programmation par paires . La personne la plus âgée, qui a été amenée à servir de mentor d'équipe, a beaucoup appris des programmeurs juniors et ses connaissances ont même augmenté grâce au jumelage avec des développeurs de logiciels plus juniors et moins expérimentés. Il existe également d'autres histoires de programmeurs experts associés à des experts du domaine.
la source
C'est exactement la programmation de paires de cas d'utilisation qui a été faite pour: partager l'expérience entre la vieille barbe et la jeune sauterelle.
Il s'agit d'un partage à double sens: les insectes agiles ont beaucoup à apprendre aux cerveaux rhumatismaux.
la source
Quand j'ai été promu dans mon équipe actuelle, j'étais le débutant en J2EE mais j'étais l'expert dans le domaine. Mon senior (le nouveau chef d'équipe) était compétent en J2EE mais pas dans la plateforme.
Je pense que j'ai appris plus sur Java2EE au cours de ces 4 mois avec la programmation en binôme que sur la lecture d'un livre et le chef d'équipe a également découvert la plate-forme.
L'écart d'expérience entre les deux est la clé pour coupler la programmation à mon humble avis.
la source
Je vais décrire mon expérience et essayer d'en tirer une "stratégie".
J'ai déjà programmé une paire avec un non-programmeur complet. Il était expert sur le sujet du produit logiciel que nous avons développé. Au contraire, je n'avais aucune expérience dans le domaine problématique. Et il était aussi mon superviseur en ce moment (je sais que cela peut sembler étrange :)
Le principal avantage de cette méthodologie était que je devais expliquer la mise en œuvre de nombreuses choses de son domaine de connaissances, assurant ainsi l'exactitude de la mise en œuvre et sa compréhension du processus, ce qui signifiait qu'il comprenait pourquoi cela prenait du temps.
Un autre avantage est une concentration facile sur la tâche, aucune distraction (ha-ha, imaginez ouvrir Twitter devant le nez de votre patron).
Cependant, il était parfois assez intimidant, car même une pause-thé devenait une "distraction du travail" (pas de son point de vue; il était simplement gênant de demander une pause, etc.).
Donc, ce n'est pas vraiment une programmation par paires car il ne pouvait pratiquement pas réviser le code tel qu'il était tapé. Cependant, cela semblait être une stratégie sensée (au moins pendant un certain temps). Cela a finalement fonctionné du fait de la relative simplicité de la méthodologie de développement (je veux dire, aucune technique de conception de logiciel complexe comme les modèles OOP n'était impliquée) et du sujet. Cela ne fonctionnerait pas si nous devions développer un compilateur, je pense. Je crois que cela pourrait encore fonctionner si un observateur non programmeur participe au processus de développement de petites pièces clairement définies. Dites, c'est bien de lui faire regarder la programmation d'une fonction "calculer le paramètre X à partir de Y et Z par un algorithme donné", mais peut-être pas si bien de lui faire regarder le processus global de conception du système (c'est-à-dire le développement de l'architecture logicielle, c'est-à-dire la hiérarchie des Des classes,
Je pense que cela fonctionnerait encore mieux au cas où il aurait des compétences de base en programmation, car je n'aurais pas à expliquer "ce qu'est un tableau".
J'espère que ça aide :)
la source
D'après mon expérience, si les deux programmeurs ont un faible niveau de compétence, cela peut être un problème. Dans ce cas, il y a souvent une tendance à essayer la programmation copier-coller. Je pense que ce peut être une bonne idée de ne pas jumeler deux programmeurs novices ensemble jusqu'à ce qu'ils atteignent un niveau spécifique déterminé par l'équipe.
Sinon, la programmation par paires peut être une excellente idée en supposant bien sûr que deux gars sont prêts à partager ce qu'ils savent. Non seulement c'est un excellent moyen de tenir tout le monde informé du code source, mais il constitue également un bon endroit pour de nouvelles idées et discussions.
la source
Tant que les membres de l'équipe se respectent, la programmation en binôme peut être bénéfique quels que soient les niveaux d'expérience des programmeurs. Même si un programmeur junior ne repère que quelques erreurs de syntaxe (que nous faisons tous!) Devant le programmeur plus expérimenté, c'est encore du temps gagné dans la compilation du code.
Je pense également que cela peut ouvrir l'attitude d'un programmeur envers les capacités des autres membres de son équipe, surtout s'ils ont l'esprit ouvert et s'attendent à ce que tout le monde puisse vous apprendre quelque chose.
la source