Pour un développeur ou expert technique, la différence entre la mise à jour, la migration et la refonte technique est très évidente mais qu’est-ce que cela signifie pour un client ou un utilisateur final ?
Nous avons été confronté plusieurs fois à cette même question par nos clients et avons décidé de simplifier les choses dans un article détaillé.
La mise à jour est un concept connu par toute personne qui utilise un appareil électronique quelconque. Il s’agit d’appliquer des corrections et/ou améliorations à un système qui est devenu obsolète. C’est la même chose pour les sites web et applications. Que ce soit un CMS comme WordPress et Drupal ou un Framework comme Symfony, toutes les techno reçoivent des mises à jours en moyenne chaque mois pour 2 raisons principales :
- Patcher des vulnérabilités issues de failles de sécurité découvertes par la communauté ou par des pirates informatiques.
- Améliorer le fonctionnement généralement en optimisant le code ou en corrigeant des bugs qui causaient des problèmes.
Ce sont pour ces raisons là que les services de maintenance ou TMA existent. Ils font la veille des technos et appliquent les mises à jour pour garantir la continuité et le bon fonctionnement des plateformes.
Ceci dit, les choses se compliquent si nous creusons un peu…
Les technos comme les CMS et Framework sont constituées, en plus de leur core / socle qui est leur structure de base, de composants appelés aussi modules ou plugins pour compléter leur fonctionnement et apporter des fonctionnalités supplémentaires à leur conception de base, par exemple : modules multilingue, optimisation d’images, génération de formulaires…
Ces composants ou modules ne sont généralement pas conçus par les créateurs des technos, chose qui rend leurs qualités et surtout leurs mises à jour très relatives.
Ainsi, quand un site web par exemple est développé avec des modules ou composants qui ne sont pas mis à jour régulièrement, il se peut que ces derniers cessent de fonctionner si le site web évolue plus qu’ils ne supportent. Dans ce cas-là il faut, soit faire évoluer le module manuellement ou bien le remplacer / refaire carrément.
Cette situation est rendue plus difficile si le créateur de la techno décide de faire une mise à jour majeur de cette dernière. Par exemple le CMS Drupal 8 a tellement été amélioré / évolué par ses créateurs que nous pouvons le considérer comme un CMS complètement différent de Drupal 7.
Ces cas de figure justifient une migration qui est le fait de devoir refaire une petite ou grande partie des développements d’un site ou d’une application pour pouvoir mettre à jour le core en préservant le fonctionnement des composants / modules.
La refonte technique quand à elle, est nécessaire quand les nouvelles versions des technos ont tellement évolué qu’il n’est pas possible d’adapter la structure et/ou composants des projets (sites ou applications) à ces nouvelles versions. Comme une maison qui n’a pas été conçue pour supporter plusieurs étages, il faut refaire les fondations à zéro pour avoir les bases adaptées.
Pour résumer, la mise à jour est une action de maintenance continue tant que la compatibilité du code n’est pas impactée.
La migration est quand une partie de la compatibilité du code est impactée et il faut donc refaire cette partie pour que le site ou l’application fonctionne avec la nouvelle mise à jour de la techno.
La refonte est quand la structure elle-même du projet n’est pas supportée par les nouvelles versions des technos.
Toutes ces raisons montrent qu’il est très important de faire une bonne analyse conceptuelle en amont par un expert technique pour prendre les bonnes décisions et mettre les bonnes structures afin de maximiser la pérennité des projets sans être obligé de les refaire plus tôt que nécessaire.