Les Legacy Systems sont des systèmes complexes qui ne sont restés opérables que parce qu’ils étaient corrigés continuellement ou qu’il était nécessaire d’intervenir pour résoudre des problèmes et des exceptions que le système ne pouvait plus gérer.
Ce système a été développé à l’aide de technologies autrefois considérées de pointe, mais désormais devenues « obsolètes » et qui ne répondent plus aux besoins organisationnels. De plus, le Legacy System ne concerne pas uniquement les logiciels. C’est un concept plus large qui englobe l’organisation dans laquelle le matériel est situé, ainsi que ses outils de processus, ses machines et son personnel. Cet article explore certains des principaux défis auxquels une organisation peut faire face en exploitant ses Legacy Systems. Certaines recommandations sont également avancées pour aider ces structures.
L’histoire des Legacy Systems
À l’origine, décision a été prise de développer un système qui serait « essentiel » pour les principaux processus opérationnels de l’organisation. Probablement développé avec les technologies et méthodologies les plus avancées disponibles sur le marché, il intégrait la plupart des besoins et contraintes des utilisateurs.
Dès sa mise en œuvre, le système se montre alors efficace et efficient. Toutes les parties prenantes – logiciels (applications), données, matériel et personnes – travaillaient alors en parfaite synergie ou presque. De même, les processus commerciaux se déroulaient sans heurts.
Cependant, avec le temps, de nouveaux collaborateurs sont arrivés, le matériel a été remplacé, et les logiciels ont dû être mis à jour et corrigés pour résoudre les bugs. Après un certain (long) temps, si le système reste essentiel pour la partie principale ou partielle des processus métier, il est néanmoins devenu difficile de mettre en œuvre de nouveaux changements, d’interagir avec d’autres systèmes d’entreprise, et d’être compatible avec les nouvelles technologies et normes. Il est alors devenu un Legacy System, c’est-à-dire en français, un « système hérité ».
Des systèmes complexes et obsolètes
En effet, les Legacy Systems sont des systèmes complexes qui fonctionnent sur des technologies et des méthodologies « obsolètes », mais qui n’en restent pas moins toujours critiques pour l’organisation. Un tel système englobe non seulement des facteurs techniques, mais également des aspects sociaux et organisationnels tels que l’expertise des employés et la stratégie d’entreprise1.
À titre d’illustration, les Legacy Systems peuvent être des logiciels utilisés pour stocker les informations des clients, pour simuler les risques financiers, pour traiter les réclamations d’assurance, et qui ont été mis en œuvre dans les années 80 et développés en interne ou par un fournisseur externe. De même, ils sont principalement programmés dans un langage qui ne fait plus partie de l’ensemble grand public (par exemple COBOL, FORTRAN) et les interfaces utilisateur ne sont pas très user-friendly.
Les défis des Legacy Systems
Ci-dessous, nous discutons de certains des principaux défis liés à l’exécution des systèmes existants et de la manière de les résoudre.
La maintenance
Il n’est pas surprenant que la maintenance des Legacy Systems soit l’un des principaux défis auxquels une organisation est confrontée. En effet, il est difficile de maintenir le système en marche sans problème. Ce n’est pas l’analogie parfaite mais imaginez une Shelby Cobra V8, produite en 1962. Aujourd’hui, la même voiture peut se retrouver dans deux états principaux :
a) Elle roule à peine, casse plus de fois que souhaitable, et à chaque visite au garage, une nouvelle correction doit être faite.
b) Elle fonctionne comme neuve, mais pour ce faire, le propriétaire a dépensé plus de 15 fois le prix d’origine de la voiture en entretien tant les pièces sont rares et l’expertise des mécaniciens pour ce type de voiture encore plus.
En appliquant cet exemple au monde informatique, afin de faire fonctionner un Legacy System sans impact négatif sur les processus métier, l’organisation doit avoir la capacité à changer les composants défectueux des systèmes, à corriger les bogues, à refactoriser le code et à conserver en interne l’expertise nécessaire pour faire fonctionner l’ensemble des Legacy Systems (y compris les logiciels, le matériel et les processus connexes).
Les améliorations
L’un des principaux défis repose également sur l’amélioration du système. C’est une activité complexe car tout changement peut avoir un impact sur l’ensemble du système. Par exemple, la mise à jour de nouvelles fonctionnalités logicielles peut générer des bogues (affichage de l’interface utilisateur, format de données, etc.) ou même geler l’ensemble des logiciels qui s’exécutent au cœur des Legacy Systems.
De plus, les modifications apportées à l’infrastructure peuvent également avoir un impact sur la configuration logicielle prise en charge et sur la manière dont les gens gèrent le matériel et les logiciels. Par exemple, si une organisation souhaite / a besoin de migrer une partie ou la totalité de l’application de son Legacy System vers le cloud, elle peut être confrontée à divers défis2 parmi lesquels :
- La migration / adaptation des données
- Le chiffrement de la base de données
- La conception de l’architecture de la solution cloud
- L’interopérabilité avec l’application qui ne peut pas migrer vers la même solution cloud
- Et l’expertise nécessaire sur la solution actuelle et sur la technologie cloud pour une transition transparente.
Par ailleurs, les modifications apportées aux processus métier peuvent influencer considérablement l’utilité des applications existantes et les responsabilités et autorisations des employés.
Le transfert de connaissances
C’est également quelque chose à prendre en compte lorsque l’on dépend d’un Legacy System. En effet, à mesure que le système « vieillit » et que de nouvelles fonctionnalités fusionnent avec les anciennes, l’expertise concernant le système devient trop spécifique.
Autrement dit, l’ensemble des compétences nécessaires pour maintenir, améliorer et exploiter le Legacy System est propre à l’organisation. Par conséquent, cela peut conduire à des silos de connaissances, des expertises internes devenues indispensables et coûteuses, et des difficultés d’intégration des nouveaux collaborateurs.
L’interopérabilité
L’interopérabilité est la capacité de deux ou plusieurs systèmes à échanger des informations, et à comprendre et à utiliser les informations échangées. Par conséquent, lorsqu’une entreprise essaye de faire interagir ces Legacy Systems avec d’autres systèmes, cela peut rapidement devenir compliqué et difficile. En effet, de nombreux problèmes peuvent apparaître comme l’incompatibilités de format de données, le faible niveau de sémantique des données et différents protocoles de communication3.
Dans certaines occasions, l’organisation doit planifier de nouveaux projets pour rendre ses systèmes interopérables. Elle doit par exemple réparer les interfaces sur les systèmes existants ou développer des médiateurs qui serviront de traducteurs entre les systèmes.
Les recommandations pour la gestion des Legacy Systems
Ci-dessous, nous présentons trois ensembles de recommandations qui peuvent être utiles pour la gestion des Legacy Systems.
Modélisation des processus métiers
Les modèles d’entreprise4 peuvent s’avérer un outil utile pour documenter et représenter les processus liés aux Legacy Systems. Ces modèles peuvent inclure la description des principales activités, les intrants nécessaires (par exemple les ressources humaines et non humaines), les résultats attendus et les méthodes de travail à suivre. Ils doivent avoir une sémantique (signification) convenue entre les principales parties prenantes (c’est-à-dire qui sera responsable de l’exploitation et de la surveillance du Legacy System).
En résumé, on peut dresser un parallèle avec les plans des constructions des bâtiments, lesquels servent aux architectes à planifier et aux ouvriers à exécuter. Les modèles doivent également être stockés et facilement accessibles par toutes les personnes impliquées.
Ces modèles sont également utiles lors de projets de maintenance, d’amélioration, d’interopérabilité et de transfert des connaissances. En effet, il peut aider les employés à identifier les activités et les ressources qui seront affectées par un problème potentiel, et alerter la maintenance sur les problèmes identifiés. En ce qui concerne les améliorations et les projets d’interopérabilité, ces modèles peuvent aider à identifier les composants du système qu’il faut modifier et / ou améliorer.
Enfin, des modèles bien documentés peuvent être utilisés comme support de formation et être utiles pour permettre aux nouveaux arrivants de se familiariser avec les systèmes en place.
Normes et adaptation au besoin
Pour chaque projet, il est de la plus haute importance de discuter de l’utilisation des normes. Cela peut être lié au codage, au format des données, aux méthodes de travail, etc. Les normes sont des « outils » capables de simplifier le développement et les opérations quotidiennes d’un système.
Dans le cas des Legacy Systems, les organisations peuvent être amenées à évaluer le niveau de normalisation de leur système afin de vérifier :
- Si les normes utilisées (le cas échéant) sont toujours « valides » dans leur environnement (leur marché, secteur, etc.).
- Si les normes peuvent être facilement mises à jour si nécessaire.
- Si les normes répondent aux besoins du système et de l’organisation.
- Si les normes sont internes (comme des documents spécifiques de l’entreprise et des modèles de formulaires) ou développées en externe (des normes ISO pour la sécurité, la méthodologie de développement de logiciels, etc.).
Sur la base d’une telle évaluation, l’organisation peut planifier des transformations pour la mise en œuvre, l’amélioration et l’alignement des normes au sein de leurs Legacy Systems. Par exemple, le langage de programmation de base doit être JAVA pour le développement back-end et JavaScript, HTML et CSS pour le développement front-end. Pour l’échange de données, le format JSON doit être préféré. Pour développer et livrer de nouvelles fonctionnalités, le cadre SCRUM doit être suivi.
Surveillance des systèmes
La surveillance de la santé du Legacy Systems plus d’une fois par an est également une bonne pratique. L’évaluation périodique (tous les trois mois selon le degré d’utilisation) du bon fonctionnement du système peut aider à identifier les problèmes potentiels et à planifier la maintenance préventive. Pour ce faire, des indicateurs clés de performance (KPI) peuvent être définis et approuvés par toutes les parties prenantes.
En effet, il est important d’avoir une compréhension généralisée parmi les parties prenantes pour éviter les ambiguïtés et les problèmes futurs lors de la lecture et de la justification des indicateurs.
Ces indicateurs devraient couvrir différents aspects du système, techniques et organisationnels. Ci-dessous quelques exemples :
- Nombre de bugs bloquants
- Nombre de bugs non bloquants
- Nombre de défauts causés par la maintenance
- Nombre de défauts causés par des améliorations
- Nombre de retouches causées par des problèmes humains (manque de compétences, manque de ressources, etc.)
- Nombre de fonctionnalités bien documentées (anciennes et nouvelles)
- Niveau de rotation des employés lié à l’utilisation des systèmes existants
Conclusion
En réalité, les Legacy Systems ne sont pas nécessairement mauvais. De nombreuses entreprises disposent d’une quantité importante de données, de fonctionnalités, de méthodes d’encodage et d’expériences utiles associées à leurs Legacy Systems. Elles peuvent également considérer le système comme la mémoire d’une organisation. Leur objectif n’est pas de supprimer l’héritage, mais de lui permettre de survivre dans le futur5.
En effet, les Legacy Systems sont cruciaux pour les organisations. Par conséquent, il est important de prendre soin d’eux. Les défis et recommandations présentés dans cet article ne sont pas exhaustifs. Cependant, ils donnent un aperçu général des principaux aspects des systèmes existants et de ce qu’il faut prendre en compte pour éviter les problèmes potentiels.
Sources
- System interoperability assessment in the context of Industry 4.0-oriented maintenance activities. International Conference on Production Research (Venâncio, A., et al. 2018)
- Challenges in migrating legacy software systems to the cloud – an empirical study. Information Systems Journal. (Gholami, M. et al. 2017)
- Introduction à l’interopérabilité des systèmes. Blog Meritis – https://meritis.fr/techno-archi/introduction-a-linteroperabilite-des-systemes/ – (Gabriel Leal, 2020)
- Les perspectives de modélisation, outils de représentation d’entreprise. Blog Meritis – website – (Gabriel Leal, 2020)
- Organisational scenarios and Legacy Systems. International Journal of Information Management (Brooke, C., & Ramage, M., 2001).
Pas encore de commentaires