Qu’est ce que la dette technique ?
Pour expliquer cette notion je vous propose de prendre l’image d’une maison neuve dont vous venez de faire l’acquisition. Cette maison toute neuve est fonctionnelle, tout semble impeccable à l’intérieur et à l’extérieur. Pourtant vous savez que si vous ne l’entretenez pas régulièrement (tuyauterie, électricité, meuble, électroménager, ravalement…) elle va se détériorer jusqu’à ne plus être présentable ni vivable dans 30 ans. Et je vous parle d’une maison bien conçue sans vice caché !
Dans le monde logiciel c’est exactement la même chose… mais en accéléré x 10 ! La « dette technique » traduit un principe d’obsolescence inévitable du logiciel qui survient avec le temps et qui nécessite d’être traité pour maintenir le logiciel viable.
Un logiciel mal conçu dès le départ démarre avec une dette technique importante qui ne fera que s’empirer. Il peut s’agir d’une malfaçon non intentionnelle (bug non identifié lors des tests, ou mauvais respect des normes et bonnes pratiques par manque d’expérience des développeurs) ou d’une démarche intentionnelle de non respect des meilleurs pratiques afin de respecter des contraintes de budget et de délais du projet. Il convient dans tous les cas de provisionner du temps et donc du budget pour « payer » cette dette et garantir la pérennité du logiciel.
De l’autre côté, un produit logiciel de qualité est un produit bien pensé, conçu pour durer en respectant les bonnes pratiques de conception et de développement pour assurer performance, sécurité et « longévité » (ou plutôt « maintenabilité » dans notre jargon). Nous pourrions penser qu’un tel produit, bien testé avant livraison, qui est opérationnel à sa mise en exploitation, devrait tout le temps fonctionner par la suite si aucune modification ne lui a été apportée.
Cela aurait pu être vrai il y a 30 ans (et encore que…) lorsque les logiciels étaient isolés de tout autre système. Mais aujourd’hui avec l’essor d’Internet qui a chamboulé les pratiques de développement logiciel il devient impossible d’éviter la dette technique.
Quelles peuvent être les causes de la dégradation d’un « bon » logiciel alors que celui-ci n’a semble-t-il subit aucune modification depuis sa mise en exploitation ?
Un produit logiciel (site web vitrine, e-commerce, intranet, application web ou mobile, système d’information complet) comme une maison est un assemblage de « matériaux » qui aujourd’hui sont rarement fabriqués par vos développeurs. Ils proviennent souvent de la communauté open source, à savoir de personnes qui contribuent et mettent à disposition gracieusement des boîtes à outils ou briques logiciels pour accélérer vos développements.
L’avantage est que vos développeurs gagnent un temps important dans la réalisation de votre logiciel. L’inconvénient est que votre logiciel devient dépendant d’éléments techniques dont vous n’avez plus la maîtrise. Ces « dépendances » évoluent indépendamment de votre logiciel pour apporter de nouvelles fonctionnalités et surtout pour garantir plus de sécurité. En effet les codes sources étant ouverts, il est plus simple pour les pirates du monde entier de chercher et trouver les failles sécuritaires.
L’application de ces mises à jour permet de s’assurer d’un meilleur niveau de sécurité et de profiter des dernières fonctionnalités techniques et optimisations en terme de performance, mais cela n’est pas sans conséquence. En effet, une mise à jour peut générer des dysfonctionnements que nous appelons dans notre jargon des « régressions ». Il faudra donc investir du temps plus ou moins important en fonction de la profondeur des mises à jour pour corriger ces dysfonctionnements et s’assurer que le système est à nouveau totalement opérationnel.
Ca a l’air compliqué et coûteux, on peut laisser faire ? Est-on obligé de traiter la dette technique ?
Ne pas appliquer ces mises à jour a peu de conséquences à court terme (sauf en cas de mise à jour sécuritaire importante). Votre application sera toujours fonctionnelle. Ne pouvant percevoir immédiatement la valeur ajoutée de cet investissement, il est souvent peu motivant d’investir du temps et du budget.
Néanmoins ne pas appliquer ces mises à jour revient à rester bloqué techniquement dans le temps. Nous cumulons alors de plus en plus de « dette technique ». A long terme (plusieurs années) les conséquences négatives seront plus perceptibles et gênantes voire bloquantes (impossibilité de profiter des dernières nouveautés techniques rendant plus difficile à maintenir et à faire évoluer votre application).
C’est pourquoi à Opsone nous vous sensibilisons au sujet de la dette technique dès le départ pour que vous sachiez en toute connaissance de cause dans quelle aventure vous vous lancez ! La transparence et la pédagogie font partie de nos valeurs pour garantir un partenariat de qualité !
Envie de tenter l’aventure numérique avec Opsone ? C’est par ici !