Aller au contenu principal
Solutions

Refonte complète vs reprise de code existant

Repartir de zéro est toujours plus séduisant que reprendre le code de quelqu'un d'autre. C'est aussi la décision qui fait perdre le plus de temps quand l'application existante fonctionne encore.

l'emporte
la reprise de l'existant5
la refonte complète3

sur 8 critères comparés

En un coup d'oeil

Critère par critère

Ce qui sépare vraiment la reprise de l'existant de la refonte complète, sans arbitrage caché.

Continuité de service pendant les travauxMaintenue, les évolutions continuent d'être livrées(avantage)Gelée : deux systèmes à maintenir, ou aucune évolution pendant des mois
Délai avant le premier bénéfice visibleQuelques semaines(avantage)Plusieurs mois, parfois plus d'un an
Coût totalProgressif, arrêtable à tout moment(avantage)Élevé et engagé dès le départ
Risque de perte de règles métierFaible, le code reste la référence(avantage)Élevé : les règles implicites ne sont documentées nulle part
Liberté d'architectureContrainte par les choix passésTotale(avantage)
Capacité à changer de technologieLimitée, sauf migration par modulesComplète(avantage)
Motivation des équipes techniquesMoindre, reprendre du code ancien est ingratForte au départ, elle s'érode avec la durée du chantier(avantage)
Prévisibilité du budgetBonne, par lots successifs(avantage)Faible tant que le périmètre réel n'a pas été inventorié
Résumer cette page avec une IA

Mis à jour le

Sommaire(6 sections)

Le biais qui fausse presque toutes ces décisions

Tout développeur qui découvre le code de quelqu'un d'autre le trouve mauvais. C'est un fait de métier, pas un jugement : on ne voit pas les contraintes qui ont produit ces choix, on ne connaît pas les urgences ni les arbitrages, et la lecture d'un code inconnu est laborieuse alors que l'écriture d'un code neuf est agréable.

Ce biais produit une recommandation quasi automatique : « il faut tout refaire ». Elle est sincère, et elle est souvent coûteuse. La refonte se vend d'autant mieux qu'elle est plus chère et plus longue que la reprise.

La bonne méthode consiste donc à exiger des critères objectifs avant d'accepter cette conclusion.

Ce que coûte réellement une refonte

Une refonte ne coûte pas le prix du développement neuf. Elle coûte ce prix, plus trois postes qui n'apparaissent jamais dans le devis initial.

Le premier est la découverte des règles métier implicites. Une application en production depuis dix ans contient des centaines de comportements dont personne ne se souvient, chacun ajouté pour une raison valable. Ils ne sont documentés nulle part ailleurs que dans le code, et leur absence dans la nouvelle version se découvre en production, une par une, sous forme de réclamations.

Le deuxième est le double run. Pendant la refonte, l'ancien système doit continuer de fonctionner et souvent d'évoluer. Vous financez deux systèmes, ou vous gelez les évolutions pendant un an. Aucune des deux options n'est confortable.

Le troisième est la reprise de données. Migrer des données produites par un modèle ancien vers un modèle neuf est un projet en soi, et c'est régulièrement lui qui décale la mise en service.

Les cinq signaux qui justifient une refonte

Il en existe, et il faut les nommer, sinon la reprise devient un dogme aussi coûteux que la refonte systématique.

La technologie n'est plus maintenue. Un langage ou un framework sans correctif de sécurité expose à un risque qu'aucune couche de protection ne compense durablement. Ce signal se traite sans discussion.

Le modèle de données bloque le métier. Si l'évolution attendue implique de repenser les entités centrales, la refonte devient l'option raisonnable, parce que tout le reste en dépend.

Le coût des corrections dépasse celui du neuf. Quand une modification de trois jours en génère cinq de régressions, l'application coûte plus cher à maintenir qu'à remplacer. Cet indicateur se mesure, il ne se ressent pas.

Plus personne ne maîtrise le système. Un logiciel dont l'unique connaisseur est parti et qui n'a ni documentation ni tests est un actif à risque, même s'il tourne correctement aujourd'hui.

Le métier a changé. Si l'application répond à une organisation qui n'existe plus, la remettre en état revient à réparer soigneusement le mauvais objet.

La reprise, et ce qu'elle demande vraiment

Reprendre du code existant n'est pas s'en accommoder. C'est une démarche en trois temps qui se pilote.

D'abord, un état des lieux : cartographie des modules, mesure de la couverture de tests, inventaire des dépendances obsolètes, relevé des failles de sécurité connues. Quelques semaines suffisent, et cette étape produit la seule information capable de trancher entre les deux options.

Ensuite, la sécurisation : ajouter des tests automatisés sur les parcours critiques, mettre à jour les dépendances dangereuses, remettre en place un environnement de déploiement fiable. À ce stade, l'application n'a pas changé pour l'utilisateur, mais elle est redevenue modifiable.

Enfin, la modernisation par modules : chaque partie problématique est réécrite quand une évolution la concerne, pas avant. Le bénéfice est immédiat et le budget se pilote lot par lot.

La troisième voie : la refonte progressive

Entre les deux, il existe un chemin qui permet de refondre sans arrêter le service. On isole un domaine fonctionnel, on le réécrit dans la nouvelle architecture, on le branche à l'ancien système, puis on passe au suivant.

L'ancien système se vide progressivement de sa substance jusqu'à pouvoir être éteint. Cette approche demande plus de rigueur qu'une refonte en bloc, notamment sur la synchronisation des données entre les deux mondes, mais elle supprime l'effet tunnel et rend le chantier arrêtable à tout moment.

C'est l'approche que nous recommandons dans la grande majorité des dossiers de reprise, parce qu'elle protège la seule chose qui compte pendant les travaux : la continuité du service rendu aux utilisateurs.

La question à poser avant de décider

Une seule, et elle est redoutable : que se passe-t-il si le projet s'arrête au bout de six mois ?

Avec une reprise ou une refonte progressive, vous avez livré des améliorations utilisées en production. Avec une refonte en bloc, vous avez un système inachevé, un ancien système à bout de souffle, et rien à montrer. Cette asymétrie suffit le plus souvent à trancher.

Verdict

Alors, laquelle pour vous ?

Aucune des deux options n'est meilleure dans l'absolu. Elles s'adressent à des situations différentes.

Choisissez la reprise de l'existant si...

  • L'application rend encore le service attendu, malgré ses défauts.
  • Les utilisateurs s'en servent tous les jours : une interruption serait visible.
  • Les problèmes sont localisés dans quelques modules identifiables.
  • Le budget doit produire un bénéfice visible en quelques semaines.
  • Personne ne sait décrire exhaustivement les règles métier implémentées.

Choisissez la refonte complète si...

  • La technologie n'est plus maintenue et expose à un risque de sécurité non corrigeable.
  • Le modèle de données rend impossibles les évolutions attendues.
  • Le coût d'une correction dépasse régulièrement celui d'un développement neuf équivalent.
  • Le métier lui-même a changé : ce n'est plus le même logiciel qu'il faudrait.
  • Vous pouvez financer un chantier long sans geler les évolutions courantes.

Sur ces 8 critères, la reprise de l'existant l'emporte. Sur les vôtres ?

Un tableau compare des situations moyennes. Votre volumétrie, vos intégrations et votre échéance changent le verdict. 30 minutes avec un architecte suffisent à le vérifier.

l'emporte
la reprise de l'existant5
la refonte complète3

sur 8 critères comparés

La méthode Koul

Du premier atelier à la mise en production

Quatre étapes pour transformer votre intuition en produit durable, sans perte de temps ni dérive de scope.

Cadrage stratégique

2 à 3 semaines

On cadre le projet : enjeux, périmètre et feuille de route.

Conception design UX/UI

3 à 5 semaines

On conçoit l'expérience et on valide les maquettes avant tout code.

Développement & Recette

3 à 6 mois

On développe et on recette par incréments livrés régulièrement.

Maintenance Applicative (TMA)

En continu

On maintient, supervise et fait évoluer le produit dans la durée.

Nos expertises

Maîtrisez votre trajectoire technologique

Nous donnons de l'envergure à vos ambitions en sécurisant le cycle de vie complet de vos solutions. En optimisant vos acquis et en bâtissant vos futurs standards, nous faisons de votre écosystème technologique un pilier solide de votre avantage concurrentiel.

Développement web sur-mesure

Applications web, logiciels métiers et SaaS sur-mesure. Conception nouvelle, alignée sur vos processus et votre vision long terme.

Reprise de logiciel existant

Récupérez un développement bloqué, modernisez votre patrimoine applicatif. On reprend la main sans tout casser, et on remet la livraison en mouvement.

Automatisation & IA

Automatisez vos processus métier avec l'IA : OCR, génération de documents, chatbots. Moins de tâches manuelles, plus de temps pour l'essentiel.

Cloud & DevOps

Nous bâtissons des infrastructures Cloud robustes et automatisées qui soutiennent vos ambitions à grande échelle.

Questions fréquentes

Questions fréquentes

Votre question est plus complexe ?

Un échange court suffit souvent à trancher. Prenez un créneau, on vous répond sur votre cas.

Réserver un créneau

La reprise de l'existant ou la refonte complète pour votre projet ?

30 minutes avec un architecte pour trancher sur vos contraintes réelles : volumétrie, intégrations, délai, budget. Pas sur un tableau générique.

Réponse sous 24h, sans engagement.

Alexandre Da Silva, Koul, à son poste de travail