17 sept. 2025
Comprendre avant de reconstruire
La plupart des projets logiciels échouent non pas parce que le code est mauvais, mais parce que personne n’a réellement compris le système qu’il remplace.
Dans beaucoup d’organisations, lorsqu’un logiciel commence à poser problème, la réaction est presque immédiate : il faut changer d’outil, reconstruire, automatiser, repartir de zéro. Cette réaction est compréhensible. Elle donne l’impression d’agir vite et de reprendre le contrôle. Pourtant, dans une grande majorité des cas, elle ne fait que déplacer le problème.
Un logiciel devient difficile à maintenir rarement par accident. Il le devient parce qu’il a été modifié sans cadre clair, parce que des décisions ont été prises sans être documentées, parce que les usages réels ont dérivé sans que personne ne s’en aperçoive. Avec le temps, le système cesse d’être lisible. Et lorsqu’un système n’est plus lisible, il n’est plus pilotable.
La tentation est alors de reconstruire. Mais reconstruire sans comprendre revient à reproduire les mêmes fragilités sous une autre forme. Les outils changent, les interfaces changent, mais les mécanismes qui ont conduit à la situation initiale restent présents.
Avant toute transformation, il est nécessaire de ralentir. Observer comment le logiciel est réellement utilisé, identifier les points où il soutient réellement l’activité, comprendre ce qui fonctionne encore, même imparfaitement. Dans beaucoup de cas, ce travail révèle que le problème principal n’est pas le logiciel lui-même, mais la manière dont il a été laissé évoluer.
Comprendre un système signifie pouvoir expliquer pourquoi il existe sous cette forme. Pourquoi certaines décisions ont été prises, pourquoi certaines contraintes apparaissent, pourquoi certaines pratiques se sont installées. Tant que ces questions restent sans réponse, toute intervention reste fragile.
Ce travail de compréhension est rarement spectaculaire. Il ne produit pas immédiatement de nouvelles fonctionnalités. Il ne donne pas l’impression d’avancer vite. Pourtant, c’est lui qui conditionne tout le reste. Un système compris devient prévisible. Un système prévisible peut être modifié sans créer de nouvelles instabilités. Et un système modifiable sans risque peut évoluer dans le temps.
Dans la pratique, cela signifie prendre l’habitude de clarifier avant d’agir. Noter les décisions, rendre visibles les dépendances, expliciter les usages réels plutôt que les usages supposés. Cela signifie aussi accepter qu’un logiciel n’est pas seulement un ensemble de fonctionnalités, mais une accumulation de choix, souvent implicites, qui structurent l’activité d’une organisation.
Lorsqu’une organisation retrouve cette capacité à comprendre ses propres systèmes, quelque chose change. Les décisions deviennent plus calmes, les évolutions plus maîtrisées, les urgences moins fréquentes. Le logiciel cesse d’être une source d’inquiétude permanente et redevient un outil au service de l’activité, mais un outil que l’on comprend et que l’on peut transmettre.
Comprendre avant de reconstruire n’est pas un ralentissement. C’est la seule manière d’éviter de reconstruire plusieurs fois le même problème.
