Kalicrunch la newsletter, je m'abonne
Actualités
dette technologique SI
Actualité

Dette technologique. Les 10 erreurs à ne plus faire.

18 novembre 2020

Quel plan de réduction de la dette technique de votre SI ? Où comment faire en sorte que votre SI ne bascule dans l’économie du jetable, incapable de s’engager dans les défis structurants de demain qui préserveront la vitalité et la longévité de votre entreprise.

La dette technologique pourrait se résumer à la somme de tous les problèmes non résolus dans le temps au sein de votre système d’information : des mises à jours de logiciels et des correctifs de sécurité non effectués, des logiciels non utilisés ou qui ont cessés d’être maintenus par les éditeurs, des applications aux développements spécifiques délaissées par les utilisateurs qu’on ne sait plus faire évoluer, des infrastructures vieillissantes qui ne sont plus assez performantes pour soutenir les nouvelles applications ou les dernières innovations technologiques, etc.. Certes, le tout est globalement fonctionnel … mais votre SI pourrait clairement être plus performant et efficace car cette « dette » génère de plus en plus de dysfonctionnements, de bugs et de failles de sécurité avec le temps. La dette technologique – ou dette technique – est devenue un des enjeux majeurs des DSI qui, année après année, « empilent » nombre de technologies et d’applications. Résultat ? les systèmes d’information sont de plus en plus complexes et difficiles à maintenir sans compter le gouffre financier qu’ils peuvent représenter en termes de consommation de ressources, financières comme humaines… En clair, comme une dette financière, plus elle s’accumule, plus la dette technologique se creuse avec le temps et coûte cher à l’entreprise. Et ce problème ne fait qu’empirer car les responsables informatiques des entreprises sont toujours plus contraints de choisir entre le time-to-market et l’efficacité à long terme des SI, sans compter qu’une large part des budgets informatiques sont aujourd’hui sous la responsabilité des métiers. Les principes d’architectures et les contraintes de maintenabilité (TMA évolutive et corrective, support), de scalabilité et de sécurité se retrouvent de plus en plus souvent sacrifiés au profit de la rapidité des nouveaux déploiements et de l’immédiateté de la satisfaction des besoins. De plus, au-delà d’entraver vos performances, la dette technologique freine vos capacités d’innovation.

Voici selon nous les principales erreurs à ne plus commettre pour réduire votre dette technologique dans le temps et adopter les principes d’une technologie plus durable.

  1. Sacrifier la rigueur au profit de l’Agilité. Il est souvent trop tard pour rattraper les erreurs du passé, les temps ont changé, les technologies évoluent à un rythme effréné, la transformation numérique des entreprises s’accélère et les méthodologies s’adaptent. Par contre, comme vient de le rappeler le tribunal de commerce de Paris, une approche agile ne remplace pas un cahier des charges. https://www.lemondeinformatique.fr/actualites/lire-methode-agile-la-justice-rappelle-l-importance-du-cahier-des-charges-80976.html
  2. Négliger la qualité du code dont la documentation du code source, sa lisibilité et les bonnes pratiques du développement (cf. notre article S.O.L.I.D) car il faudra avec le temps effectuer des mises à jour, remplacer certaines parties devenues obsolètes. Tous les frameworks évoluent avec de nouvelles versions régulières.
  3. Oublier l’importante des tests unitaires. Mettre en place un développement piloté par les tests (TDD) entre dans une logique d’amélioration continue et en ce sens contribue à réduire la dette future. Ils ont notamment pour intérêt de produire une documentation technique qui sera vitale pour la suite des versions à venir.
  4. Minimiser l’importance de l’architecture technologique de votre SI et ses composants : infrastructure, serveurs, base de données, logiciels, API, …
  5. Persévérer dans une organisation en silos. Une meilleure coordination des équipes est indispensable pour avoir une vision transverse des différents projets en cours et éviter la multiplication des technologies… et surtout détecter des synergies ! Plus les technologies sont nombreuses, plus elles seront difficiles à maintenir.
  6. Céder aux sirènes de la jeunesse ! Être un early-adopter, c’est bien car cela permet d’accéder à des innovations en avance de phase et de prendre un avantage concurrentiel … mais cela comporte des risques car les technologies récentes sont souvent instables. Ne négligez pas les phases de POC indispensables avant ce type de choix.
  7. Oublier de se projeter dans l’avenir. La pression toujours plus forte des métiers amène souvent à choisir une solution qui correspond à un besoin immédiat et spécifique. Cela a souvent comme conséquence de se retrouver « enfermé » dans un choix logiciel éditeur prioritaire et esclave de sa feuille de route si cela n’est pas anticipé.
  8. Continuer à isoler les Dev des Ops. C’est encore un écueil très fréquent dans les entreprises où les équipes de développement et les opérations restent séparées. On ne peut plus aujourd’hui concevoir un nouveau produit sans penser à comment il va être maintenu ni supporté. Chez Kalisoft, nous vous recommandons une organisation et une programmation en mode DEVOPS. Nos consultants sont d’ailleurs dans leur grande majorité des « généralistes » de manière à ce qu’ils puissent intervenir et comprendre rapidement le produit logiciel … même si ce n’est pas eux qui en ont écrit le code, ils peuvent ainsi intervenir sur l’ensemble de l’application.
  9. Ne pas gérer le cycle de vie applicatif dans son ensemble. A chaque nouveau projet, vous devez avoir une vision de son cycle de vie dont la stratégie de fin de vie logicielle. Vous devez penser à mettre hors service toutes les technologies obsolètes, à décommissioner les applications qui ont fait leur temps afin de plus avoir besoin de les maintenir en conditions opérationnelles. Non seulement, plus elles sont obsolètes, plus elles comportent des risques en termes de sécurité … mais elles peuvent aussi représenter des risques règlementaires si, par exemple, elles tombent depuis sous les contraintes du RGPD qui vous impose le droit à l’oubli et notamment le privacy by design (cryptage, anonymisation des données à caractères personnelles).
  10. Ne pas avoir de programme de modernisation continue des technologies et de remplacement de vos équipements avant qu’ils ne soient devenus obsolètes … car c’est le seul moyen d’enrayer la dette, voire de la rembourser dans la durée.

Certes, la dette technologique est inexorable mais on peut faire en sorte qu’elle ne se creuse pas au point d’absorber toutes vos ressources humaines comme financières et soit un frein aux investissements qui seront générateurs de valeur ajoutée pour le futur. Si elle est devenue ingérable ou incontrôlable, nous étudions avec vous quelles solutions sont possibles selon les différents scénarios financiers, les impacts techniques et fonctionnels entre la remise à niveau des composants qui sont devenus critiques, une refonte ou la migration de tout ou partie.

Sources :

Dette technique https://fr.wikipedia.org/wiki/Dette_technique

6 tips for CIOs managing technical debt

À lire également
Expertise
11 novembre 2020
Comment gérer les tests à distance (tests délocalisé ou test distribué) avec des équipes réparties sur le territoire ou des consultants confinés chez eux. Voici les 6 clés pour une bonne gestion du processus de test que l'on soit dans un projet cycle en V ou en mode agile. Ainsi qu'une sélection des meilleurs outils pour s'organiser.
Actualité Expertise
3 novembre 2020
Par Rim Mediaf, QA Practice Manager Vous êtes un Test Manager et votre organisation bascule en agile : vous paniquez, ce rôle n’existe pas dans le jargon Agile ! Pourtant, votre rôle ne fait que de se transformer. Il ne disparait pas bien au contraire, il prend une nouvelle dimension. Revenons à cette époque où(...)
Actualité Flash
28 octobre 2020
JavaScript reste le langage de programmation le plus populaire parmi développeurs du monde entier ! Souvent, et chez Kalisoft en particulier, les développeurs maîtrisent parfaitement plusieurs langages pour pouvoir intervenir sur différents projets comme Python, Java – respectivement en 2ème et 3ème langages les plus utilisés – C/C++, PHP, et C# … mais aussi des(...)