Si vous faites des révisions de code
- Combien de temps passez-vous sur les révisions de code, par rapport à la mise en œuvre?
- Combien de changements subissent une révision du code?
- vous pensez que c'est trop / devrait être plus?
Existe-t-il des études sur l'efficacité?
[modifier] merci à tous pour les réponses, il est difficile de choisir un "gagnant" pour une telle question, il y a aussi beaucoup d'informations précieuses dans les autres réponses.
time-management
code-reviews
Peterchen
la source
la source
Réponses:
Dans mon travail, nous avons la procédure suivante pour les révisions de code. Jusqu'à présent, cela a bien fonctionné pour nous et nous l'avons trouvé très efficace en termes de temps, en particulier en termes d'heures de travail. Nous n'avons pas vraiment de temps spécifique alloué aux évaluations. Chaque validation ou fusion dans le tronc doit être révisée, et il faut autant de temps pour que le réviseur l'accepte.
Edit: le temps qu'il faut, bien sûr, dépend de l'ampleur du changement. Les petites fonctionnalités et les corrections de bugs prennent quelques minutes. Les nouvelles fonctionnalités, refactorisations ou modifications importantes qui affectent de nombreuses parties du système peuvent prendre une demi-journée pour être examinées et une autre journée pour résoudre tous les problèmes qui en résultent.
Pour faire fonctionner ce système, il est essentiel de s'engager souvent dans le coffre, afin que les changements soient de taille gérable. Vous ne voulez pas avoir la situation quand vous devez revoir la valeur d'un an du code de quelqu'un.
la source
En ce qui concerne les études, le logiciel Smart Bear vous enverra gratuitement un petit livre, Best Kept Secrets of Peer Code Review . Il contient un certain nombre d'articles sur divers aspects de la révision du code, y compris des études sur le temps qu'ils devraient prendre et leur efficacité.
la source
Dans notre projet, chaque modification importante du système est examinée par le chef d'équipe ou avec un autre développeur qui sera le principal "consommateur" du nouveau module. Nous parlons sur skype et utilisons Rudel dans Emacs (un plugin pour l'édition collaborative, il permet essentiellement à plusieurs utilisateurs d'éditer le même fichier en direct), ou TypeWith.me (Piratepad), ou l'un de nous partage son écran dans skype.
Il est difficile de quantifier cela, car les modifications banales, comme les nouvelles vues, les pages, etc. ne sont pas examinées. Nous examinons les nouveaux modules, les mises à jour majeures et les refactorisations. En ce qui concerne les grands changements, la révision du code peut prendre de 10% à 30% du temps, mais ça vaut le coup.
Je peux dire que la programmation en binôme, lorsque 2 programmeurs modifient le même fichier en même temps, et pas seulement assis sur le même ordinateur, est beaucoup mieux que la pratique habituelle de bureau de s'asseoir derrière l'épaule.
Pour des choses simples comme les conventions de dénomination et les erreurs de portée, nous utilisons nos propres outils automatiques ou open source (jslint, pylint, pyflakes, pep8). Et nous ne limitons pas les commits et les push: nous utilisons Mercurial qui a des branchements et des fusions très faciles (je dois dire, plus faciles que dans Git). Les bogues ne sont pas une question de révision de code.
Nous organisons des réunions d'équipe où les changements et les nouveautés sont annoncés, mais là, tout le monde n'y fait pas vraiment attention. Nous devrions probablement faire un peu plus de révisions de code.
la source
Il n'y a pas de bonne ou de mauvaise réponse à cela. Mais comme beaucoup l'ont suggéré avant moi - si l'examen du code est effectué par un membre externe de l'équipe [méthode hautement recommandée], cela pourrait représenter environ 30% à 35% de l'effort de développement. Mais si cela est fait par un membre de l'équipe de projet interne qui faisait partie de l'équipe de développement [non recommandé], cela peut être effectué dans environ 20% du temps nécessaire à l'effort de développement.
Remarque: je suis tombé sur ce fil lors de la recherche d'autre chose et j'ai pensé que je pourrais être en mesure d'ajouter de la valeur ici. Btw, toute cette estimation d'effort ci-dessus est basée sur mon expérience de travail en tant que responsable de l'engagement sur plusieurs projets. J'espère que cela aide.
la source
Chaque organisation et base de code est différente, il est donc difficile d'obtenir une valeur à l'échelle de l'industrie.
Si vous êtes vraiment sérieux, vous devriez commencer à collecter des métriques. C'est-à-dire faire la révision du code jusqu'à ce qu'il soit fait de manière satisfaisante, y compris la reprise. Commencez à collecter ces informations dans une base de données (LOC, complexité du code, langage de programmation, heure, etc.). Ensuite, collectez également des mesures sur votre taux de défauts pendant les tests. Tant que vous pouvez réduire cet examen de code devrait payer par lui-même. Si le défaut revient du test, collectez des mesures sur le temps passé à corriger les défauts. Créez ces données dans votre organisation, créez des références et vous pouvez les prédire de façon assez précise. Les termes pour rechercher un apprentissage ultérieur sont Coût de la qualité et Coût de la mauvaise qualité.
La seule mise en garde est que cela peut commencer à devenir bureaucratique et dépend de la culture de l'organisation.
la source