- Dette technique
-
La dette technique est une métaphore du développement logiciel inventée par Ward Cunningham.
Il s'inspire du concept existant de dette dans le contexte du financement des entreprises et l'applique au domaine du développement logiciel.
Sommaire
Explication
Un projet de développement logiciel inclut souvent une conception logicielle (qu'elle soit formalisée ou pas). Cette dernière fait partie de la qualité du projet. Écrire le code source en suivant la conception définie en amont lui permet d'être cohérent et de faciliter la maintenance :
- maintenance corrective : corriger les bug informatiques
- maintenance évolutive : ajouter de nouvelles fonctionnalités au logiciel est facile.
Ainsi, un non-respect de la conception, intentionnel ou non, induit des coûts supplémentaires dans le futur. Ce sont les intérêts. C'est pourquoi l'on parle de dette technique, pour montrer l'analogie avec la dette dans les finances des entreprises. Cela sous entend qu'il vaut mieux rembourser la dette un jour plutôt que de continuer à payer sans cesse des intérêts.
En résumé quand on code au plus vite et de manière non optimale, on contracte une dette technique que l'on rembourse tout au long de la vie du projet sous forme de temps de développement de plus en plus long et de bugs de plus en plus fréquents.
Intentionnalité et durée (court ou long terme)
Une dette technique peut être intentionnelle ou pas.
Une dette technique non intentionnelle est due à des malfaçons : non-respect de la conception, non-respect des règles de codage, etc. C'est une mauvaise dette car il n'y a aucun bénéfice à retirer de cette dette.
Une dette technique peut être contractée de manière intentionnelle. Dans un projet la qualité s'oppose au délai de réalisation. Ainsi, lors de la survenue imminente d'une nouvelle version du logiciel, respecter la conception idéale peut s'opposer et mettre en péril la livraison d'une nouvelle version du logiciel. À ce moment précis, ne pas respecter la conception peut permettre d'atteindre l'objectif prioritaire à court terme (sortir une nouvelle version). C'est une dette intentionnelle car on sacrifie la qualité à long terme pour le bien du projet. Il est alors suggéré de rembourser cette dette immédiatement après que la nouvelle version du logiciel a été livrée pour ne pas qu'elle devienne une dette à long terme. Ainsi on contracte une dette à court terme pour en retirer un bénéfice immédiat.
Voir aussi
- Mesure de la dette technique avec SQALE
Liens externes
- (en) Technical debt par Martin Fowler
- (en) Paying Down Your Technical Debt sur Coding Horror
- (en) Technical Debt par Steve McConnell
Wikimedia Foundation. 2010.