Nous avons des champs «priorité» et «gravité» dans notre système de suivi des bogues. Nous définissons la gravité comme «comment cela affecte l'utilisateur» et la priorité comme «comment cela affecte le produit».
Ma question est de savoir comment classer une tâche "d'amélioration du code" en termes de gravité et de priorité. Supposons que l'amélioration ne change aucun comportement mais en fasse un "meilleur code". Nous prévoyons une amélioration globale de la maintenance à long terme, mais il est difficile à quantifier.
Lorsque nous utilisons nos définitions pour la priorité et la gravité, une amélioration du code obtient les valeurs les plus faibles pour les deux, sauf si vous introduisez des avantages à long terme difficiles à prévoir dans l'image. Par conséquent, cela implique que l'amélioration du code est une tâche futile et ne doit jamais être tentée.
Cependant, je pense qu'il est crucial d'améliorer et de refactoriser constamment le code, car:
- Le développement logiciel est en soi un processus d'apprentissage continu et sans améliorer le code, vous ne pouvez pas vous améliorer.
- Une équipe doit être fière de son code.
- La maintenance future prendra moins de temps et à long terme, les économies seront importantes.
Ou pensez-vous que de telles tâches ne devraient jamais être créées et de telles améliorations effectuées uniquement "à la demande", "lorsqu'elles sont associées à un bogue"? Même s'il est associé à un bogue, ne serait-ce pas un point de discussion sur une révision de code, par exemple "pourquoi avez-vous fait ce changement radical de structure?".