À retenir
- Un système immaintenable coûte plus cher à modifier qu'à reconstruire de zéro.
- C'est la conséquence directe d'un manque de rigueur ou de documentation sur le long terme.
- Cela génère une peur du changement chez les techniciens et bloque l'innovation.
Qualifie un code informatique ou un système devenu tellement complexe, désordonné ou obsolète qu'il est quasiment impossible de le modifier, de le réparer ou de le faire évoluer sans tout casser. C'est l'analogie d'une pelote de laine totalement emmêlée : si vous tirez sur un fil pour le ranger, vous créez dix nouveaux nœuds ailleurs.
Étymologie
Dérivé du verbe « maintenir » (du latin manutenere, tenir à la main) avec le préfixe privatif im-. Si le terme existe depuis le XIXe siècle dans un sens général, il a pris une dimension critique en informatique pour désigner les conséquences extrêmes de la dette technique.
Exemples d'usage
- Un logiciel vieux de 10 ans dont le code n'est pas documenté et dont les créateurs sont partis de l'entreprise.
- Un script de 5 000 lignes sans aucune organisation, où les variables s'appellent
x1,x2outest. - Une infrastructure réseau dont les branchements physiques ne correspondent à aucun schéma et où chaque changement de câble provoque une panne.
Cas d'usage
On utilise ce terme principalement en développement logiciel pour critiquer le « code spaghetti », mais aussi en administration système pour désigner des serveurs « legacy » (hérités) que personne n'ose toucher de peur de paralyser l'entreprise.
Bonnes pratiques
Pour éviter qu'un projet ne devienne immaintenable, il faut privilégier la clarté sur la performance brute : écrire du code lisible, documenter les choix complexes, réaliser des tests automatisés et pratiquer le refactoring (réécriture régulière de petites portions de code pour les simplifier).
Synonymes
Antonymes
Conseil
Quand vous débutez, ne cherchez pas à écrire le code le plus court ou le plus « intelligent » possible. Codez comme si la personne qui allait relire votre travail dans six mois était un inconnu nerveux qui n'a pas le temps de deviner vos intentions.
Questions fréquentes
Un code qui fonctionne peut-il être immaintenable ?
Absolument. Un programme peut remplir parfaitement sa mission aujourd'hui, mais être si mal écrit qu'ajouter la moindre petite option demain prendrait des semaines.
Quelle est la différence avec un bug ?
Un bug est une erreur précise à un instant T. L'immaintenabilité est une maladie structurelle du projet qui rend la correction des bugs de plus en plus difficile.