Onemigration : contrôlez vos migrations de code avec l’IA générative

Notre plateforme collaborative reposant sur l’IA générative vous accompagne dans vos programmes de modernisation applicatives.

Plusieurs dizaines de millions d’euros. C’est le coût que peut atteindre, pour les plus grands acteurs, les programmes de modernisation des outils d’exploitation de la donnée vers des environnements plus modernes et adaptés aux enjeux de leur traitement.

Pourtant, plus que des coûts, ces dépenses représentent en réalité des investissements car la compétitivité des entreprises repose notamment sur un SI performant, moderne, au service des ambitions data et servant les stratégies business. Dans ce contexte, la lutte contre l’obsolescence des SI est clef afin de parer aux dettes techniques et aux pertes de compétences associées.

C’est dans ce contexte qu’intervient la plateforme Onemigration développée par Onepoint. Il s’agit d’un élément clef accompagnant nos activités de conseil relatives aux migrations de code. Il ne s’agit pas d’un produit vendu en licence saas mais bien d’un accélérateur permettant de réduire leurs coûts, améliorer la qualité pour finalement sécuriser ces projets en outillant tout le cycle de vie d’une migration, de la rétro documentation à la génération de scenarios de tests et des données associées en passant par la traduction assistée.

La flexibilité face aux coûts

Le monde de l’analyse et de l’exploitation de la data a connu une fulgurante évolution en quelques années, portée par l’essor de l’apprentissage automatique (machine learning), de l’intelligence artificielle et des développements informatiques libres (logiciel libre, open source etc.)

98 des plus grandes entreprises mondiales du Fortune 400 utilisent en effet l’outil d’analyse de données SAS (Statistical Analytics System) pour l’analyse des données. Mais ces entreprises se retrouvent confrontées à une pression financière de la part de SAS qui devient intenable. Le prix des licences peut ainsi augmenter de 500% pour une migration vers SAS Viya.

Dans un contexte de contrainte budgétaire accrue, les acteurs ayant recours à SAS peuvent bénéficier des alternatives concurrentes que sont les langages plus flexibles et dynamiques comme Python ou autres langages.

En effet, le recours à des langages de code modernes comme par exemple Python (mais pas que !) s’inscrit dans le développement d’une communauté vaste et active, ce qui se traduit par une abondance de ressources, de bibliothèques et de tutoriels. Python est également un langage généraliste qui permet de réaliser une grande variété de tâches, de la manipulation de données à la création de modèles complexes. Python est en outre open source, ce qui le rend plus accessible et favorise l’innovation. Enfin, Python dispose d’un écosystème de bibliothèques spécialisées pour la data science (NumPy, Pandas, Scikit-learn, etc.) qui offrent des fonctionnalités avancées.

Aujourd’hui, ces langages sont travaillés dans des environnements modernes et compatibles avec les solutions technologiques afférentes de type cloud ou des plateformes connexes comme Alteryx, Teradata ou Dataiku. Et au-delà de la stricte amélioration technique, ils soutiennent également la modernisation des

processus fonctionnels de l’entreprise vers plus de collaboration, la tendance de fond étant au rapprochement des métiers et des compétences data exploitant ces langages (datascientists, ML ingénieurs, data analystes etc.).

Dans tous les cas, la définition stratégique d’une solution de cible de traitement de données, et l’implémentation de la tactique opérationnelle qui en découle sont d’une grande complexité.

L’IA générative pour gagner en temps et en qualité pour les opérations de traduction de code

Les grands programmes de transformation d’outil impliquant un nouveau langage ne se résument pas à des problématiques technologiques et informatiques. Architecture et urbanisation IT cible, catégorisation des programmes métiers, rétro documentation, génération de scenarii de tests, priorisation des applicatifs éligibles mais aussi (et surtout), culture et compétences requises (rares sont les profils parlant à la fois SAS et Python !) sont autant de sources de difficultés qu’il convient de gérer en parallèle.

Dans ce contexte, non seulement la traduction d’un code source vers un code cible ne peut se faire qu’en s’adaptant à ces différentes problématiques, mais les aspects purement relatifs à l’activité de traduction comprennent également des causes de complexité.

L’intelligence artificielle générative a prouvé son efficacité pour traduire les langues. En appliquant ces avancées au domaine du code informatique, les retours d’expérience permettent également d’envisager des résultats tout aussi prometteurs pour accélérer la modernisation des outils de gestion de données.

La traduction de code, à l’instar de la traduction linguistique, exige une compréhension approfondie de la sémantique des langages de programmation. Cela implique non seulement la maîtrise des fonctionnalités encodées. Mais pas seulement. Cela nécessite également de bénéficier d’une connaissance étendue des scripts et des bases de données impliqués dans leur exécution.

La traduction de code ne se limite donc pas à une simple réécriture littérale. Le paramétrage des IA génératives pour la traduction de code doit prendre en compte les structures spécifiques des langages source et cible, les structures des langages et des données, les logiques algorithmiques pour produire un code équivalent et fonctionnel dans un autre langage.

Version originale (Code Python 2)

Code traduit par Claude AI vers Python 3
Utilisé la fonction sum() intégrée pour simplifier le calcul de la somme.

Mis à jour la syntaxe d’impression pour Python 3 avec des parenthèses.

 

En outre, le paysage des langages de programmation est à la fois vaste et en constante évolution. Les IA, plus particulièrement les LLM (eux-mêmes largement évolutifs et disparates), doivent être capables de s’adapter à cette diversité et de gérer les spécificités de chaque langage et de chaque framework.

L’automatisation totale des opérations de traduction est une tâche aujourd’hui encore trop complexe pour être objectivement envisageable. Pour autant, les IA génératives peuvent aider à la production d’un code de qualité, sans erreurs de syntaxes ou de logique. A cet atout, s’ajoute celui du respect des bonnes pratiques de programmation. Citons, entre autres, la documentation et la production d’un code aligné sur les exigences métier.

Enfin, au-delà des aspects opérationnels, le recours aux IA génératives permet d’initier une logique collaborative. C’est surtout le cas dans le cadre d’un projet d’entreprise transformatif majeur. Ces systèmes permettent également de partager et de monter en compétence. Ils contribuent à rapprocher les fonctions liées aux données des métiers en renforçant les échanges entre ces communautés.

Onemigration : une approche collaborative et technologique pour le succès des migrations

Ces défis sont donc des menaces et des opportunités, et nécessitent un outillage solide et pertinent. C’est pour ces raisons que Onepoint a lancé le projet de construction d’un asset qui permet d’assister les équipes projets en charge de ce type de migration. La plateforme propriétaire de Onepoint, Onemigration en est l’aboutissement, conçue dans cette optique collaborative, au service des grands programmes de modernisation des environnements technologiques.

Onemigration est pensée, construite et maintenue comme une plateforme logicielle. Toutefois, son utilisation ne s’envisage pas en standalone, mais plutôt dans le cadre d’un accompagnement global et personnalisé.

Onemigration : une approche modulaire pour migrer de bout en bout

Le cœur de l’activité de migration est complexe : la traduction de code doit être accompagnée de phases de tests, de documentation et de rétrodocumentation, néecessitant de générer des scenarii de tests (cas passant, cas non passant) cohérents avec les règles de gestion déduites d’un game changer. Onemigration propose cette approche intégrée de bout en bout pour accélérer nos offres de services adressant les projets de migration.

One migration permet ainsi d’appréhender toutes les phases de tels projets : la gestion des sources (bases et langages) jusqu’à l’aval cible (livrables en langage de destination, avec les rapports et liés). Les étapes intermédiaires sont également prises en charge notamment par une orchestration des activités d’analyse préparatoire et de gestion de la qualité.

C’est dans cette logique que nous avons conçu une orchestration multi-agent avec des dialogues itératifs autonomes pour aboutir au « meilleur » résultat, la complexité des opérations ne pouvant être opérée par un unique modèle. Cette complexité technologique est à l’image des organisations humaines nécessaires et impliquant de multiples compétences pour réaliser l’ensemble des opérations.

Représentation schématique de la console de pilotage de Onemigration

 

Onemigration : une plateforme adaptable à tous vos écosystèmes

Onemigration prend en compte l’hétérogénéité des contextes en offrant un espace de travail sécurisé : gestion des habilitations, usage multi utilisateurs, et espaces multi projets en parallèle. Afin de s’adapter aux environnements de nos clients, Onemigration peut être déployée de manière privative on premise ou par le recours au cloud (Azure, AWS, GCP ou OVHcloud). La disponibilité d’une option souveraine française ou d’une possibilité oneprem incluse dans une solution ultra sécurisée et pensée pour des comptes de toutes tailles est déterminante.

Onemigration : Traduction de code multilingue

La plateforme embarque nativement plusieurs langages sources et cibles, et peut en adjoindre de nouveaux selon les besoins. Par exemple, SAS vers Python, quelle que soit la version de Python, ou vers Drupal ou Angular. Afin de prendre en compte la diversité des opérations de traduction, Onemigration permet la migration par bloc de code, de fichier, de répertoires, et en se connectant à des dépôts.

Pour effectuer les activités de traduction, Onemigration permet l’embarquement de plusieurs modèles LLM, open source, propriétaires, fine tunés etc. Le fonctionnement de Onemigration est conçu autour d’une logique multi agents : traducteur, évaluateur etc. Chacun est paramétré pour fournir des réponses formatées et contextualisées selon les normes et les standards des design authorities des projets. Enfin l’interface homme machine développée inclue une version en langage clair, permettant un résumé lisible des actions effectuées.

Aujourd’hui, Onemigration est éprouvé sur des dizaines de projets aux spécificités distinctes : SAS vers Python, modernisation et réécriture de SQL, montée de version Angular, Drupal et Java, NS DK vers Angular, VB .Net vers C#, Cobol ou R vers Java. Onemigration s’utilise ainsi pour les activités de migration les plus simple mais également les montées de version plus complexes, la migration de Angular JS version 1.X vers la dernière version d’Angular (14) devant prendre en compte la réarchitecture complète du langage.

Onemigration : une plateforme continuellement enrichie

Par sa construction et son adaptation permanente, Onemigration, en continuelle amélioration, se positionne ainsi comme un outil clef pour répondre aux enjeux complexes liés à la modernisation des environnements technologiques. La feuille de route de ses développements inclut notamment le déploiement d’un mode conversationnel pour mieux gérer les multiples agents, l’analyse des dépendances des projets, l’enrichissement des aspects de documentation, la connexion vers les outils tiers comme gitlab, wiki etc.

Comparatif des solutions existantes pour assister la traduction de code

 

Onemigration pour assister intelligemment les migrations

Onemigration incarne ce que l’IA générative est réellement capable en termes de création de valeur. Loin de l’automatisation totale et absolue voire « magique » qui lui est souvent accolée, il s’agit d’une aide logicielle qui épaule mais ne se substitue pas aux accompagnements adaptés et personnalisés. Onemigration est adapté aux maturités des projets, qu’il s’agisse d’exploration, d’expérimentation ou de transformation.

En effet, et comme pour tout projet impliquant l’IA et l’IA générative, il convient d’adopter une approche pratique (voire précautionneuse). L’exploration permet d’évaluer au préalable les bénéfices potentiel d’une migration assistée par une étude de faisabilité impliquant l’analyse du contexte, ainsi que d’un échantillon représentatif des codes sources. Cette étape permet de projeter et d’argumenter les gains envisageables. L’expérimentation permet d’initier des projets pilotes, cadrés et délimités afin d’identifier les limites à appréhender et de réaliser des opérations de migration ciblées à des applicatifs éligibles et représentatifs. Enfin, les opérations industrielles de transformation mobilisent Onemigration dans une logique clef en main ou d’accompagnement.

Finalement, si la traduction de code peut sembler être un sujet purement informatique, ce serait méconnaitre tous les aspects stratégiques, métiers et RH qui y sont liés.

Dans tous les cas, le savoir faire et l’expertise des opérateurs mobilisés est clef : qu’il s’agisse des sachants du langage source, des sachants du langage cible et des sachants métiers des fonctions véhiculées, les échanges et la communication, bien humaine cette fois, reste indépassable.

[1]  Evelyn Clarke, « SAS vs R : quelle est la différence entre R et SAS ? », guru99.com, 12 juin 2024.
[2] « Scientific computing tools for Python », scipy.org, 2021.

Auteur

  • Erwan Medy

    Leader data.ia