C’est quoi une dette technique et comment la gérer

Une dette technique c’est un peu le même concept qu’une carte de crédit.  À toute les fois qu’on ajoute une ligne de code à un logiciel, on augmente la dette d’un montant basé sur la taille et complexité du code ajouté.  Ce qui veut dire, que plus le code est complexe et lourd plus on va devoir payer des intérêts en le supportant.

On peut aussi augmenter notre dette rapidement en faisant un code non-optimal pour atteindre un objectif comme livrer à temps.  L’objectif à atteindre est alors beaucoup plus important que les considérations futures de maintenance.  Dans un monde idéal, ça n’arrive jamais.  Dans la vraie vie, ça arrive tous les jours.

L’expérience de l’équipe de développement a également un impact sur les intérêts payés.  C’est un peu leur cote de crédit.  Plus l’équipe est expérimentée et efficace, plus sa cote est bonne donc les intérêts sont plus faciles à assumer.  À l’inverse, plus l’équipe est inexpérimentée ou manque de connaissances sur le logiciel maintenu, plus les intérêts seront élevés.

Il est possible de réduire la dette d’un logiciel de trois façons:

  • En réduisant la complexité.
  • En réduisant la taille.
  • En abandonnant la maintenance.

Dans les deux premiers cas, on réduit les besoins en maintenance du logiciel donc les intérêts qui seront payés dans le futur.  Le troisième, met la dette technique bien évidemment à 0.  Après-tout, on ne fera plus aucun effort sur le logiciel pour le maintenir donc on arrête de payer.

On peut donc gérer la taille de la dette avec une bonne architecture, un bon code et une technologie solide.  En plus, on peut réduire sa dette en restructurant le code ou en retirant des fonctionnalités.  Est-ce qu’on peut s’acheter un crédit?  Après tout si c’est comme les cartes de crédit, on peut déposer un montant à l’avance et obtenir des intérêts dessus.  On pourrait prévoir les difficultés de maintenances futures et se préparer à l’avance.  Oui, c’est possible mais ce n’est pas une bonne idée

Voici pourquoi :

  • On prévoit des difficultés futures qui peuvent ne pas arriver donc si on se trompe on augmente notre dette avec des choses totalement inutiles.  On fait alors pire que bien.
  • On peut ne pas se tromper et bien se préparer.  On obtient alors des avantages dès le jour 1 mais les gains sont toujours plus bas que les intérêts payés.  Essayez de payer un montant en trop sur une carte de crédit et regardez combien vous recevez d’intérêts.  C’est vraiment pas grand chose et l’argent serait mieux investi ailleurs.

C’est bien beau tout ça, mais si je ne peux par réduire ma dette technique comment je fais pour payer moins d’intérêts?  On le fait en facilitant la maintenance.  Voici plusieurs actions qui peuvent aider :

  • Améliorer les rapports d’erreurs et leur processus de traitement.
  • Automatiser le processus de compilation et de mise en production.
  • Documenter les erreurs et procédures du logiciel.
  • Former les utilisateurs et les gens faisant le support.

La gestion de la dette technique doit être considérée lors de la création et maintenance d’un logiciel complexe.  Cependant, il ne faut pas être obnubilé par elle au point de perdre de vue l’objectif principal qui est de livrer le logiciel.