Le temps passé à refactoriser une base de code en vaut-il la peine à long terme, en termes de productivité des développeurs?
Il me semble assez clair que modifier un système propre et bien conçu est beaucoup plus simple et plus rapide que de travailler sur un système mal conçu, mais je recherche des preuves solides. Existe-t-il des études sur ce sujet?
productivity
complexity
Benny Hallett
la source
la source
Réponses:
Empiriquement, les logiciels avec des métriques de complexité plus élevée, comme la complexité cyclomatique, sont plus difficiles à maintenir. Il existe des recherches à l'appui de cela remontant aux années 1970 ("Program Complexity and Programmer Productivity", ET Chen) . Des travaux suggèrent également que la densité de complexité, qui est la complexité cyclomatique sur la taille du système, se rapporte également au temps de maintenance ("Densité de complexité cyclomatique et productivité de la maintenance logicielle", GK Gill, CF Kemerer) , qui est également disponible gratuitement ici . Malheureusement, un abonnement IEEE est nécessaire pour le document de Chen, mais vous pouvez essayer de le rechercher sur d'autres sources si vous êtes intéressé.
Du point de vue de la qualité, il vaut souvent la peine de passer du temps à refactoriser, en supposant que vous disposez d'un cadre de test pour empêcher l'introduction de nouveaux défauts. Cela vous permettra d'implémenter plus facilement de nouvelles fonctionnalités sur votre système, d'ajouter des tests supplémentaires et de former de nouveaux développeurs au travail.
En fin de compte, cependant, la pression est de fournir de nouvelles fonctionnalités et une valeur ajoutée. Vous devez équilibrer le refactoring avec la mise en œuvre de nouvelles fonctionnalités et la réparation des défauts.
la source
Alors arrêtez de perdre votre temps ici.
Trouvez du code dont la maintenance est coûteuse. C'est facile. Regardez les tickets d'incident de votre organisation.
Trouvez du code bon marché à maintenir. Recherchez le code qui s'exécute fréquemment, mais qui a peu ou pas de tickets d'incident.
Mesurez la complexité avec l'un des outils de complexité largement disponibles.
Imprégnez-vous des preuves.
Vous avez maintenant fourni des chiffres pour confirmer l'évidence.
la source