Ressource

Origine du concept

C’est en 1992 que le concept apparaît avec Ward Cunningham

Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite… The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation, object-oriented or otherwise.

3 types de dettes techniques

L’industrie a identifié 3 types de dettes techniques :

  • naive technical debt : cette dette est créée quand les bonnes pratiques ne sont pas ou peu respectĂ©e
  • unavoidable technical debt : c’est une dette technique qui Ă©tait imprĂ©visible et inĂ©vitable; par exemple un tier modifie son API et nous ne mettons pas Ă  jour notre système, nous ne pouvions pas ĂŞtre au courant de la modification en amont
  • strategic technical debt : quand volontairement nous crĂ©ons de la dette pour achever un objectif Ă  court terme le plus rapide possible

Tout le monde connaît la conséquence. En baissant ou en ignorant un certain standard de qualité nous affectons directement le coût de changement

alt text

Quelles conséquences ?

  • Augmentation du Lead Time : afin de rester compĂ©titives les entreprises doivent rĂ©duire le Lead Time au maximum, mais avec une accumulation de la dette technique il devient impossible d’avoir un Lead Time constant
  • Augmentation du coĂ»t de dĂ©veloppement et de support : une fonctionnalitĂ© qui pourrait ĂŞtre finalisĂ©e avec un petit budget aujourd’hui coĂ»te chère et son implĂ©mentation peut se voir annulĂ©e. Par consĂ©quent, notre produit s’adapte moins dans l’environnement oĂą il Ă©volue
  • Non prĂ©dictible : un des objectifs d’Agile est de rĂ©duire l’incertitude. Mais lorsque la dette est trop Ă©levĂ© les estimations (coĂ»t et dĂ©lais) deviennent compliquĂ©es Ă  chiffrer ou sont complètement fausse, nous faisant perdre la confiance des parties prenantes.
  • Frustration : l’accumulation de ces petits problèmes rend le travail sur le produit pĂ©nible (dette de motivation). L’ensemble des acteurs de la chaĂ®ne deviennent frustrĂ©s.

Comment manager la dette technique ?

By analogy, continuously accruing technical debt is equivalent to continuously borrowing money against our house. At some point we just need to stop and say, “No more!” because the consequences become too severe (Essential Scrum p149)

manage technical debt

La rendre visible

La dette technique doit être visible à la fois pour les personnes gérantes de la partie “business” et également ceux responsables de la partie “technique” (aka Dev).

  • Dans de nombreuse entreprise le “business” n’a pas connaissance de cette dette technique ou n’en mesure pas les impacts. L’objectif est de la rendre visible (chiffre), par exemple en l’incluant dans le chiffrage. Un autre façon est de traquer la vĂ©locitĂ© et si au fil si elle diminue alors cela peut signifier au augmentation de la dette technique (et du temps/coĂ»t de dĂ©veloppement).
  • Ensuite, pour la rendre visible au “technique” on peut par exemple positionner des User Stories dans le Product Backlog