Blog Arolla

Réduisons la dette!

La dette dans tous ses états

On a beaucoup parlé des dettes souveraines au cours de l’année écoulée, et on devrait encore en entendre parler en 2012… Mais au delà des considérations sur la réduction de la dette souveraine des états, ne peut-on pas s’interroger sur la gestion de dettes en général ?

A un niveau individuel, quel individu sain d’esprit souhaiterait voir son endettement augmenter mois après mois ? Personnellement je suis en plein crédit relais et ce n’est pas une perspective qui me réjouit ! Un ménage peut consacrer une certaine partie de ses revenus au paiement d’intérêts sur ses crédits, mais un échéancier est toujours respecté, de manière à ce que le capital restant dû diminue avec le temps.

Que penseriez vous d’un couple d’amis, qui vous expliqueraient avoir recours au crédit revolving, et rembourser chacun de leurs crédits en en souscrivant d’autres, pour des montants croissants et à des taux de plus en plus élevés ? Ne leur conseilleriez vous pas de réduire cette dette ?

Feriez-vous confiance à un fournisseur, tout en sachant qu’il est déficitaire et que 30% de son chiffre d’affaire sert uniquement à couvrir les intérêts de ses emprunts?

Enfin, confieriez-vous la réalisation et la gestion de vos applications métiers critiques à une équipe qui accumule au quotidien de la dette technologique ?

Si je développe cette analogie, ça n’est évidemment pas pour parler de politique, mais bien d’informatique.

La dette technologique et son poids sur la production logicielle

Le concept de dette technologie englobe l’ensemble de la “non-qualité” introduite dans les projets informatiques au cours de leur vie. L’analogie de la dette est très pertinente, car le principe est exactement le même : échanger une satisfaction immédiate contre un remboursement futur, et l’accumulation d’un coût supplémentaire que représentent les intérêts.

La “satisfaction immédiate” peut sembler insignifiante sur le moment. Il peut effectivement s’agir de procrastination délibérée (je gèrerai cette erreur plus tard), mais également d’un simple oubli (tiens ! je n’avais pas externalisé ce libellé dans un fichier de ressources ?).

Une chose est certaine : le coût futur de correction des problèmes introduits dans le code à un instant donné ne va pas diminuer au fil du temps.

Lorsque, à la veille d’intervenir sur un projet existant, on est confronté à des réticences, et qu'on anticipe des difficultés telles que l’introduction de régressions et la découverte de nouveaux bugs, c’est le signe que la dette technologique de ce projet est trop élevée. Et plus la dette s’accumule, plus son poids est important et plus il est difficile de s’en débarrasser…

Les manifestations de la dette technologique

Si la mise en place d’évolutions qui semblent “mineures” d’un point de vue fonctionnel vous prend des semaines…

Si au fur et à mesure du développement, vous rencontrez des “os” et devez revoir continuellement vos estimations à la hausse…

Si les développeurs de l’équipe baissent la tête lorsqu’on demande si quelqu’un veut bien prendre en charge une évolution (même les plus motivés)…

Vous êtes en présence de dette technologique !

Si le nombre de problèmes rencontrés au quotidien par les développeurs augmente avec le temps, le sentiment leur vient d’être sur “la pente descendante”.

Peut-on réduire la dette ?

Quelle bonne question ! Faut-il mettre en place un plan d’austérité sur toute votre équipe jusqu’à l’élimination totale de la dette ? Pouvez-vous taxer à 75% les projets dont le budget dépasse le million d’euros ?

Oui, il est tout à fait possible de réduire la dette. Cependant cette réduction représente une charge de travail supplémentaire.

Voulez-vous faire cet investissement ?

L’article de Steve McConnel présentant une classification des différents types de dettes peut surement vous aider à prendre une décision.

Je pense que l’important est de connaitre son taux d’endettement, et que la stratégie de gestion de celle-ci ne soit pas laissée au hasard.

L’agilité à la rescousse

L’un des principes fondateurs de l’agilité consiste à identifier et éliminer les difficultés au fur et à mesure qu’elle surviennent. Un projet agile voit comme tout projet une part de dette technologique s’accumuler, mais dès que celle-ci génère une gêne, la réduction de cette dette pourra devenir un point à ajouter au backlog.

Alors soyez agiles, et soyez aussi impliqués que les PIGs ! Engagez-vous dans la gestion de votre dette, et ne vous laissez pas déborder !

Peut-être que la meilleure façon de lutter est encore de s’approprier le code, et de le transformer en un motif de fierté et de satisfaction (#craftsmanship) !

@pirrmann

Références (en anglais) :

Jeff Atwood :
http://www.codinghorror.com/blog/2009/02/paying-down-your-technical-debt.html

Ward Cunningham :
http://www.c2.com/cgi/wiki?TechnicalDebt
http://www.c2.com/cgi/wiki?WardExplainsDebtMetaphor

Steve McConnel :
http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx

Site Web | Plus de publications

Contributeur enthousiaste

2 comments for “Réduisons la dette!

  1. 28 mars 2012 at 16 h 01 min

    Pierre, en effet on peut aussi accepter la dette de façon délibérée, il ne faut juste pas la laisser au hasard.

    Pour réduire la dette, il y a débat de mettre cela dans le sprint backlog, de mon coté je préfère l’intégrer aux fonctionnalités qui ont besoin de cette réduction de dette comme pré-requis avant d’aller plus loin.

  2. Pingback: Interview de Pierre Irrmann | Arolla