Interview de Hugues Clément, responsable d’un logiciel de gestion d’entrepôt chez Geodis
Dans un monde technologique en perpétuelle évolution, la nécessité de s’adapter et de progresser est une réalité constante. Pour les entreprises s’appuyant sur des outils de développement comme Synon, ne permettant pas de suivre ces évolutions, la question vitale est :
- de quelle manière quitter cet environnement de développement tout en préservant les applications développées,
- et comment maintenir ces applications et les faire évoluer dans un environnement moderne.
Une transition qui n’est pas uniquement un projet technique, mais qui dépend également de la capacité à transformer l’environnement de développement auprès des équipes dont la connaissance et l’expertise sont cruciales pour la pérennité des applications.
L’abandon de Synon n’est pas un choix impulsif, mais plutôt une réponse à des défis à la fois techniques et humains (départ à la retraite de ressources clés, difficulté à trouver des professionnels capables de maintenir ces systèmes, difficulté d’attirer de jeunes ressources sur des outils vieillissants).
Prenons le cas de Geodis, géant mondial de transport et de logistique, qui s’est trouvé au carrefour de ces défis complexes. Sous la direction de Hugues CLEMENT, responsable d’un logiciel de gestion d’entrepôt (WMS) au sein de la DSI Logistique, et en collaboration avec ARCAD Software, une transformation majeure a été entreprise.
Vous vous demandez peut-être comment tout cela a été géré en pratique. Comment l’équipe a-t-elle géré cette transition complexe pour apprendre à utiliser RPG et les structures DSPF/PRTF ? Quels obstacles et opportunités ont émergé en cours de route ?
Sommaire
1. L’héritage Synon chez Geodis : complexité et besoin de transition vers des outils et des méthodes de développement pérennes
Face à un AGL Synon n’évoluant plus, et une baisse des ressources disponibles ayant une connaissance de cet AGL, et le peu d’attractivité de cet outil de développement auprès des nouvelles générations, Geodis a cherché à se réorienter vers de nouveaux langages en préservant plus de 20 ans de développement.
Dans le cadre de ses opérations logistiques, Geodis déploie sur 2 serveurs de production comprenant une quarantaine d’environnements différents de cette application historiquement développée avec SYNON pour gérer une partie de ses sites logistiques. Cette complexité a rendu d’autant plus nécessaire et délicate la transition vers d’autres outils avec la capacité de maintenir des versions précédentes en intégrant des composants nouvellement développés ou modifiés.
Après une tentative infructueuse de migrer de Synon vers un autre Atelier de Genie Logiciel, Geodis a souhaité se réorienter vers une migration en intégrant les standards de l’IBM i (RPG Free Form / SQL) pour assurer une pérennité et de bénéficier d’évolutions des langages et outils de développement. Le RPG Free Form a ouvert une opportunité par un langage plus accessible pour des développeurs utilisant un AGL que les versions précédentes de RPG (3 / 4 …).
2. Formation et adaptation : la transition de Synon COBOL à RPG Free Form sur IBM i
Avant de se lancer dans le développement en RPG Free Form, l’équipe de Geodis, composée de sept développeurs Synon, avait une expérience hétérogène. Deux d’entre eux avaient une expertise en « L3G » (C++, COBOL) en plus de Synon, alors que les cinq autres ne connaissaient que Synon COBOL. Avec une solide compétence de l’équipe en Synon, avec 15 à 20 ans d’expérience, il était important que l’ensemble de l’équipe adhère à ce projet vital pour la survie de l’application et de ne pas minimiser le chemin à parcourir pour retrouver une aisance, des automatismes dans le développement.
La transition d’un environnement AGL (Atelier de Génie Logiciel) à un développement en RPG Free Form sur IBM i a présenté de nombreux défis : un nouvel environnement de développement (RDi, Rational Developer for i), la compréhension du code migré (notamment pour la partie interactive dont l’AGL générait une bonne partie du code), la compréhension de « l‘ILE » (Modules / programmes de service), les prototypes, la gestion des curseurs en SQL …
L’équipe a suivi une formation intensive sur une période de trois semaines, sur Free RPG, RDi, SQL, et ARCAD for DevOps (gestion de versions et des livraisons) juste avant la migration du code.
Après ces trois semaines de formation, les développeurs ont pris le chemin du développement avec RPG Free Form. Ils ont judicieusement commencé avec des projets de maintenance évolutive et corrective avant de s’attaquer à des défis plus importants. Pendant les six premiers mois, l’outil Synon a été conservé uniquement pour consultation, servant de filet de sécurité en cas de difficultés pour trouver le synopsis du traitement. L’équipe était pleinement consciente que ce détachement complet de Synon se ferait après cette période de six mois, marquant une nouvelle étape dans leur processus d’évolution.
Geodis a adopté une stratégie de migration consistant à conserver les noms longs des données de Synon. Cette approche évitait d’utiliser les noms courts de la base de données. L’objectif était d’identifier aisément les champs après la migration, sans devoir se familiariser avec plus de 1000 tables. Cela permettait d’avoir un passage entre Synon et RPG plus facile en termes de lecture de codes.
3. Fonctionnalités de Synon manquantes en RPG
Lorsqu’ils ont commencé à écrire des programmes interactifs en RPG, plusieurs fonctionnalités de Synon leur manquaient. Pour atteindre le niveau de productivité qu’ils avaient en Synon, il a fallu attendre un certain temps pour la partie interactive.
1. Gestion des écrans DSPF
L’AGL était très puissant sur cette partie de manière générale. Au lieu de la génération du code automatique, la programmation manuelle voire la modification directe dans la source est requise avec le développement RPG.
Autrement dit, cette partie était la seule véritable “fonctionnalité manquante” pour l’équipe dans les nouveaux environnements de développement.
2. Gestion basée sur les référentiels des données
Synon fonctionne en se basant sur les référentiels des données avec une approche au niveau de l’outil de développement orientée sur les tables reprenant les listes des composants associés.
Cette fonctionnalité ne se retrouve pas dans RDi. L’application a plus de 37 000 composants entre les programmes et fonctions alors ce changement était perturbant au démarrage.
Geodis a pu résoudre ce problème en gardant le nom de table dans la description. Ainsi les fonctions liées à la table peuvent être trouvées facilement.
Pour répondre à cette difficulté, il est également possible de mettre cette fonctionnalité en place en développement RPG avec les répertoires des données en utilisant ARCAD For DevOps.
4. Bénéfices de la transition
Malgré les obstacles rencontrés en début de parcours, la transition vers le développement en RPG Free Form s’est avérée très bénéfique. Hugues CLEMENT ne manque pas de souligner les nombreux avantages :
1. Gain en productivité et facilité de maintenance
- Manipulation plus facile : Le développement en RPG Free Form s’est avéré plus rapide et plus efficace, en particulier en ce qui concerne la manipulation de chaînes de caractères et l’utilisation de fonctions intégrées. Le RPG Free Form a permis une manipulation plus aisée des dates et des heures, des conversions de type de données facilitant les opérations liées à la gestion des temps, fonctions essentielles dans un Warehouse Management System (WMS).
- RDi (Rational Developer for i) : Apporte un confort d’utilisation, des fonctionnalités supplémentaires, un outil de débug, etc. « c’est le jour et la nuit » par rapport à l’environnement SYNON.
- Simplification des requêtes grâce au SQL : Contrairement à Synon, qui ne gérait l’accès aux données que table par table, la migration en SQL a permis d’accéder à plusieurs tables en même temps, simplifiant ainsi les requêtes complexes. SQL qui permet également de manipuler des données XML et JSON facilitant des échanges de données avec d’autres applications
- Réduction du temps de recompilation : Lorsqu’une procédure ou une fonction est modifiée, seule la recompilation du module où elle est définie est nécessaire. Cela peut diminuer considérablement le temps de recompilation, en particulier pour les programmes volumineux. Ceci est possible grâce à la fonction « Smart Build » contenue dans ARCAD for DevOps.
- Minimisation des changements à apporter au code lors des mises à jour : Le choix de migrer les fonctions internes SYNON liées aux tables en programme de service (CRTOBJ, CHGOBJ, DLTOBJ, RTVOBJ) facilite la maintenance car il suffit de les modifier pour que cette modification se propage dans tous les traitements qui l’utilise. Avec SYNON il était nécessaire de regénérer l’ensemble des traitements avec potentiellement des composants en cours de modification.
- Amélioration de la lisibilité du code : Les procédures et fonctions peuvent améliorer la lisibilité du code en regroupant des blocs de code similaires dans des unités de code distinctes. Cela facilite la compréhension du code et peut aider à identifier les erreurs.
- Flexibilité des paramètres : Avec Synon, ajouter un paramètre à une fonction nécessitait de modifier tous les programmes qui l’appelait même si ce nouveau paramètre n’avait pas de nécessité dans les traitements l’appelant. En RPG Free Form, l’option « No-Pass » rend les paramètres optionnels, réduisant ainsi les besoins de modification globale du code.
- Programmes d’édition (PRTF) : Les impressions reprenant notamment plusieurs tables généraient avec SYNON un code complexe. En développement RPG Free Form, le code est plus simple, ce qui facilite grandement la maintenance.
- Gestion des tableaux : La gestion des tableaux avec SYNON générait un code complexe basé sur des fonctions de type table (CRTOBJ…). En RPG Free Form, le code et la manipulation sont très simplifiés.
2. Durabilité des applications :
- Préembauche de jeunes réussie : Le RPG Free Form, plus semblable à des langages modernes comme JavaScript, attire plus facilement les jeunes talents. Cela contribue à la pérennité des applications et de l’équipe de développement.
- Ouverture vers de nouvelles opportunités de développement : Le passage au RPG Free Form a simplifié le développement et amélioré la connexion entre les différentes applications, que ce soit sur IBM i ou d’autres plateformes. Cela est particulièrement utile pour les environnements Web et les intégrations XML/JSON. Ce changement a aussi facilité les interactions avec ses clients en ce qui concerne les interfaces.
5. Stratégies pour une transition réussie de Synon vers un développement RPG Free form
Selon Hugues CLEMENT, il n’y a pas lieu d’hésiter à faire cette transition vers le développement en RPG Free Form. Un an après sa mise en œuvre, il a constaté une amélioration tangible de l’efficacité de l’équipe ainsi que leur niveau de satisfaction. De plus, ils projettent d’aller encore plus loin en adoptant une approche de modernisation continue vers DevSecOps, en intégrant des outils tels que Git pour la gestion du code source. C’est ce que permet la solution ARCAD for DevOps en assurant une transition douce vers les standards du marché en termes de développement.
À la suite de cette transformation, l’équipe est sereine sur son avenir, elle évolue maintenant dans un environnement de développement à « l’état de l’art » sur IBM i et qui pour rien au monde ne reviendrait en arrière !
Conseils clés pour une transition réussie
- Inclure l’équipe dès le début : Impliquez les membres de votre équipe dès les phases initiales pour bénéficier de leurs retours et mieux ajuster la stratégie aux besoins de vos applications existantes.
- Planification stratégique : Anticipez la phase de transition et assurez-vous de ne pas avoir de grands projets en développement simultanés qui pourraient complexifier le processus.
- Formation au bon moment : Formez les développeurs au plus près de la transition. Une formation trop en amont sans mise en pratique immédiate peut réduire son efficacité.
- Tester avec un Proof of Concept (POC) : Avant de vous engager complètement, effectuez un POC avec des connaissances de base pour valider l’approche.
- Communication et collaboration : Encouragez une communication ouverte et un partage des défis au sein de l’équipe. Ceci est crucial, surtout si votre équipe comprend des membres avec des niveaux de compétence variés.
- Soutien de l’éditeur : N’hésitez pas à solliciter l’accompagnement technique de l’éditeur du logiciel pour surmonter tout obstacle qui pourrait survenir.
Ces conseils devraient aider toute organisation à naviguer plus efficacement à travers les défis et les opportunités d’une telle transition.