La Dette Technique, qu'est-ce que c'est ?
Dette Technique #1
[legacy, tech-debt]
Le code qui tourne à l’instant t sur nos machines est la cristallisation de conversations entre ces 3 acteurs : Métier, Technologie, Management.
Dans une situation de code legacy, le code tourne toujours, mais la conversation n’a plus lieu.
Dans une situation où la conversation a toujours lieu mais est entravée par des barrières de communication, nous disons du code qui tourne sur nos machines qu’il est “endetté techniquement”.
Dette Technique ?
La Dette Technique est une métaphore créée par Ward Cunningham qui permet de penser le traitement de ce déchet (“cruft”), en le voyant comme une dette financière. L’effort supplémentaire requis pour ajouter des fonctionnalités représente l’intérêt payé sur la dette.
(Martin Fowler)
L’explication que je donnais à mon chef – et c’était du logiciel financier – était une analogie que j’appelais “la métaphore de la dette”. Et qui disait que si nous échouons à aligner notre programme avec ce que nous comprenons comme la façon adéquate de penser nos objets financiers, alors nous sommes condamnés à buter sans arrêt sur ces désaccords, ce qui nous ralentit et qui équivaut à payer des intérêts sur une dette.
(Ward Cunningham)
De simple métaphore élaborée à des fins d’illustration, la dette technique est devenue une métrique. Elle se mesure, se calcule, et on peut ainsi la “manager” :
Technical Debt (sqale_index): Effort to fix all Code Smells. The measure is stored in minutes in the database. An 8-hour day is assumed when values are shown in days.
Technical Debt Ratio (sqale_debt_ratio): Ratio between the cost to develop the software and the cost to fix it.
(Manuel Sonar)
Il s’agit en fait d’une pseudo-métrique. Il est facile de voir qu’un tel “effort” est impossible à calculer dans l’absolu (même en “minutes”), et de plus il n’est pas question d’argent.
Dans l’entreprise qui m’emploie, si je détériore un actif, je vais tôt ou tard en assumer les conséquences. À ma connaissance aucun développeur dans aucune entreprise n’a jamais eu de retenue sur salaire du fait d’avoir un code endetté. La création de dette technique ne semble pas préjudiciable aux résultats de l’entreprise. Au contraire, elle est plutôt encouragée.
La dette technique, est-ce vraiment technique d’ailleurs ? Dans mon expérience, lorsque le code est “endetté”, c’est plutôt le résultat de décisions bien en amont de la technique.
Pour en savoir plus sur le sujet, rendez vous demain !