Dette technique

La dette technique est une thématique fréquemment évoquée mais au final peu connue.

Revenons sur l’histoire de ce concept.

C’est à Ward Cunningham que nous devons la paternité de ce concept dans un papier nommé “The WyCash Portfolio Management System”.

Although immature code may work fine and be completely acceptable to the customer, excess quantities will make a program unmasterable… finally an inflexible product… A little debt speeds development so long as it is paid back promptly with a rewrite. … The danger occurs when the debt is not repaid.

La dette technique est donc le coût nécessaire à la résorption des problèmes structurels au sein d’un logiciel.

Tous les problèmes structurels n’ont évidemment pas la même valeur, ils doivent être classés par degré d’importance et priorisés.

Ces défauts peuvent être de différentes natures :

– code smells

– sécurité

– scalabilité

– maintenabilité

De nombreux papiers ont été publiés afin de décrire et classifier les smells. On peut citer par exemple Lipper and Broock, Garcia et al.

Martin Fowler a également décrit les smells dans son livre Refactoring.

Certains s’attachent à fournir une liste exhaustive tandis que d’autres une vision plus restrictive, se concentrant sur les smells les plus majeurs.

Des distinctions doivent en effet être faites entre les smells afin de traiter celles qui mettent en péril l’application en priorité.

De nombreux outils d’analyses sont disponibles afin de détecter les smells, en voici quelques uns :

– SonarQube

– AI Reviewer

– Arcane

– Designite

A partir de ces outils et d’autres informations il est possible d’estimer la dette technique de son application et de la traiter de façon cohérente.

La dette technique est en effet un enjeu central pour la plupart des sociétés.

Une étude réalisée par le CAST Research Labs sur une base de 1400 applications aux Etats-Unis contenant un total de 550 millions de ligne de code donne un bon aperçu du coût de la dette technique.

Plus d’1 million de dollars par application, c’est le coût moyen estimé de la dette technique contenu dans des applications de taille moyenne (300 000 lignes de code).

Le coût de dette technique par ligne de code est en effet en moyenne de 3.61$ mais varie suivant les langages et est par exemple de 5.45$ pour les applications Java.

Aux Etats-Unis, la dette technique atteint la somme de 2 trillions de dollars en 2019, elle a doublé en quatre ans et cette dette technique ne représente qu’une petite part dans les coûts liés à la mauvaise qualité logicielle.

Nos solutions d’industrialisation ont pour objectif de vous aider à contenir et réduire cette dette technique.