Aller au contenu principal

38. Moderniser par trajectoires plutôt que par remplacement total

Pourquoi ce chapitre existe

La réécriture complète promet une rupture nette avec les limites de l'existant. Elle impose aussi de recréer simultanément des comportements, données, intégrations, opérations et connaissances accumulées. Pendant ce temps, le système historique continue de recevoir des demandes et des correctifs. Le risque n'est pas la réécriture elle-même ; c'est de la traiter comme une livraison unique dont la valeur n'apparaîtra qu'à la fin.

La modernisation incrémentale découpe une destination en capacités vérifiables, chacune apportant une réduction de risque ou une valeur indépendante. Elle accepte que le système transitoire soit imparfait, à condition que sa complexité et sa date de retrait soient gouvernées.

Les idées essentielles

  • Une trajectoire de modernisation est une suite d'hypothèses testées, pas un calendrier de composants à déplacer.
  • Le premier incrément doit réduire une incertitude déterminante : compatibilité, volume, exploitation, données ou adoption.
  • Les façades, stranglers, doubles écritures et comparaisons sont des mécanismes de transition ; ils exigent une stratégie de retrait.
  • La réussite se mesure à une capacité acquise et à un risque retiré, non au nombre de lignes réécrites.

Choisir une tranche de modernisation

Un bon premier flux est significatif mais limité : il traverse la nouvelle frontière, possède des critères de résultat et peut être comparé à l'ancien. Détourner le parcours le plus critique sans observabilité ni retour est rarement judicieux. Déplacer un flux sans utilisateur ni apprentissage ne l'est pas davantage.

ÉtapeValeur de l'étapePreuve à obtenir
FaçadeStabilise le contrat à l'entrée du legacyLes consommateurs changent sans connaître l'intérieur
Lecture parallèleCompare l'ancien et le nouveau sans impact utilisateurÉcarts classés et expliqués
Flux limitéExpose le nouveau parcours à une cohorteRésultat, latence et opérations tenables
Migration d'usageRéduit réellement la dépendance à l'ancienConsommateurs identifiés et déplacés
RetraitSupprime le coût de double maintenanceAncien chemin, données et alertes nettoyés

Garder la transition visible

Pendant une modernisation, le plus grand risque devient parfois le système temporaire : deux sources de vérité, flags accumulés, équipes qui ne savent plus quel chemin est actif. Une carte de transition doit indiquer les flux migrés, les compatibilités en cours, le propriétaire, les mesures de comparaison et les critères de retrait.

Comparer avant de basculer lorsque le résultat le permet

Exécuter ancien et nouveau calcul en parallèle, puis mesurer et expliquer les écarts, donne une preuve plus forte qu'une bascule fondée sur des cas de test seuls. Cette stratégie a un coût ; elle est particulièrement précieuse pour les règles métier ou données difficiles à reconstruire.

Anti-patterns

Garder deux systèmes en parallèle sans horizon

La double écriture ou double lecture peut être nécessaire. Sans mesure d'adoption, plan de réconciliation et date de décision, elle devient une architecture permanente plus complexe que l'originale.

Déplacer le code sans déplacer la responsabilité

Un nouveau service qui continue à lire les tables, règles et opérations internes du legacy n'est pas autonome. La modernisation doit faire évoluer contrats, propriété de données et capacité d'exploitation, pas seulement l'emplacement du code.

Considérer la migration comme réussie au premier trafic

Une cohorte verte ne prouve pas la compatibilité avec les cas rares, les données historiques, les périodes de charge ou l'exploitation d'incident. Prévoir une observation adaptée et élargir en fonction de preuves, pas d'un calendrier.

Bonnes pratiques

Financer le nettoyage dans chaque étape

Un incrément qui ajoute un adaptateur, une compatibilité ou un flag doit inclure ce qui permettra son retrait. Les étapes qui ne produisent que de la complexité de transition sont un signal que la trajectoire doit être revue.

Conserver les décisions de comparaison

Les écarts entre ancien et nouveau ne sont pas tous des défauts : certains révèlent une correction volontaire, une donnée corrompue ou un comportement jusqu'alors inconnu. Conserver la décision et la justification évite de réouvrir les mêmes questions à chaque lot.

Checklist — Une trajectoire de modernisation est-elle gouvernable ?

  • Quelle contrainte dominante justifie la transformation, et quel résultat visible doit s'améliorer ?
  • Quel premier incrément réduit une incertitude essentielle ?
  • Comment ancien et nouveau seront-ils comparés, observés ou réconciliés ?
  • Quelles sources de vérité, contrats et responsabilités coexistent temporairement ?
  • Quel propriétaire et quel critère organisent le retrait de chaque mécanisme transitoire ?
  • Quelle preuve déclenche l'élargissement, la correction ou l'arrêt ?

À retenir

Moderniser n'est pas remplacer un système ancien par un système nouveau. C'est retirer progressivement les contraintes qui empêchent de changer, en livrant à chaque étape une capacité crédible et un chemin explicite pour simplifier la transition.