De la nécessité de refondre de temps à autre…

Au bout de quelques années, la maintenance des applications informatiques se heurte fatalement à des problématiques d’évolutivité : même avec la meilleure volonté du monde, l’empilement de couches correspondant à diverses évolutions fonctionnelles aboutit souvent à un agrégat de rustines. L’architecte de l’application initiale n’étant pas devin, il n’avait pu anticiper les évolutions des besoins utilisateurs.

Les applications métiers

De fait, il faut, de temps à autre, refondre une application pour repartir sur des bases saines. Et ce d’autant plus que les méthodes et bonnes pratiques de développement gagnent chaque année en maturité : la refonte permettra de bénéficier de ces évolutions.
Il existe heureusement des fondamentaux qui permettent d’espacer ces refontes au maximum :

  • Le développement objet par framework : il permet une architecture modulaire et la plus maintenable possible ;
  • Les architectures orientées services (SOA) : elles étendent cette modularité à l’échelle du système d’information, et minimisent le code à modifier en cas de changement de périmètre fonctionnel ;

Les langages de programmation

Ce qui est vrai pour les applications l’est aussi pour les langages.

Ainsi, les concepteurs de Java ont essayé de résoudre les limites de C++ (la gestion de la mémoire, en particulier). Et les concepteurs de .NET ont essayé de reprendre les bons côtés de Java, en simplifiant le travail du développeur (la comparaison de Java et .NET a ses limites, car elle oppose un monde ouvert à un monde fermé).
Ruby On Rails est le dernier langage en date à apporter une réflexion approfondie sur la productivité du développeur dans un contexte Web. Il dispose d’un atout important : il peut être exécuté sur un serveur d’application Java grâce au runtime Jruby. Ce langage objet simple et productif devrait intéresser de plus en plus les entreprises qui souhaitent lancer des refontes dans les années à venir…

Les progiciels & systèmes d’exploitation

La nécessité de refonte s’applique aussi aux progiciels : ainsi Oracle et SAP sont en train de réécrire leur plate-forme en architecture SOA. De la même manière, IBM réécrit ses outils de collaboration Lotus en Java.

Coté système d’exploitation, Apple a complètement réécrit Mac OS il y a quelques années.
Les nombreux débats autour de la sortie de Vista élèvent la question de la refonte de Windows… Pour ma part, je pense depuis déjà quelques années que le système d’exploitation innovant de Microsoft est Windows Mobile, et qu’il devrait un jour remplacer Windows dans les entreprises (cf. cet article du Journal du Net).

Et vous, qu’en pensez vous?

Ce billet fait suite à un échange avec Sébastien Adgnot de SQLI Paris.

Retour en haut