La migration d’applications réalisées en code SAS vers de nouveaux langages de programmation open source tels que R et Python implique de suivre une méthodologie bien structurée. Nous vous exposons dans cet article les étapes à suivre pour réussir dans les meilleures conditions son plan de migration.
Pourquoi migrer son application SAS vers Python ou R ?
De nombreuses organisations initient la migration de leurs anciennes applications SAS vers des langages plus en vogue tels que R et Python. Bien que chaque langage dispose de forces et de faiblesses, ces derniers présentent tout de même un certain attrait pour les organisations.
Les langages R et Python sont open source et permettent aux organisations de réduire significativement leurs coûts tout en disposant d’un langage de programmation tout aussi performant, voire plus lorsqu’il s’agit d’une utilisation dans un contexte Big Data.
La plupart des masters forment les futurs développeurs aux langages open source tels que R et Python, créant une pénurie de ressources sur d’anciens langages qui a pour effet de favoriser la montée en puissance de ces solutions nouvelles génération.
Langage R ou Python, que choisir ?
Initialement, R est considéré comme un langage de statisticiens, alors que Python se présente comme un langage informatique plus général.
Utilisé largement pour des programmes classiques, Python dispose d’une grande capacité à fonctionner en cohésion avec d’autres langages. Il est conseillé de partir sur Python lorsque le projet implique une mise en production rapide des applications, une prise en compte de la scalabilité des traitements ou même du nombre d’utilisateurs. Python embarque par ailleurs une large communauté et bénéficie de nombreuses ressources et tutoriels disponibles sur internet.
Les organisations ont tendance à préférer R lorsqu’il s’agit d’une utilisation à des fins d’analyses purement statistiques. Il dispose de fonctions statistiques plus avancées et répond mieux aux besoins d’analyse et d’exploration des données.
Avec l’avènement du machine learning en France, les organisations étendent l’utilisation de R et Python afin d’expérimenter de nouvelles solutions d’innovation, basée sur la data science.
La solution propriétaire SAS répond aux mêmes besoins que ses confrères s’agissant de routines simples en traitement de données. Bien que payante, SAS a l’avantage d’être bien implanté au sein des organisations et de mettre à disposition des serveurs et des ressources machine, alors qu’opter pour le langage R ou Python implique de tout repenser.
Plan de migration SAS vers R ou Python
Cadrage du projet de migration SAS
La migration de SAS vers R ou Python s’inscrit généralement dans une roadmap métier plus large consistant à moderniser une ou plusieurs des applications. La réalisation de cette migration implique de bien cadrer le périmètre du projet.
Avant d’initier un projet de migration des programmes SAS, il est important de bien appréhender les aspects fonctionnels et techniques : types et nombre de macro-fonctions SAS à convertir, nombre de procédures SAS, volumétrie de lignes de code, taille de l’équipe en place et représentants métiers, etc. En tant que cabinet de conseil et d’intégration, nous menons une première phase de lancement avec les métiers ainsi qu’une prise de connaissance du périmètre.
Dans cette phase de prise de connaissance de quelques jours, l’expert R ou Python entre dans le détail des programmes pour analyser la complexité de l’application SAS à convertir : nombre de macro-fonctions et de macro-variables, quantité de requêtes SQL, complexité des boucles et conditions à prendre en compte, environnement technique du client… afin de mieux structurer le projet et estimer la charge de travail nécessaire en jours-hommes.
Réalisation d’un plan de migration
L’élaboration d’un plan de migration détaillé permet de poser un cadre aux futurs développements.
Ce plan de migration doit contenir plusieurs informations :
- Le périmètre: nombre de programmes SAS à convertir de façon iso (1 programme SAS égal 1 programme R / Python) ou non (fonctionnalités iso mais architecture des programmes à repenser), etc.
- Le cadre de développement: les bonnes pratiques, normes de développement, règles de nommage des variables, les packages à utiliser, etc.
- Le planning des développements, tests, documentation, et livraisons, en y intégrant les phases de recette métiers et de transfert de connaissances.
Il est important de travailler en méthode agile afin de produire des livrables, des validations et des corrections au fil de l’eau. Cela garantit que l’application finale réponde aux attentes des directions métiers, et d’éviter les risques.
Les prérequis pour réussir sa migration d’application SAS vers R ou Python
Cadrer les responsabilités de chacun, dès le démarrage du projet
Le projet de migration d’applications SAS vers R ou Python peut s’avérer long et complexe, et implique une organisation cadrée dès le démarrage du projet. Il est important que les rôles et responsabilités des parties prenantes soient donc bien définis.
La délimitation du périmètre et du niveau d’intervention s’étend à plusieurs niveaux : nombre de programmes à convertir, conversion totale ou partielle réalisée par le développeur, niveau d’autonomie et de maturité des équipes en place, mise en place de documentations communes, etc.
Mise à disposition des données
Il est important d’arbitrer dès le démarrage sur les attentes finales, et le taux d’erreur accepté. La finalité première consiste-t-elle à reproduire des résultats en R ou Python identiques ou quasi identiques à l’application SAS ? Ou une marge d’erreur est-elle acceptable dans le cas où le code ne serait pas réalisé de la même façon ?
Dans le cas où la nouvelle application R ou Python doit produire des résultats identiques, il est important d’accéder à l’ensemble des données SAS des applications actuelles, et non uniquement aux données en entrée et en sortie du programme. L’équipe de développement doit alors accéder aux tables intermédiaires du programme SAS.
Réactivité et disponibilité des équipes
Pour réussir son projet de migration SAS vers R ou Python dans les délais impartis, il est important d’assurer une disponibilité suffisante des différents acteurs (développeur, expert, chef de projet, équipes métiers, etc).
Cette disponibilité, planifiée dès le démarrage du projet, permettra d’accélérer le temps de développement et d’avoir une validation progressive et évolutive des livrables. Pour cela, il est important d’assurer une participation suffisante des métiers à la validation des tests et de les documenter. Une solution consiste à préparer en amont un plan de test rythmé dans le temps qui sécurise la disponibilité des équipes.
L’importance de la documentation
L’absence de documentation peut avoir des répercussions néfastes pour de futures migrations SAS. En tant que cabinet de conseil et d’intégration, nous sommes parfois sollicités pour réaliser des rétro documentations afin de traduire en langage humain ce qui a été réalisé dans le programme SAS.
La mise en place de documentations fréquentes et structurées permet d’accélérer le temps de développement mais également de pallier aux absences ou au turnover potentiels pouvant subvenir lors du projet de migration. Chaque nouvelle ressource intervenant sur le projet s’inscrit rapidement dans le cadre de développement documenté afin de respecter les bonnes pratiques définies. Il semble également pertinent de prévoir des binômes afin de conserver l’intelligence.
La rédaction vous conseille
> Découverte du Machine Learning avec Python et le Framework Ray
> L’Infrastructure as Code comme accélérateur de Delivery