Compagnie internationale de transport maritime · données de marché et contrats

D'un système avec une interface de 2011 à un nouveau produit en 9 semaines

Un système interne de données de marché de 237 000 lignes, bâti sur des composants d'interface dépassés de 14 ans, réécrit en un nouveau produit. L'analyse menée avant le code a prouvé que 65 % de l'ancien système était mort — le client n'a payé que pour ce qui était vivant.

  • 9 semaines jusqu'à un nouveau produit
  • 65 % du périmètre supprimé après analyse
  • 237 000 lignes de code legacy analysées

Le client

Une compagnie internationale de transport maritime dont le travail quotidien dépend d'un système interne de données de marché et de contrats — saisie de données, recherches, import/export Excel, rapports PDF et rapports planifiés par e-mail pour la direction et les partenaires.

Le défi

Le système avait plus de dix ans : 237 000 lignes de code, une interface bâtie sur des composants de 2011 non maintenus depuis des années, et une base de données de 119 tables sédimentée de fonctionnalités oubliées depuis longtemps. Les licences étaient antiques, l'hébergement lié à une infrastructure obsolète, et chaque modification relevait de l'archéologie.

Le réflexe classique aurait été de « tout réécrire à l'identique ». C'est exactement ce que nous n'avons pas fait.

L'approche

Une reconnaissance complète avant le devis. Nous avons démonté l'ancien système — et, plus important encore, sa base de données en production. Les constats parlent d'eux-mêmes : environ 35 % de la base de données était invisible depuis le code — un trigger caché, des procédures mortes inutilisées depuis 2016, 19 vues que personne ne consulte, des tables sans une seule ligne de code qui les référence.

Élaguer avant de construire. L'analyse est devenue une conversation-checklist avec le client : qu'utilisez-vous réellement dans tout cela ? La réponse — environ un tiers. 65 % du système a été supprimé d'un commun accord avant la première ligne de nouveau code. Le client n'a pas payé pour porter du poids mort.

Vérifier la parité, pas l'intuition. Des données réelles de l'ancien système ont été importées pour une comparaison ligne à ligne, et un audit indépendant a confronté le nouveau système à l'ancien fonctionnalité par fonctionnalité — les écarts confirmés ont rejoint un plan, pas les surprises d'après-lancement. Deux versions intermédiaires sont passées par les retours des utilisateurs réels.

Un socle moderne sans les vieilles chaînes. Le nouveau système tourne sur .NET 10 avec des composants d'interface libres de licence, des tâches de fond automatisées, des rapports PDF et Excel et une piste d'audit sur chaque action. L'ancien système a continué de tourner, intact, pendant toute la transition.

Le résultat

  • Un nouveau produit, avec sa propre identité de marque, en environ 9 semaines — y compris deux cycles de retours client et une passe finale de consolidation.
  • Le client a payé pour ~35 % de l'ancien système — la partie vivante ; le reste a été prouvé mort et est resté dans le passé.
  • Plus aucuns frais de licence pour les composants d'interface ; une apparence moderne que les utilisateurs ont adoptée sans perdre leurs habitudes.
  • Une analyse documentée qui reste chez le client — la carte du système existe désormais, et la prochaine évolution ne commencera pas par de l'archéologie.

La ligne de code la plus précieuse est souvent celle qu'on n'écrit pas : un tiers du prix du projet a été économisé parce que nous avons d'abord prouvé ce qui était mort.

Technologies

.NET 10 · ASP.NET Core MVC · EF Core 9 · MariaDB · Quartz.NET