La SNCF migre sa base de commandes en co-construction
Par Bertrand Lemaire | Le | Cas d’usage
SNCF Connect & Tech a migré la base de commandes de SNCF Connect d’Oracle vers MongoDB en s’appuyant sur l’ESN WeScale. L’agence de voyages du groupe SNCF a acquis la maîtrise du nouvel environnement grâce à une démarche de co-construction et de montée en compétences.
![Vincent Liboutet est head of tech product management chez SNCF Connect & Tech. - © Républik IT / B.L.](https://geimage.republiknews.fr/image/cms/4b24b8f64893094582da21e1cfb73c88/vincent-liboutet-head-of-tech-product-management-chez-sncf-connect-tech.jpg?fm=browser&fill=auto&crop=0%2C0%2C1500%2C844&w=1500&h=844&s=90130c9381c283cc0bf14628247bfa38)
L’agence de voyages du groupe SNCF a connu une longue histoire, de Voyages-SNCF à SNCF Connect en passant par Oui.SNCF. SNCF Connect gère une base de commandes qui comprend la totalité des commandes effectuées par ses clients, ce qui a représenté 150 millions de billets en 2022 et 209 en 2023 avec une moyenne de 320 000 commandes par jour et une obligation de disponibilité plus ou moins permanente. « Les informations des billets sont stockées durant environ un an » précise Vincent Liboutet, head of tech product management chez SNCF Connect & Tech, la filiale technologique de SNCF Connect. La base de commandes avait été conçue, il y a une vingtaine d’années, avec la base de données relationnelle d’Oracle. Vincent Liboutet relève : « au bout de vingt ans d’évolutions régulières, nous étions dans une impasse évolutive et il nous fallait changer l’outil ».
En effet, techniquement, la base de données Oracle fonctionnait correctement mais la logique relationnelle n’était plus adaptée aux évolutions opérées par les équipes de la SNCF. De plus, les temps de réponse et la fiabilité n’étaient plus suffisantes. La SNCF subissait également une certaine perte de compétences sur l’outil du fait de la rotation des effectifs. Enfin, la SNCF a remporté un appel d’offres de la Région Sud pour opérer la billetterie de tous ses transports publics (tramways, bus, etc.) et l’objectif était de multiplier ce type de contrats. « Il fallait passer un cap pour absorber la croissance de volume et de variété de situations » observe Vincent Liboutet.
Un gros projet très sensible
En février 2022, un projet de refonte est donc amorcé avec comme cible une base de données sous MongoDB, un système de gestion de base de données orienté documents, alors qu’Oracle propose un système de gestion de base de données relationnelle. Plusieurs options étaient possibles pour mener ce projet lourd et très sensible. Le recours unique aux équipes internes n’était pas suffisant et une ESN devait être sollicitée. L’ESN pouvait intervenir soit sur un forfait global, soit sur un « coût au sprint », soit en régie… SNCF Connect & Tech a donc lancé un appel d’offres en sollicitant directement diverses ESN avec lesquelles elle avait déjà travaillé avec succès. Vincent Liboutet note : « les différentes réponses tenaient toute la route tant en termes de qualité, de coût, de temps… » Mais, de toute évidence, les équipes avaient peu apprécié que les incidents sur la nouvelle application SNCF Connect soient un sujet au Journal Télévisé de 20 Heures au moment de sa sortie. « Il s’agissait de ne pas refaire la Une du journal télévisé avec ce projet ! » soupire Vincent Liboutet.
Parmi les ESN sollicitées, WeScale a proposé son offre « La Fabrik ». Le principe de cette offre est de réaliser une co-construction entre l’ESN et son client avec une équipe mixte dédiée au projet mêlant à parité des collaborateurs de chaque entité. Pour Morgane Eckert, Delivery Manager chez WeScale, « l’objectif est l’autonomie du client avec une capacité à se séparer en douceur de l’ESN. » Le client, une fois le projet achevé, a en effet, avec cette méthode, reçu un transfert de compétences sur la plateforme mise en place du fait de l’équipe mixte.
Un choix technique et humain
Lorsque les ESN candidates ont présenté chacune leur offre, outre la démarche « La Fabrik », avec la capacité d’intégrer au projet des agents SNCF qui prendraient la suite, Vincent Liboutet a apprécié que « ceux qui allaient faire le projet étaient ceux qui faisaient la présentation : une équipe s’engageait sur tout le projet, proposant d’entrée de jeu des scénarios précis, sans que les seniors débutent et soient remplacés au bout de trois mois par des juniors ». A l’inverse, les autres ESN avaient des réponses très convenues, avec un engagement minimal et plusieurs phases successives d’analyse puis de réalisation. Cela dit, WeScale fait tout de même varier la composition de l’équipe en fonction de l’évolution des besoins. Ainsi, Morgane Eckert a rejoint l’équipe au bout de plusieurs mois.
En juillet 2022, l’équipe s’est mise en place. Sur les six membres, trois provenaient de la SNCF, trois de WeScale. Cette mixité a facilité l’intégration à l’ensemble SNCF Connect & Tech. « La Fabrik », c’était aussi une manière de rassurer les équipes internes, comme l’indique Vincent Liboutet : « elles craignaient que les projets sympathiques soient externalisés ». Cela dit, une fois le projet achevé, un des collaborateurs de la SNCF ayant un gros soucis de santé, un prestataire de WeScale a pu le remplacer le temps nécessaire en dehors de l’offre initiale, sous le régime de la régie. A cette difficulté près, l’équipe interne a effectivement repris en main le produit et continue aujourd’hui à le faire évoluer.
Changer le moteur tout en roulant
Selon les mots de Vincent Liboutet, le projet a consisté à « changer le moteur dans une voiture familiale tout en roulant sur un trajet de 1200 kilomètres où elle est en retard avec, à l’arrière, les enfants qui demandent quand on va arriver. » En parallèle de l’activité avec l’ancien système, la nouvelle plateforme a été testée de février septembre 2023 puis lancée en production peu après. « Depuis ce lancement, nous n’avons connu aucun incident de production » se réjouit Vincent Liboutet. Il ajoute : « les tests de performance ont permis de gagner sur ce point, en jouant sur les index par exemple, mais aussi en confiance en nous ».
A la base de données elle-même, il fallait évidemment ajouter les développements pour l’interfaçage avec le reste du SI, en l’occurrence réalisés en Java et Kotlin. « Il fallait, bien sûr, autant que possible, maintenir les contrats d’interfaces API et travailler avec les équipes concernées quand ceux-ci devaient évoluer, ne serait-ce que pour s’adapter au changement de type de base de données » explique Morgane Eckert. Durant une bonne partie du projet, les deux bases de données étaient utilisées en parallèle afin de réaliser les comparaisons nécessaires, avec plusieurs bascules à blanc. La vraie bascule finale a donc été, en quelque sorte, un non-événement.