Une migration technique consiste à faire évoluer tout ou partie du socle technologique d'une application existante : changement de version de framework, de langage, de base de données ou d'infrastructure. L'objectif est de moderniser sans perdre la valeur métier accumulée dans le code existant.
Plusieurs stratégies existent selon le contexte. La migration progressive (strangler fig pattern) remplace les composants un par un sans interrompre le service. La migration big bang reconstruit l'ensemble d'un coup — plus risquée, elle est parfois nécessaire quand le socle existant est trop éloigné de la cible. Dans tous les cas, un audit technique préalable est indispensable pour cartographier les dépendances et estimer l'effort réel.
Les erreurs les plus fréquentes : sous-estimer l'effort de migration des données, négliger les tests de non-régression, et vouloir migrer et ajouter des fonctionnalités en même temps. Une migration réussie est une migration qui ne change rien pour l'utilisateur final — sauf la fiabilité et la maintenabilité du système.