“Il faut tout refaire.”

J’ai entendu cette phrase dans 8 missions sur 10. Et dans 8 cas sur 10, c’est faux. Ce qui est vrai, c’est que le système fait mal. Que les déploiements sont stressants. Que chaque changement casse autre chose. Que l’équipe est fatiguée.

Mais “il faut tout refaire” n’est pas un diagnostic. C’est un cri de douleur.

(Si quelqu’un dans votre équipe a prononcé cette phrase ce mois-ci, ne l’ignorez pas. Mais ne la prenez pas au pied de la lettre non plus.)

Le mirage de la refonte

Les refontes complètes sont séduisantes. On recommence à zéro. On fait “bien” cette fois. On utilise la stack moderne. On documente tout.

Voici ce qui se passe en réalité. La refonte prend 2x plus de temps que prévu. Pendant ce temps, l’ancien système doit continuer à tourner. Vous maintenez deux systèmes en parallèle. L’équipe est coupée en deux. Le nouveau système reproduit les bugs de l’ancien, parce que les mêmes personnes prennent les mêmes raccourcis sous la même pression.

L’alternative : la trêve technique

On arrête de livrer des features pendant 2 semaines. On rembourse la dette critique. On stabilise. On documente ce qui fait mal. On automatise ce qui peut l’être.

Ce n’est pas glamour. Personne ne fait de keynote sur “on a passé 2 semaines à écrire des tests”. Mais les résultats sont mesurables.

flowchart TD
    R["Refonte complète"] --> R1["12-18 mois"]
    R --> R2["2 systèmes en parallèle"]
    R --> R3["Équipe coupée en deux"]
    R --> R4["Risque : 50% d'échec"]
    
    T["Trêve technique"] --> T1["2 semaines"]
    T --> T2["Un seul système amélioré"]
    T --> T3["Équipe soudée"]
    T --> T4["Résultats mesurables immédiatement"]
    
    class R alerte
    class T ok

La trêve technique + modernisation incrémentale donne les mêmes résultats sans le big bang.

Sources

  • Observations terrain — missions CTO fractionné

Pour aller plus loin

  • Feathers, M. — Working Effectively with Legacy Code, Prentice Hall, 2004
  • Fowler, M. — Refactoring, Addison-Wesley, 2018
  • Ford, N., Parsons, R. & Kua, P. — Building Evolutionary Architectures, O’Reilly, 2017

Glossaire

  • CTO : Chief Technology Officer — directeur technique.
  • Feature : Fonctionnalité.
  • Legacy : Se dit d’un code ancien, encore en production, que plus personne ne souhaite modifier.