Énigme: au cours du travail sur une nouvelle fonctionnalité ou de la correction d'un défaut, vous trouvez un problème hérité dans le code. Que devrais tu faire? Corrigez-le et risquez de modifier le comportement du code. Il a fonctionné jusqu'à présent par un coup de chance, ou bien le défaut n'a pas été détecté ou mérite le temps de quiconque de le signaler. Devriez-vous le laisser seul et permettre au problème de rendre le code plus difficile à travailler plus tard? La résolution du problème ne fera qu'ajouter au temps de votre tâche d'origine et vous forcera à effectuer un test de régression. Peu apprécieront le travail. Le corriger, cependant, semble en quelque sorte juste. Le code avec moins de problèmes est plus facile à refactoriser et à développer.
Je me suis retrouvé dans cette situation à maintes reprises alors que nous travaillons à moderniser une application Web. Je ne peux pas dire si je suis obsessionnel ou honorable quand je vais travailler de manière tangente sur ces vieux bugs. Comment gérez-vous ces situations?
Merci, Corey
Réponses:
Je travaille dans une très petite équipe, donc cela dépend en quelque sorte du changement:
Si c'est une petite correction de bogue évidente, j'y vais définitivement. Je lance également des commentaires supplémentaires si je dois travailler avec le code de quelqu'un d'autre et d'autres petites améliorations qui relèvent de la "règle de boyscout" pour moi.
Si le code est tellement imbriqué que vous devez vous demander "Est-ce que changer cela cassera quelque chose et nécessitera des tests" alors non, vous ne devriez pas le changer. Apportez-le dans votre système de suivi des bogues si cela vous inquiète.
C'est d'ailleurs pour cette raison que j'essaie de coder des méthodes plus petites avec des signatures de type plus évidentes également. Si vous savez qu'il n'y a pas d'effets secondaires et pouvez faire correspondre les tenants et les aboutissants, vous pouvez corriger, réorganiser ou modifier tout code intérieur sans risque.
Mais ne pensez pas que le manque d'appréciation est une raison pour ne pas corriger les bugs que vous trouvez ou pour améliorer la base de code pour une raison quelconque. Si rien d'autre, vous êtes bon pour l'avenir, vous qui serez assurément de retour pour réparer autre chose.
EDIT: Vous devez également surveiller votre temps sur le projet. Évidemment, dans des délais serrés, vous devez vous concentrer sur la réalisation du travail principal, mais si vous êtes juste sous une «charge normale», je pense qu'un petit nettoyage ici et là rend tout le monde plus heureux à long terme.
la source
Comme toujours, cela dépend.
Fondamentalement, vous faites une évaluation des risques: quel est le risque de changer par rapport à ne pas changer. Si vous n'avez pas l'impression d'avoir suffisamment d'expérience (avec la programmation en général, ou le système en particulier), demandez à quelqu'un d'autre dans l'équipe.
la source
Le programmeur pragmatique appelle ces «fenêtres brisées».
Si vous ne corrigez pas les fenêtres cassées, elles ont tendance à créer une spirale descendante de la qualité du code. Et plus ils sont nombreux, plus il est difficile de les réparer, et il est donc moins probable qu'ils soient réparés.
Que ce soit pour les réparer maintenant ou plus tard, c'est à vous de juger. Est-ce une solution simple? Êtes-vous sûr que le code fait ce que vous pensez qu'il est? Est-il susceptible de vous distraire de votre tâche actuelle? Êtes-vous soumis à des contraintes de temps? Est-il susceptible d'introduire plus de bugs?
À tout le moins, marquez l'article dans votre système de suivi et assurez-vous qu'il soit corrigé plus tard. Il est important de le marquer dans le système de suivi même si vous décidez de le corriger maintenant, de vous assurer qu'il est également testé et de documenter les modifications.
la source
S'il s'agit d'un bogue évident, tel que quelque chose qui va violer la sécurité, corrompre des données ou déclencher une exception qui s'affiche pour l'utilisateur, corrigez-le. Sinon, demandez à quelqu'un qui connaît mieux la base de code que vous.
la source
Cela dépend, si c'est un petit bug où vous êtes certain que votre correctif a un faible impact, alors personnellement, je le corrigerais dans le cadre des autres travaux, puis je le ferais savoir au PM.
Si cela présente un risque pour le client, les utilisateurs ou l'entreprise, discutez-en avec le chef de projet et discutez d'un cours à suivre. Il leur incombe d'évaluer le risque, alors portez-le à leur attention et justifiez-le. Honorez ensuite leur décision.
la source
Nos testeurs détestent ça. À moins qu'il ne soit très trivial, nous l'enregistrons dans la base de données de bogues, puis nous l'allouons à une version et écrivons des tests de régression. Si les développeurs vont simplement apporter des modifications qui ne sont pas dans les délais, comment pouvez-vous jamais respecter une date limite?
la source
J'ai fait partie d'équipes où des défauts non critiques ou des violations de normes sont soumis en tant que défaut "Code faible". Je dirais que la personne qui trouve un défaut critique a la responsabilité de lancer une sorte de drapeau
la source
cela dépend du bug. la principale préoccupation est l'introduction de nouveaux bugs. Mieux vaut traiter un problème connu plutôt qu'un inconnu. Si c'est simple, disons un changement de texte, ou une simple erreur logique, nous le réparons, sinon laissez-le tranquille.
Une chose à noter, tho, nous sommes une petite boutique de 4 développeurs et un stagiaire et le bug que je corrige est probablement le bug que j'ai créé.
la source
Si le code est manifestement erroné, le correctif est assez simple et vous pensez que le risque d'avoir un impact sur les utilisateurs est faible, alors foncez. Cela revient au jugement professionnel.
Vous devez cependant vous rappeler que si vous l'avez trouvé, il est probable que les utilisateurs ne l'ont pas fait, sinon ils l'auraient signalé. Plutôt que de passer du temps à résoudre un problème qui pourrait ne jamais être rencontré par un utilisateur, vous feriez mieux de passer ce temps à résoudre les problèmes qui causent des problèmes à vos utilisateurs maintenant.
la source
Bien documenter d'abord les observations et décider de les corriger plus tard.
Ayez une discussion formelle (par exemple, lors de la réunion ordinaire) ou informelle (par exemple, pendant le déjeuner) avec vos collègues, et apportez les modifications après avoir acquis plus de confiance dans le comportement des codes que vous allez corriger.
Bien que cela vous semble un bug / défaut, il peut s'agir d'une "fonctionnalité" cette fois. Il pourrait s'agir d'une solution mal implémentée pour contourner certains cas de coin à la dernière minute de la version précédente, et votre «correctif propre» pourrait raviver certains problèmes précédemment résolus.
la source
Je vais inverser la tendance ici. À moins que vous ne soyez au tout début de la phase de développement du prototype, vous ne devez jamais le réparer immédiatement, vous devez déposer un rapport de bogue. Cela présente plusieurs avantages:
la source