News - Clients

Réduire sa dette technique : Les outils

28.01.2016



La dette technique est ce fléau invisible et insidieux des projets de développement itératif. Quelles techniques et quels outils avons-nous pour l’identifier, la mesurer et la réduire ?


Dans notre précédent article, nous avons passé en revue un certain nombre de méthodes et pratiques pour identifier, comprendre et maîtrise la dette technique.

Les outils de couverture de code et d’analyse statique de code vont permettre d’identifier les codes impliqués dans la dette technique. On peut quantifier cette dette, en évaluant à la main l’effort à consentir pour corriger le défaut, ou en s’aidant d’outils de mesure de la qualité. Il existe également des outils dédiés à l’identification de la dette technique.

Un plan d’action peut alors être lancé. Il consiste le plus souvent à effectuer un refactoring, à réarranger le code de manière propre et maintenable. C’est sans doute la manière la plus efficace d’éliminer la dette technique de ce code.
L’intégration et l’exécution automatique de test unitaires complets couvrant tout le code permettront au final d’assurer que le code est “terminé” et prêt à être livré au client.

Dans ce processus, les outils vont être d’une aide précieuse : analyse statique du code, mesure de la qualité du code, analyse de la couverture du code, mesure de la dette technique, voire extraction d’algorithme et refactoring automatisé du code… Le choix et la richesse fonctionnelle des outils est impressionnante. 

La méthode SQALE

Dans ce foisonnement d’outils, comment peut-on les comparer ? Il existe bien la norme ISO/CEI 9126 qui définit un langage commun pour modéliser les qualités d’un logiciel. Mais elle ne prend pas en compte le concept de la dette technique. Pour cela, certains éditeurs ont adopté SQALE (Software Quality Assessment based on Lifecycle Expectations), une méthode d’évaluation du code source reposant sur le concept de dette technique, sous licence Creative Commons.

La méthode SQALE a été développée pour palier à un besoin générique et permanent : comment évaluer le code source d’une application. Le code livré est-il de qualité ? Est-il évolutif, maintenable, portable, réutilisable ? Quelle est la dette technique accumulée par le projet ? Par où commencer le remboursement cette dette ? La norme ISO/CEI 9126 ne suffit pas, il faut une méthode objective, précise, reproductible, indépendante des langages et des outils d’analyse.

 

[Source Slideshare : The SQALE method: Meaningful insights into your Technical Debt]

Ainsi est née la méthode SQALE en 2010 initiée par la société française Inspearit . On y trouve notamment quatre indicateurs dont la pyramide SQUALE et la Debt Map SQALE qui servent à établir des stratégies de remboursement de la dette technique. 

Les outils de couverture de code

Les outils de couverture de code (code coverage) permettent de détecter du code non couvert par les tests, et donc potentiellement porteur de dette technique. 

Les outils d’analyse statique de code

Les outils d’analyse statique de code mettent en évidence des erreurs de programmation ou de conception, des implémentations qui ne respectent pas les règles de programmation, du code dupliqué ou trop complexe, etc. Les résultats sont souvent présentés dans des tableaux de bord synthétiques. 

Les outils d’analyse d’application

Dans cette catégorie, les outils vont un peu plus loin que l’analyse statique de code. Ils analysent également les applications d’un projet voir toute l’architecture applicative du système d’information. Ils sont capables alors de dresser une cartographie des applications ou du SI, de naviguer entre les plateformes et les langages.

Certains vont même jusqu’à extraire les algorithmes du code source et à refactorer l’algorithme dans un autre langage plus moderne, éliminant par là même la dette technique du code.

Les outils de test et d’analyse dynamique

Enfin on retrouve une série d’outils divers de testing : automatisation de tests, profiler, test de performance, analyse de l’exécution….

Les outils pour identifier la dette technique

On trouvera un certain nombre d’outils dédiés à la dette technique que l’on peut classer selon le type de dette détectée : implémentation, architecture, test, design.

 

Les outils de visualisation et de gestion de la dette technique


Outre l’identification de la dette, cette dernière catégorie d’outils permet de visualiser la cartographie des applications et la dette technique, ainsi que gérer cette dette technique :

La synthèse

Pour résumer, voici une synthèse des principaux outils gérant la dette technique au niveau du projet et au-delà, avec leurs principales caractéristiques :


 

Et vous, quelles méthodes et quels outils utilisez-vous ?
 

Aller plus loin

Cette liste n’est bien sûr pas exhaustive. On pourra consulter par exemple :

© 2014 Codecase, all right reserved
Credits - Legal notices

X

Let's meet !