La dette technique est un sujet récurrent en développement informatique qui fait peur aux développeurs, et souvent à raison. Voyons ensemble ce qu’est la dette technique, les impacts qu’elle peut avoir sur une application métier et comment l’éviter, voir même aller plus loin et préparer le terrain pour la réduire et la maîtriser.

La dette technique est un concept en informatique pour décrire l’état du code d’une application au travers du temps. Différents points sont à prendre en considération pour juger de la dette technique d’une application, parmi lesquels la qualité du code, sa maintenabilité, les solutions de contournements destinés à répondre rapidement à un besoin mais jamais refactorisés ou améliorés, l’obsolescence des technologies utilisées etc.
La dette technique n’est pas nécessairement visible lors des développements, on s’en rend souvent compte lorsque le projet entre en phase de TMA, lorsque des corrections ou évolutions mineures sont complexes à mettre en œuvre.

On ne peut pas, et c’est bien cela qui fait peur. Par définition, tout développement, chaque ligne de code et chaque mois qui passe contribue à la dette technique générale.
On peut par contre la réduire afin de la rendre supportable pour les développeurs, mais aussi éviter l’explosion des coûts de TMA.
Pour cela il est nécessaire d’inclure un Tech Lead dès le début du processus de réflexion d’un projet. Cela permet d’impliquer dès le début un profil capable de prévoir au mieux toutes les difficultés techniques répondant aux besoins fonctionnels qui pourraient survenir et ne pas devoir trouver de solutions « rapides ou temporaires » dans l’urgence au moment des développements. Ces solutions qui partent d’une bonne intention et dont on se dit qu’on le refera mieux plus tard ne sont presque jamais corrigées car on n’y voit plus l’intérêt en fin de projet ou on les oublie.
Il est également nécessaire de réduire au maximum les dépendances externes et privilégier celles dont on sait qu’elles bénéficient d’un support sur plusieurs années. Le but est d’éviter de découvrir durant la phase de TMA du projet, qu’une dépendance ayant un bug ou une faille de sécurité n’est plus maintenue. Cela implique son remplacement ou sa réécriture, et donc des coûts supplémentaires. En adoptant une approche structurée comme celle proposée par Access it avec son socle technique et sa bibliothèque de composants, il est possible de limiter ces risques en s’appuyant sur des technologies pérennes et éprouvées.
✅ Réduction des coûts de TMA 💰
Une dette technique maîtrisée peut être un peu plus coûteuse lors du développement, mais permet de réduire le nombre de bugs et simplifier les développements, ce qui entraîne la réduction des coûts liés à la TMA.
✅ Facilités de mises à jour 🔄
La maîtrise de la dette technique permet de simplifier les mises à jour logicielles des composants de votre application métier, et ainsi de pouvoir les prévoir régulièrement. Cela évite des migrations longues et compliquées et évite d’introduire de nouveaux bugs.
✅ Sécurité applicative 🔐
L’importance de régulièrement mettre à jour son application métier peut être sous-estimée, mais elle est essentielle afin de toujours bénéficier des derniers correctifs de sécurité. Chaque jour de nouvelles failles sont découvertes et corrigées, il serait dommage qu’un hacker accède à des données sensibles, ou pire, installe un ransomware uniquement car on n’a pas souhaité mettre à jour son application.
✅ Gains de performance 🚀
Le dernier point est l‘aspect des performances sur lequel Access it met un point d’honneur. Les mises à jour apportent aussi leur lot d’améliorations de performances, qui peuvent mener à une réduction des coûts d’infrastructure.
La dette technique est inévitable sur un projet, mais correctement maîtrisée elle peut être réduite durant tout le cycle de vie du projet.
Au plus la dette est faible, au moins la maintenance est coûteuse et au plus l’application métier concernée est sécurisée et performante. C’est une composante de l’application qu’on ne peut pas éviter et la maîtriser n’apporte que des avantages.