Quand faire la révision du code


15

Nous sommes récemment passés à un processus Scrum et travaillons sur des tâches et des user stories à l'intérieur des sprints. Nous aimerions faire des révisions de code fréquemment pour les rendre moins intimidantes. Nous pensons que les faire au niveau de la user story, mais nous ne savons pas comment brancher notre code pour en tenir compte.

Nous utilisons VS et TFS 2010 et nous sommes une équipe de 6 personnes.

Nous branchons actuellement pour les fonctionnalités mais travaillons sur le passage à la ramification pour Scrum.

Nous n'utilisons actuellement pas d'étagères et nous ne voulons pas vraiment l'implémenter s'il existe d'autres techniques.

Comment recommandez-vous que nous implémentions la révision de code par user story?

Réponses:


3

Cela dépend de la nature des user stories.

Il peut être efficace de créer une branche pour chaque user story, les progrès sur différentes stories sont visibles, ils peuvent être transmis si besoin est, si les stories ne sont pas terminées dans le sprint alors la progression peut rester dans la branche pour le sprint suivant . Les révisions finales peuvent ensuite être effectuées à la fin d'une user story dans la branche use story et fusionnées si le code est conforme aux normes.

Pour fonctionner de la manière dont les histoires doivent être affinées pour éviter les tâches de fusion ingérables à la fin d'un sprint. Les petites histoires permettront une mise à jour régulière de la branche de développement à travers le sprint que les développeurs travaillant sur d'autres histoires d'utilisateurs doivent constamment extraire (VCM de base).

Cela crée des frais généraux de processus devant créer et fusionner constamment des branches qui, dans certains cas, peuvent être résolus avec des scripts d'automatisation, mais l'équipe doit encore être très à l'aise avec le VCS.

À la fin d'un sprint, vous fusionnez votre branche de développement en intégration / production, etc.

J'ai également travaillé dans des équipes où tout le monde travaille sur une branche de développement, à la fin d'une histoire utilisateur, le code est poussé vers cette branche pour examen et test et si quelqu'un pousse quelque chose qui rompt la construction de développement, il doit obtenir l'équipe.


13

Le moyen le plus efficace de réviser le code est de se lever, de trouver quelqu'un et de lui demander de venir discuter du code que vous venez de développer.

N'utilisez pas d'outil à moins que vous ne trouviez personne pour réviser votre code localement.

Vous pouvez éviter complètement les révisions de code en les associant.


Je me demandais quand quelqu'un allait mentionner l'appariement. Entre cela et les tests unitaires, vous obtenez beaucoup d'examen.
JeffO

J'ai lu ceci comme "levez-vous, renvoyez quelqu'un et demandez-lui de venir et de discuter du code que vous venez de développer." Merci d'avoir fait ma journée.
Will Morgan

4

Est-ce que tout le monde dans l'équipe est local? Si c'est le cas, demandez à quelqu'un de venir et de vérifier avant que le code ne soit enregistré. Pas local? Lancez votre programme de partage d'écran préféré et appelez quelqu'un. Personnellement, je le fais souvent. Parfois, je le fais juste pour dire "Hé, regarde ce que j'ai fait!"

Je préfère de beaucoup ce style de revues de code ad hoc au style où quelqu'un se lève et présente son code à l'équipe. Les examens ad hoc peuvent vous donner beaucoup (tous?) Des avantages de l'appariement sans la gêne. De plus, votre «réviseur» est plus susceptible de poser des questions et de suggérer des améliorations dans un cadre informel et individuel.


1

Je crois que l'examen du code n'est pas une partie formelle de SCRUM, mais les révisions sont une tactique indépendante pour atteindre la qualité et améliorer vos projets / votre équipe.

Ainsi, vous utiliseriez SCRUM (ou toute autre méthodologie de développement agile) pour assurer / améliorer la qualité du PROJET et respecter le calendrier. En outre, une bonne tactique consiste à effectuer la révision du produit (pas le code) indépendamment de vos tâches normales de contrôle qualité / test. Si cette activité pouvait se faire devant votre équipe / partenaires / clients / public, ce serait mieux.

Vous devez utiliser le code (ou d'autres révisions spécifiques) principalement pour améliorer votre ÉQUIPE, en attendant des résultats à moyen / long terme. Cela affectera vos PROJETS, mais à long terme en tant que produit de l'amélioration de votre ÉQUIPE.

Donc, pour répondre à votre question, je pense que vous essayez de trop pousser de SCRUM, et vous devriez mieux considérer les révisions uniquement telles quelles.


Scrum ne dit ni ne conseille rien concernant le calendrier. Il s'attend à ce que vous fournissiez régulièrement de la valeur. Il fournit également des moments dans lesquels vous pouvez inspecter et adapter votre processus afin de vous améliorer (mieux ne signifie pas nécessairement plus vite).
Ryan Cromwell

Oui, Scrum ne déclare pas faire un horaire complet dans le cadre de celui-ci. Pourtant, je voulais dire "planification" lorsque je faisais référence au calendrier, la planification signifiant que votre client attend une certaine valeur dans un temps donné, afin qu'il puisse effectuer l'échange entre la valeur en argent v / s (si vous considérez que vous fournissez des services de développement / programmation ).
Ron-Damon

À cet égard, votre client doit avoir un budget à dépenser dans un temps donné (pour vous payer, par exemple) et il peut avoir un horaire à respecter. Je travaille en tant que prestataire de services, c'est pourquoi je ne peux pas laisser ce fait de côté.
Ron-Damon

Mis à part les contrats, les équipes Scrum offrent de la valeur et non des services. Nous développons / programmons comme un moyen de fournir cette valeur.
Ryan Cromwell

Je ne pense pas que vous puissiez séparer les termes "valeur" et "service" ami. Je crois aussi que c'est très hors sujet maintenant.
Ron-Damon

0

N'est-il pas évident de faire des revues de code avant de vérifier votre code?

TFS ne fonctionne pas comme GIT, donc chaque fois que vous archivez du code dans une branche ou le tronc, il est disponible pour tout le monde.

Cela signifie que l'examen doit avoir lieu lors de l'enregistrement afin que les modifications incorrectes ne soient pas propagées à la copie de travail de tous.


Je pense que, en général, les tests unitaires empêcheraient les mauvais changements.
John Saunders

@John Saunders: Considérez les revues de code comme un autre type de test unitaire.
Gilbert Le Blanc

@Gilbert: Je pourrais le faire, mais je n'obtiendrais pas leur avantage pour les tests de régression. Je préfère passer du temps à écrire des tests unitaires plus nombreux et de meilleure qualité.
John Saunders

@John Saunders, @Gilbert Le Blanc Les revues de code sont effectuées par un autre développeur, les tests unitaires sont généralement effectués par le développeur d'origine, la nouvelle perspective peut être vitale.

J'ai eu de la chance avec les tests unitaires (les listes de tests sont convenues à l'avance) et l'analyse de code automatisée, éventuellement combinée avec un outil d'analyse de style comme StyleCop. Mais ensuite, je ne travaille pas souvent avec des développeurs juniors.
John Saunders
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.