Nous modifions actuellement le processus de développement et je me demande si nous devrions essayer de garder 100% de nos commits évalués par les pairs.
Quelle est votre expérience concernant les revues de code?
- Avez-vous tendance à y consacrer "beaucoup" de temps (disons 1/2 heure par jour), ou à parcourir simplement 5/10 minutes maximum?
- Avez-vous un temps fixe à consacrer par jour / semaine / sprint / projet?
- Plus important encore, pensez-vous que l'objectif devrait être que 100% du code soit évalué par des pairs ou que 100% ne soit pas nécessaire?
code-reviews
Siméon
la source
la source
Réponses:
Nous avons une tâche de «révision du code» dans chaque histoire. Une personne idéalement non impliquée dans le développement de cette histoire examinera toutes les modifications de code associées à cette histoire. Ça marche bien.
Beaucoup de temps? Pas beaucoup, cela dépend de la quantité de code - nous recherchons des erreurs évidentes, des fautes de frappe, une vérification de la logique de base, des exceptions non capturées, etc.
C'est une étape de qualité qui trouve des bogues, donc elle a une certaine valeur. L'allocation de temps n'est peut-être pas la meilleure façon de le faire - qu'en est-il si quelque chose est assez complexe, il devrait être révisé par le code?
Soit dit en passant, il est important que quelqu'un d'autre fasse la révision du code.
la source
Un problème plus important est de savoir à quel point votre code est couvert par les révisions, à savoir l'efficacité des révisions. Si vos avis ne révèlent que peu ou pas de problèmes, atteindre une couverture complète sera inutile.
Commencez par rendre vos avis plus efficaces, puis décidez de la couverture.
Les examens doivent être effectués non seulement sur le code, mais également sur la conception.
De plus, les avis ne remplacent pas les tests et les outils:
Essayez de consacrer un temps prédéfini par mois (ou par sprint) aux révisions. Sélectionnez le code que vous souhaitez consulter au prochain emplacement dédié à l'aide d'une heuristique telle que:
Et rappelez-vous, vous examinez le code (ou la conception ou les tests) et non les auteurs.
Je recommande les documents de lecture suivants:
Examens sélectifs sans devoirs Les
secrets les mieux gardés de l'examen du code des pairs
la source
Ça dépend.
Cela dépend de ce que fait votre logiciel:
S'il contrôle un stimulateur cardiaque électronique ou une navette spatiale, alors certainement oui.
S'il s'agit d'un prototype jetable, alors probablement non.
Cela dépend également de la qualité de vos ressources, de l'expérience de vos développeurs et de ce que vous recherchez dans les revues de code. (Gardez à l'esprit que le développeur moyen qui examine le code de quelqu'un d'autre va probablement remarquer des problèmes de style et manquer des bogues algorithmiques subtils ... d'autant plus que la révision du code est une corvée.)
Mon conseil serait d'économiser vos efforts de révision de code pour le code où l'exactitude est critique et le coût des erreurs non détectées est élevé.
la source
Tout d'abord, vous devez répondre à cette question: pourquoi révisez-vous le code?
Avec cette réponse en main, vous pouvez déterminer quel code doit être examiné.
Certaines revues de code accomplissent exactement ce que les tests font ou auraient fait. Si tel est le but de vos avis, alors se rapprocher de 100% est une bonne idée si vous avez peu de tests. Cependant, laisser les outils de test faire cela réduirait la nécessité de revoir tout le code.
La plupart des bonnes critiques semblent se concentrer sur le partage des connaissances et l'augmentation des capacités des développeurs dans la révision (soit celui qui a écrit le code, soit ceux qui ont révisé le code). Avec cela comme principale raison des révisions, il est probablement exagéré de vérifier 100% du code.
la source
Dans un monde parfait, tout serait explicitement lu par l'auteur et évalué par des pairs par au moins une autre personne, des spécifications des exigences aux manuels d'utilisation en passant par les cas de test. Mais les examens, même les simples vérifications sur place, prennent du temps et coûtent de l'argent. Cela signifie que vous devez choisir ce que vous devez réviser et quand vous devez le réviser.
Je recommande de hiérarchiser les éléments à réviser, de choisir la manière dont vous souhaitez les réviser et d'essayer de les réviser autant que possible avec le niveau de détail approprié. La priorisation peut être basée sur le type d'artefact, par exemple en stipulant que les exigences doivent être examinées, le code de conception et de production doit être examiné et les cas de test peuvent être examinés. Dans ce cadre, vous pouvez également spécifier que les composants à haut risque ou à haute valeur reçoivent une priorité dans l'examen, ou peut-être un examen plus formel.
En ce qui concerne le temps, tout remonte à la hauteur de priorité du composant. Il y a eu des moments où j'ai passé 10 à 15 minutes à réviser, et d'autres fois où plusieurs personnes ont lu le code individuellement, puis sont allées dans une pièce pour faire un processus d'inspection plus formel qui dure 30 à 45 minutes (selon la taille de le module).
En fin de compte, c'est un équilibre entre le temps, le coût, la portée et la qualité. Vous ne pouvez pas les avoir tous, vous devez donc optimiser où vous le pouvez.
la source
À titre de suggestion, si vous prévoyez de faire des révisions, ayez des directives communes sur la portée et l'objectif de la révision pour vous assurer que les révisions ne causent pas de frictions inutiles entre les membres de l'équipe.
Des équipes cohérentes construisent de meilleurs projets. Les gens peuvent perdre leurs relations pour des absurdités ou des demandes de perfection. Il y a toujours cette personne qui se plaindrait de ceci ou de cela et qui dérangerait les autres juste parce qu'il est comme ça ...
la source
Je réserve une heure par jour pour faire des évaluations par les pairs, mais je ne l'exige pas toujours. Notre base de code est partagée entre quelques dizaines de produits. Notre politique est qu'un changement trivial de code unique à un produit peut être enregistré sans examen. Les modifications plus complexes d'un produit nécessitent un examen, mais cela peut être aussi informel que d'appeler un collègue à votre bureau pour le lui donner une fois de plus. Les modifications du code partagé nécessitent une révision plus formelle, y compris les développeurs sur d'autres produits. Je pense que notre politique établit un assez bon équilibre par rapport aux autres entreprises pour lesquelles j'ai travaillé.
Je passe plus de temps par jour sur les critiques que certains de mes collègues avec des rôles moins centraux, mais je ne considère pas cela comme un temps déraisonnable, car avant la politique de révision, je pouvais facilement perdre plus de temps que la recherche de bogues qu'un développeur sur un autre produit introduit.
la source
Nous avons effectué des évaluations à 100% du code. C'est beaucoup moins cher que les tests, en particulier les tests de couverture de code à 100%. Nous n'y consacrons pas trop de temps, les révisions pendant plus d'une heure par jour deviennent moins productives. (30 minutes n'est pas beaucoup).
Pendant que vous mettez à zéro dans le processus, prenez des notes. Qu'as-tu trouvé? Qu'a trouvé QA plus tard? Qu'ont trouvé vos clients? Pourquoi ces insectes vous ont-ils échappé?
la source
Ayez des révisions régulières du code, principalement pour le renforcement d'équipe et le partage d'idées sur la mise en œuvre. Vous pouvez ainsi apprendre beaucoup de vos collègues.
la source
Nous exigeons un examen du code des pairs pour chaque enregistrement. Si aucun pair n'est disponible, nous organisons un examen post-enregistrement. Le réviseur est noté dans le commentaire d'enregistrement du contrôle de source.
Celles-ci ne prennent pas beaucoup de temps, et puisqu'elles sont effectuées entre pairs, elles n'ont aucun aspect toxique adulte-enfant.
la source
La révision du code est, OMI, nécessaire. Vous êtes 99,999 ...% du temps ne va pas toujours avoir raison, vous devez donc vous assurer que c'est correct. Ai-je une heure fixe? Non. Mais je prends le temps de vérifier mon code. Habituellement, j'ai un collègue qui fait de même.
la source
Les révisions de code peuvent sembler intimidantes, mais elles sont un outil précieux lorsqu'elles sont menées correctement. Ils seront votre première ligne de défense contre les erreurs de conception et de mise en œuvre. Si vous n'effectuez pas de révision de code sur chaque fonctionnalité que vous mettez en place, vous devez démarrer dès que possible.
En ce qui concerne le temps à consacrer à l'examen par les pairs, une bonne pratique consiste à laisser 5 à 10% de votre temps de développement total estimé pour mener et répondre à l'examen du code.
Nous avons un livre blanc sur la conduite de revues de code efficaces qui peuvent vous aider à démarrer du bon pied. Il s'agit d'un guide étape par étape et discute des pièges courants que vous pourriez rencontrer et comment les résoudre. Vous pouvez le télécharger depuis notre site Web.
la source