Les programmes informatiques sont un peu comme des être vivants. Au tout début, ils émergent d'une idée (la cellule souche ?), qui se matérialise sous la forme d'une série d'instructions ésotériques saisie au clavier, jusqu'à devenir un ensemble cohérent et opérationnel. Puis ils continuent à prendre du poids, souvent utile (la masse musculaire) mais parfois superflu (la graisse), le tout s'accumulant presque en permanence. Enfin, un jour, l'organisme s'essouffle, cesse de fonctionner… et s'éteint doucement.
Dans le cas de Messenger, lancé en tant qu'application indépendante en 2011, la croissance a été fulgurante, avec l'ajout de multiples fonctionnalités en peu de temps. La conséquence de cette évolution rapide est un système devenu prématurément surchargé, complexe, rigide… en un mot, obsolète. Dans ce genre de circonstances, qu'elles surviennent tôt ou tard, la seule décision qui s'impose est la mise à la retraite et le remplacement par un nouveau logiciel, tout neuf, tout frais, optimisé, à l'état de l'art.
Or, pour évident que paraisse ce raisonnement, il n'en reste pas moins extrêmement difficile à mettre en œuvre dans la plupart des entreprises. En effet, plus le bébé prend de l'âge et de l'embonpoint, plus ses géniteurs et tous ceux qui l'ont nourri sont réticents à l'envoyer au rebut, surtout quand ils considèrent les coûts, les efforts et les risques importants que représente la création d'une solution de substitution, en repartant de zéro. Voilà pourquoi la démarche de Facebook constitue un exemple digne d'intérêt.
Le vrai défi est d'abord de prendre conscience du vieillissement de l'existant. À le voir opérer quotidiennement, il donne l'impression d'être aussi performant qu'aux premiers mois. Pourtant, le temps fait son œuvre, sournoisement, face auquel l'arrivée d'un successeur agit comme une révélation. Ainsi, avec Messenger, 1,7 million de lignes de code ont été réduites à 360 000, l'application est plus compacte, plus simple (d'un point de vue architectural) et beaucoup plus rapide, pour le bénéfice de tous.
En arrière-plan de l'initiative, il n'est pas uniquement question d'optimiser le logiciel à un instant donné. L'enjeu est également de lui redonner la capacité de s'adapter à un contexte qui change et d'évoluer de manière souple et efficace. Grâce à la remise à plat, il redevient facile de modifier les fonctions offertes ou d'en introduire d'autres, et encore plus quand les leçons sont tirées des erreurs du passé et que des mécanismes (et, pour Facebook, des ressources) sont en place afin de garantir cette flexibilité.
Dans tous les grands groupes ayant entamé leur informatisation dans les années 70-80, survivent des applications critiques datant de 20 ans ou plus. Peut-être n'ont-elles pas grandi aussi vite que celles de Facebook mais il est certain qu'elles ont subi une litanie de mises à jour qui les ont rendues progressivement inefficaces. J'encourage leurs responsables, même s'ils sont convaincus qu'elles ne sont pas dépassées, même s'ils ont l'impression qu'elles sont performantes, à envisager de les remplacer : vous serez surpris des gains obtenus et vous ne regretterez pas votre investissement !