Table des matières:
Définition - Que signifie la dette technique?
La dette technique est un concept de programmation qui reflète le travail de développement supplémentaire qui se produit lorsque du code facile à implémenter à court terme est utilisé au lieu d'appliquer la meilleure solution globale.
La dette technique est généralement associée à une programmation extrême, en particulier dans le contexte du refactoring. Autrement dit, cela implique que la restructuration du code existant (refactoring) est nécessaire dans le cadre du processus de développement. Selon cette ligne de pensée, le refactoring n'est pas seulement le résultat d'un code mal écrit, mais est également effectué sur la base d'une compréhension évolutive d'un problème et de la meilleure façon de résoudre ce problème.
La dette technique peut également être appelée dette de conception.
Techopedia explique la dette technique
Le terme a été inventé par Ward Cunningham, un programmeur également connu pour avoir développé le premier wiki. La dette technique est une métaphore qui assimile le développement de logiciels à la dette financière. Imaginez que vous ayez un projet qui a deux options potentielles. L'une est rapide et facile mais devra être modifiée à l'avenir. L'autre a une meilleure conception, mais sa mise en œuvre prendra plus de temps. En cours de développement, publier du code comme une approche rapide et facile est comme contracter une dette - il s'accompagne d'une obligation d'intérêt qui, pour la dette technique, prend la forme d'un travail supplémentaire à l'avenir. Prendre le temps de refactoriser équivaut à rembourser le capital. Bien que cela prenne du temps à court terme, cela diminue également les paiements d'intérêts futurs.
Ward Cunningham décrit ce concept en 1992 comme suit:
"L'expédition du code pour la première fois, c'est comme s'endetter. Une petite dette accélère le développement tant qu'elle est remboursée rapidement avec une réécriture. Les objets rendent le coût de cette transaction tolérable. Le danger survient lorsque la dette n'est pas remboursée. Chaque minute dépensé sur un code pas tout à fait correct compte comme intérêt sur cette dette. Des organisations d'ingénieurs entières peuvent être arrêtées sous le poids de la dette d'une implémentation non consolidée, orientée objet ou autre. "
Le concept ne signifie pas que la dette ne devrait jamais être contractée. Tout comme l'effet de levier peut aider une entreprise lorsqu'elle est utilisée correctement, une solution rapide peut signifier un délai de commercialisation plus rapide dans le développement de logiciels. De plus, la dette technique n'est pas seulement un mauvais code. Un mauvais code est un mauvais code et une dette technique peut résulter du travail de bons programmeurs sous des contraintes de projet irréalistes.