Taxonomie de la dette technique (2018)
(technology.riotgames.com)Taxonomie de la dette technique
Introduction
- Bill "LtRandolph" Clark est engineering manager de l’équipe Champions de LoL et s’intéresse de près à la dette technique.
- La dette technique est définie comme du code ou des données qui imposent un coût aux développeurs futurs.
- Cet article présente différents types de dette technique rencontrés chez Riot ainsi que le modèle utilisé en interne.
Métriques
Pour évaluer la dette technique, trois axes principaux sont utilisés : l’impact, le coût de correction et la contagiosité.
Impact
- Impact de la dette technique sur les joueurs et les développeurs.
- Bugs, fonctionnalités manquantes, comportements inattendus, etc.
Coût de correction
- Temps et risque nécessaires pour corriger la dette technique.
- Une erreur simple peut être corrigée en quelques minutes, mais un problème profondément enraciné peut prendre des semaines ou des mois.
Contagiosité
- Dans quelle mesure la dette technique peut se propager.
- Influence sur les interactions avec d’autres systèmes, la duplication des données et l’implémentation de nouvelles fonctionnalités.
Types de dette
Dette locale
- Le problème n’apparaît qu’à l’intérieur du système et n’a pas d’impact à l’extérieur.
- Exemple : Cataclysm de Jarvan.
Métriques de Cataclysm
- Impact : 1 / 5
- Coût de correction : 2 / 5
- Contagiosité : 1 / 5
Dette MacGyver
- Cas où deux systèmes incompatibles sont reliés par une solution de fortune.
- Exemple :
std::stringen C++ et la classeAStringde Riot.
Métriques std::string vs AString
- Impact : 2 / 5
- Coût de correction : 3 / 5
- Contagiosité : -2 / 5
Dette de fondation
- Cas où des hypothèses enfouies au plus profond du système affectent l’ensemble de celui-ci.
- Exemple : l’utilisation du langage de scripting lua dans LoL.
Métriques de BlockBuilder Lua
- Impact : 4 / 5
- Coût de correction : 4 / 5
- Contagiosité : 4 / 5
Dette de données
- Cas où beaucoup de contenu s’est empilé sur d’autres types de dette technique, rendant la correction difficile et risquée.
- Exemple : le bug des noms de paramètres dans le langage de scripting BlockBuilder.
Métriques du bug des noms de paramètres
- Impact : 2 / 5
- Coût de correction : 2 / 5
- Contagiosité : 4 / 5
Résumé
- Lorsqu’on évalue la dette technique, il faut prendre en compte l’impact, le coût de correction et la contagiosité.
- La contagiosité indique la probabilité que la dette technique se propage, et l’ignorer peut mener à de gros problèmes.
- La dette technique peut être classée en quatre catégories : dette locale, dette MacGyver, dette de fondation et dette de données.
Résumé de GN⁺
- Cet article aide les développeurs à prendre de meilleures décisions en expliquant les types de dette technique et la manière de les évaluer.
- Il insiste sur la contagiosité de la dette technique et souligne l’importance de résoudre les problèmes tôt.
- Parmi d’autres projets aux fonctionnalités similaires, on peut citer Dota 2 et Overwatch.
1 commentaires
Avis Hacker News
L’interface est l’un des éléments les plus importants d’une conception et doit être examinée avec soin
La dette du fondateur est une dette créée par les fondateurs pour fournir rapidement une bonne technologie
Il est surprenant que cet article ait été écrit par un engineering manager
Une taxonomie de la dette technique est discutée
Excellent article d’un point de vue technique
« Contagion » est utilisé pour expliquer la dette technique
La dette technique est définie comme du code ou des données dont les futurs développeurs devront payer le coût
Je n’appellerais pas la « dette locale » de la dette technique dans un contexte général
J’ai travaillé dans plusieurs startups
Il arrive qu’on assume volontairement de la dette technique pour un gain à court terme