Examens par les pairs ou programmation par paires, ou les deux?
- Ne vous participer dans le code des examens par des pairs ou de la pratique de la programmation en binôme, ou les deux?
- Avez-vous été en mesure de démontrer une augmentation de la qualité des logiciels à l'aide de ces pratiques?
- Quels sont les avantages et les inconvénients sont que vous avez observé dans le cadre de la pratique?
- Quels obstacles avez-vous rencontrés?
Dans mon propre cas, notre équipe de développement poursuivis par des pairs des un certain nombre de logiciels différents artefacts (exigences en matière d'analyses, plans de test, code, et ainsi de suite). Par les pairs de la programmation n'était même pas considéré comme une option.
L'examen par les pairs de la pratique a été poussé vers le bas à partir du haut, et les développeurs ne jamais acheté. Nous avons eu un externe SQA groupe qui a réuni les métriques des activités, mais les chiffres étaient assez inutile puisque l'effort était à moitié-cœur. Après des années de cela étant le "officielle" de la façon de faire les choses, les développeurs se sont collectivement ignorer les procédures prescrites.
Maintenant il y a moins de visibilité lorsque les bugs sont arriver intervenu dans le cycle de vie. Et ne pas faire les examens par les pairs a conduit à une spécialisation accrue de l'équipe...où personne ne sait vraiment les exigences/logique des composants en dehors de leur propre domaine spécialisé du système.
Il serait utile de connaître vos expériences w/examens par des pairs ou d'une paire de programmation, en particulier les histoires de réussite.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Quand j'étais jeune et stupide, l'une de mes premières tâches a été de construire un analyseur de sortir de certains champs dans un long fichier pdf qui a été sous-évaluées de texte sans mise en forme. J'en savais assez pour utiliser une certaine forme de regex, mais pas assez sur les regex pour bien faire le travail. Plusieurs jours plus tard, j'ai terminé la tâche, mais dans d'examen par les pairs j'ai été écrasé d'apprendre que j'aurais pu faire mieux et ce que j'ai produit est trash. J'ai appris à faire lexicale analyse syntaxique, juste pour prouver que je n'étais pas un idiot, mais permet simplement de dire que l'examen par les pairs de sucer. Je n'ai pas besoin d'une personne âgée de danser sur mes échecs, j'ai besoin d'un mentor et je me suis rappelé qu'à chaque fois j'ai fait un examen par les pairs.
J'aime examens par les pairs lorsque nous vérifions les ego à la porte. (Cela inclut le mien!) Il y a une quantité limitée de temps dans ce monde, et seulement tellement que vous pouvez apprendre et à faire. Grâce à un bon d'examen par les pairs vous pouvez étendre vos connaissances et d'en faire plus en moins de temps. Les problèmes surviennent lorsque les choses se dégradent en plus de anal vérification de la syntaxe.
J'ai quelques règles à cause de cela. Je n'ai pas d'examen par les pairs tout ce que nous pouvons automatiser. Exécuter une vérification de l'orthographe, et le code de formatage automatique de la requête. Si vous avez quelque chose comme FXCop disponible pour vous, exécuter, faire ce qu'il dit, ou avoir une sacrée bonne raison pourquoi vous ne l'êtes pas. Ensuite, nous pouvons voir comment le code est mis en place, le fonctionnement et les choses que nous pouvons faire pour l'améliorer. De cette façon, vous obtenez un point de vue différent sur la façon de résoudre un problème et pourquoi quelqu'un qui pense de cette façon. Parfois dans l'autre sens c'est pas vraiment mieux, parfois, la nouvelle solution est fantastique et quelque chose que vous allez utiliser pour le reste de la programmation de la vie.
Une fois l'examen terminé, c'est ça, je ne suis pas à l'utiliser comme un exemple contre vous. C'est à vous de savoir ce que vous aurez à partir d'elle. Je ne vais pas gérer par la peur ou la menace, vous êtes une personne intelligente et je vais vous laisser le montrer.
Nous essayons de faire en sorte qu'aucun code n'entre en production sans avoir vécu au moins une autre paire d'yeux.
Habituellement, cela signifie que nous avons de la revue de code. Nous essayons d'en faire une habitude autour de l'équipe que les examens sont une partie inhérente de l'écriture de code. Vous l'écrivez, puis demandez à quelqu'un, pour un avis.
Aussi, sur des projets où nous avons suffisamment de personnes disponibles (sont, lorsque les tâches sont de bonne taille) nous essayer à la programmation en binôme.
Je dois dire que nous avons certainement vu un avantage de ce. Tout d'abord, c'est un excellent moyen pour encadrer les développeurs juniors dans l'équipe - lorsque vous revoir leur code que vous obtenez pour leur montrer ce qui peut être mieux fait, et lorsque le couplage avec eux, ils peuvent voir des meilleures façons de faire les choses, comment les gens expérimentés de penser et même comment utiliser l'IDE mieux.
Aussi, il conserve l'ensemble de l'équipe de synchronisation quant à savoir la façon dont le code ressemble.
Et, en outre, il augmente tout simplement tout le monde de joie et de développement personnel d'une équipe qui est capable de parler et de raisonner sur le code est une meilleure équipe, une équipe qui garde l'apprentissage et le partage.
Quelques choses à regarder dehors pour:
J'ai fait un tas de coaching agile, et pour aider les gens à obtenir plus de la "stigmatisation" de la programmation en binôme, nous l'appelons "temps réel le code & examen de la conception". Les gens semblent le concept vaut mieux que vous mettez en ces termes.
D'examen par les pairs devrait être OBLIGATOIRE.
Vous pouvez lire et de trouver de nombreux articles et ouvrages sur les différentes façons d'aborder cette au sein de différentes équipes de taille, mais vous avez l'air de s'enquérir au sujet d'expériences.
Personnellement, je pense que l'examen par les pairs devrait être fait plaisir. Les aliments fournis et de maintenir une atmosphère joviale. Il devrait vraiment être traitée comme un temps où les développeurs/programmeurs peuvent apprendre les uns des autres, non pas une chance pour juger (et nous savons tous comment chaque programmés semble être né avec une inné de jugement de gènes). J'ai tendance à apprécier ou aidé à organiser des examens à 1/3ème ou 1/4ème de temps que d'ouvrir. J'entends par là que lorsque le groupe se réunit et une personne présente un projet sur lequel ils travaillent ou même revue qui n'est même pas lié au projet en cours (je sais que c'est difficile avec des échéances, mais essayez pour cela).
Créations se réunissent pour exposer des peintures, des dessins, et les artistes, ils sont actuellement en afin d'aider à faciliter l'inspiration. De façon réaliste, l'inspiration doit être le premier concept vous l'espoir de favoriser dans une revue. Secondaire pour que les gens naturellement remarquer les choses à leurs collègues développeurs n'qu'ils n'ont PAS remarqué avant. “Oh wow, vous avez réussi à le faire en une seule ligne de code? Cool.” Obtenir les développeurs d'inspiration et de motivation sur ce qu'ils font, ce qu'ils sont au travail, et comment il va verser des dividendes plus que l'utilisation d'examen par les pairs pour établir la hiérarchie de l'ordre et de rang.
Enfin, vient le fait de “révision” de la partie mais c'est un fait inévitable. Votre mieux aux développeurs de voir le pauvre code et après un nombre suffisant d'examens, il est temps pour les pauvres codeur à l'étape ou l'oublier.
Si vous gardez une attitude positive et organisé, il est généralement une expérience formidable.
Presque oublié de toucher à la programmation en binôme. C'est plus difficile à définir. Évidemment, vous ne pouvez pas avoir deux de vos plus faible des programmeurs travaillant ensemble, ou vous pouvez organiser un million de singes avec un million de machines à écrire. Essayez de mettre une personne plus forte avec une plus faible sur et offrir des incitations à la fois en privé. Quelqu'un qui est plus faible devrait savoir que des améliorations pourraient être récompensés s'ils ont besoin d'encouragement de ce genre) et la plus forte programmeur doit savoir que les vrais dirigeants de commencer comme de bons mentors. Assurez-vous que le plus faible de dev est en train de taper. Non pas vice-versa, ou il devient une présentation et une "bâillement" quelqu'un ne pourrait pas gagner quoi que ce soit par l'expérience.
Le seul directement liées à l'expérience que j'ai de l'un des deux est les pairs des revues de conception (il y a longtemps). Et ils aspiré. Si vous lisez la littérature, il était clair qu'ils ont enfreint plusieurs règles de bonnes critiques (sauter sur les gens, se concentrer sur l'orthographe, pas de résultats précis, etc. etc.) mais c'était tout ce que nous savions.
MAIS depuis lors, j'ai été impliqué dans beaucoup de hors-ligne des revues de code.
En fonction du projet qu'ils ont été mandatés avant le check-in pour le "live" de branche, ou à un point aléatoire de temps après. Sur 3 des 4 projets qu'ils ont été choisis, certes comme un mal nécessaire au début, mais plus tard, comme un apport précieux.
Le bénéfice de tout travail d'examen devrait être de rendre tout le monde à mieux écrire le code et donne même les meilleurs programmeurs de mentorat (être honnête, faites votre hot shot programmeurs d'écrire un code lisible ?) Une fois que vous pouvez convaincre le personnel moins expérimenté-à-dire qu'ils ne comprennent pas quelque chose que vous êtes loin. Certains hot shots sera huff & puff mais les meilleurs d'entre eux vont penser de ce qu'ils ont écrit et fait changement des noms de variables ou de mise en page - et peut-être même ajouter un commentaire.
Le 4ème projet utilise un système imposé de revoir 'à un moment aléatoire" et de la technique conduit n'ai pas mis en il que encore (cassés de l'équipe ?)
Les deux pratiques que vous décrivez sont les démarches formelles. Ils ne fonctionnent pas bien pour toutes les personnalités et les groupes.
Essayer quelque chose que vous pensez que votre équipe peut effectivement le faire et ensuite voir si cela peut être amélioré.
Une fois que vous avez eu cette paire d'yeux supplémentaire sur votre code, vous ne voulez pas regarder en arrière
• Oui, notre société utilise par les pairs des revues de code. Nous procédons à eux comme Sur L'Épaule d'examens et d'inviter l'équipe de testeur pour participer à la réunion d'acquérir une meilleure compréhension des changements.
• Il y a des avantages évidents à l'examen du code, comme plusieurs études l'ont été en mesure de démontrer. Pour notre société, il était évident que la qualité du code a augmenté alors que le nombre d'appels a diminué et le nombre de bugs signalés a diminué. REMARQUE: Certains des avantages ici ont été le résultat de la mise en œuvre de Scrum et l'abandon de la Chute d'eau. Plus sur Scrum ci-dessous.
• Les avantages de l'examen du code, peut être un produit plus stable, plus facile à gérer le code tel qu'il s'applique à la structure et les normes de codage, et il permet aux développeurs de se concentrer plus sur de nouvelles fonctionnalités, plutôt que de “pompiers” de bugs, et d'autres problèmes de production. Il ya vraiment pas d'inconvénients si le code des examens sont effectués “à droite”. Plus sur le “droit chemin”, ci-dessous.
• Certains des obstacles à surmonter lors de l'exécution de révision du code de l'idée que “big brother” est en train de me regarder et de l'idée que de ne pas en avoir parfaite du code, la torture et la douleur. Obtenir les développeurs à faire confiance les uns les autres est parfois difficile, surtout quand il s'agit de “hiérarchie” ou le “plus saint que toi” attitudes et de mettre votre travail sous un microscope. La confiance est la clé de la résolution de ces problèmes. Un développeur doit avoir l'assurance qu'ils ne seront pas punis par les pairs ou de la gestion des erreurs dans le code. Il arrive à tout le monde. Faire une note de la question, de trouver des solutions et avancer.
Mêlée
L'un des avantages de l'utilisation de la méthodologie Scrum est qu'un cycle de développement (”sprint”) est courte. Le délai de “sprint” est déterminé par ce qui fonctionne le mieux pour votre organisation et auront besoin de quelques essais et erreurs, mais vraiment ne devrait pas être plus de quatre semaine itérations. L'avantage est qu'il exige que les développeurs de communiquer quotidiennement et communiquer les problèmes dès le début du projet. Il a d'abord été adopté par notre département de développement et s'est propagé à tous les domaines de notre société comme les avantages de scrum sont loin d'atteindre. Pour plus d'informations, voir: http://en.wikipedia.org/wiki/SCRUM ou http://www.scrumalliance.org/ . Comme les itérations de développement sont plus petites, le processus de révision du code des examens de petits morceaux de code, en faisant le plus de chances de trouver des problèmes que d'heures ou de jours des examens officiels.
“Droit Chemin”,
La révision du Code fait le “droit chemin” est totalement subjective. Cependant, personnellement, je pense qu'ils devraient être informelle, par dessus l'épaule des examens. Tous les participants à un examen doit éviter d'attaquer personnellement la personne examinée avec des déclarations telles que “pourquoi avez-vous le faire de cette façon?” ou “que pensiez-vous?”, etc. Ces types de commentaires diminuer la confiance entre pairs, conduisant à de l'animosité, des heures de discussions sur le meilleur/la bonne manière de coder une solution. Gardez à l'esprit que les développeurs ne pensent pas ou code exactement le même, et il y a beaucoup de solutions à un problème.
Juste une petite précision sur dessus l'épaule des examens; ceux-ci peuvent être effectuées via le partage de bureau à distance (choisir la saveur ici), ou en personne. Toutefois, ils ne devraient pas être limitées pour les développeurs seulement. En règle générale, nous invitons l'ensemble de nos mêlée de l'équipe qui se compose de deux développeurs par équipe, un testeur, un document de personne, et propriétaire du produit. Tous les non-développeurs sont là pour acquérir une meilleure compréhension des changements ou de nouvelles fonctionnalités apportées. Ils sont libres de poser des questions ou formuler des commentaires, mais pas de faire des choix de codage ou des commentaires. Cela a été efficace car certaines questions seront posées, qui peut changer le sens du projet que les exigences initiales peut-être manqué un scénario, mais c'est ce qui est agile est tout au sujet, du changement.
Suggestion
Je recommande fortement la recherche de scrum et des revues de code, avant d'imposer. Créer les règles de base de chacun et de les mettre en œuvre dans le cadre de votre culture d'obtenir un produit de meilleure qualité. Elle doit devenir une partie de votre culture, de sorte qu'il est partie d'un processus naturel et intégrée à tous les niveaux, comme c'est un changement de paradigme de mauvaise qualité, les dépassements de délais et de frustration pour des produits de meilleure qualité, moins de frustration, et un plus grand nombre de livrables.
Une analyse comparative après avoir déménagé à PR avis sur github à partir de la programmation en binôme.
Accent est mis sur la liste étape par étape ce que nos équipes suivent maintenant dans la PR du processus d'examen.
“La révision du Code vs Paire de Programmation” https://blog.mavenhive.in/pair-programming-vs-code-reviews-79f0f1bf926