Tous les articles

Maintenance et évolution7 juillet 20266 min de lecture

Refonte d’application : moderniser un outil métier sans tout arrêter

Refonte d’application : quand la justifier, comment choisir entre correction, remplacement progressif ou reconstruction, et préparer la migration.

Un vieux tableau électrique d’un côté, de l’autre une tablette affichant des graphiques dans un bureau moderne

Un logiciel interne qui vieillit ne justifie pas automatiquement une reconstruction complète. Une refonte d’application se décide après avoir compris ce qui bloque vraiment : la technique, l’usage, les données ou les connexions avec les autres outils. Selon la réponse, corriger, restructurer, remplacer module par module ou tout reconstruire n’ont ni le même coût, ni le même risque pour l’activité.

Cet article propose une manière de mener cet arbitrage, puis de préparer la migration pour que l’équipe continue à travailler pendant le chantier.

Les signaux qui justifient de se poser la question

Aucun de ces signaux ne suffit seul, mais leur accumulation mérite un examen. Posez-vous les questions suivantes, avec les personnes qui utilisent l’outil et celles qui le maintiennent.

  • Chaque modification demande-t-elle beaucoup plus de temps qu’elle ne le devrait, avec la crainte de casser autre chose ?
  • Les composants techniques (langage, framework, base de données) sont-ils encore maintenus par leurs éditeurs ?
  • Une seule personne comprend-elle réellement le fonctionnement de l’outil ?
  • Les équipes ont-elles recréé des fichiers parallèles parce que l’outil ne couvre plus leur travail ?
  • L’application peut-elle échanger des données avec les autres outils de l’entreprise, ou tout passe-t-il par des exports manuels ?
  • Les utilisateurs qui travaillent hors du bureau peuvent-ils s’en servir dans leurs conditions réelles ?

Si les difficultés tiennent surtout à des mises à jour repoussées ou à des évolutions mal arbitrées, une maintenance évolutive mieux organisée peut suffire. La refonte devient pertinente quand la structure même de l’application empêche d’avancer.

Cinq réponses possibles, pas une seule

OptionQuand l’envisagerPoint de vigilance
Corriger et mettre à niveauLa structure est saine, les composants sont simplement en retardNe règle pas un problème d’usage ou de conception
Restructurer le codeLe fonctionnement convient, mais chaque modification est risquéeTravail peu visible pour les utilisateurs, à expliquer en interne
Remplacer progressivementCertaines parties bloquent, d’autres fonctionnentFaire cohabiter ancien et nouveau demande une organisation rigoureuse
Reconstruire d’un blocL’existant est trop fragile pour être conservé, même partiellementLong tunnel sans livraison, risque d’oublier des règles implicites
Adopter un logiciel standardLe processus est courant et peu spécifique à votre activitéVérifier la couverture de vos cas réels et la récupération des données

Le bon choix dépend de vos contraintes, pas d’une préférence de principe. Un logiciel standard peut être la meilleure réponse quand vos règles ressemblent à celles de nombreuses entreprises. Un logiciel métier sur mesure se justifie quand des règles importantes, propres à votre activité, restent mal couvertes par les options évaluées.

Pourquoi le remplacement progressif est souvent examiné en premier

Reconstruire tout un système en une fois paraît plus propre sur le papier. En pratique, le chantier dure, les utilisateurs continuent d’avoir besoin d’évolutions sur l’ancien outil, et il devient difficile de reproduire tous les comportements existants, dont certains ne devraient d’ailleurs pas l’être. Martin Fowler décrit ces risques et propose une alternative connue sous le nom de « Strangler Fig » : construire le nouveau à côté de l’ancien, puis lui transférer les fonctions par étapes.

Concrètement, on choisit un premier périmètre délimité — par exemple la saisie des demandes, ou la consultation par les équipes terrain — et on le met en service pendant que le reste continue de tourner dans l’ancien système. Chaque étape livre quelque chose d’utilisable et permet d’ajuster la suite. Cette approche a aussi ses coûts : il faut synchroniser les données entre les deux mondes et maintenir temporairement deux outils. Elle se justifie surtout quand l’activité ne peut pas s’arrêter.

Commencer par l’inventaire, pas par les écrans

Un vieux logiciel contient des années de décisions métier, souvent non documentées. Avant de dessiner la nouvelle interface, établissez quatre inventaires.

  1. Les règles : calculs, validations, statuts, exceptions. Beaucoup ne sont écrites que dans le code ou dans la mémoire des utilisateurs.
  2. Les données : tables, volumes, historique à conserver, qualité réelle (doublons, champs mal remplis, formats variables).
  3. Les connexions : outils alimentés par l’application ou qui l’alimentent, imports et exports réguliers, y compris manuels.
  4. Les usages : qui utilise quoi, à quelle fréquence, dans quelles conditions. Certaines fonctions ne servent plus ; d’autres sont contournées.

Cet inventaire sert aussi à retirer. Une refonte est l’occasion d’abandonner ce qui ne sert plus, au lieu de reproduire fidèlement un fonctionnement qui s’est construit par accumulation.

La migration des données, le vrai chantier

Les écrans se redessinent ; l’historique, lui, doit être transféré sans perte ni déformation. Décidez tôt quelles données migrer, lesquelles archiver en lecture seule, et comment traiter les enregistrements incohérents. Prévoyez des migrations d’essai sur une copie, contrôlées par des personnes qui connaissent les dossiers : elles repèrent vite un montant ou un statut qui ne correspond pas.

Si l’application traite des données personnelles, la migration est aussi le moment de vérifier ce qui doit être conservé, par qui et combien de temps. Nous abordons ces questions dans l’article sur la souveraineté des données d’une application.

Préparer la bascule

Une mise en service se prépare comme une opération : date choisie en dehors des périodes chargées, plan de retour arrière si un problème bloquant apparaît, personnes disponibles pour répondre aux questions les premiers jours. Associez quelques utilisateurs dès les maquettes puis pendant les tests : ils signalent les manques plus tôt et aident leurs collègues au moment du changement.

Les erreurs fréquentes

  • Copier l’ancien outil à l’identique avec une interface plus récente, sans questionner les usages.
  • Sous-estimer la reprise des données et la découvrir en fin de projet.
  • Promettre une date de bascule avant d’avoir fait l’inventaire.
  • Arrêter toute évolution de l’ancien outil pendant un chantier long, au risque de frustrer les équipes.
  • Oublier la maintenance du nouvel outil : une refonte non suivie vieillira à son tour.

Questions fréquentes

Faut-il toujours reconstruire un logiciel devenu obsolète ?
Non. Une mise à niveau, une restructuration du code, un remplacement progressif ou un logiciel standard peuvent convenir. Le choix dépend de ce qui bloque réellement.
Peut-on moderniser une application sans interrompre l’activité ?
Un remplacement progressif, où ancien et nouvel outil cohabitent un temps, permet de limiter les interruptions. Il demande de synchroniser les données et d’organiser chaque bascule.
Combien de temps dure une refonte d’application ?
Cela dépend du nombre de règles, du volume et de la qualité des données, et des connexions à reprendre. Une estimation sérieuse vient après l’inventaire de l’existant.
Que devient l’historique des données ?
Il est migré, archivé en lecture seule ou supprimé selon des règles décidées en amont. Des migrations d’essai contrôlées par les utilisateurs limitent les mauvaises surprises.

Sources

  1. Strangler Fig ApplicationMartin Fowler
  • refonte
  • logiciels métier
  • modernisation

Pour poursuivre la lecture

Parlons de votre projet