La complexité se déplace, jamais ne s'efface

Les 10 lois invisibles du code : pourquoi la complexité de votre logiciel ne disparaît jamais

Derrière chaque application bien conçue se cachent des principes d'ingénierie vieux de plusieurs décennies. Les ignorer, c'est payer deux fois : en délais et en budget. Voici les lois qui gouvernent réellement la qualité logicielle.

Homme et balance : simplifier la complexité numérique
Par Sébastien Sturmel9 août 202610 min de lecture

Un logiciel qui fonctionne bien ressemble à quelque chose de simple. Trois clics, un résultat, une interface limpide. Cette simplicité est une illusion d'optique. Derrière chaque écran épuré, il y a des milliers de lignes de code qui absorbent la complexité que l'utilisateur ne voit pas.

La question n'est jamais "comment supprimer la complexité". Elle est : qui va la porter ? L'utilisateur, le développeur ou le système lui-même ? C'est ce choix, souvent invisible au moment de la décision, qui détermine si un projet digital tient la route sur trois ans ou s'effondre au bout de six mois.

Depuis les années 1960, des ingénieurs et des chercheurs ont formalisé des lois sur le comportement des systèmes logiciels. Ces lois ne parlent ni de frameworks, ni de langages de programmation. Elles décrivent des constantes structurelles : comment la complexité se déplace, pourquoi un système qui grossit finit toujours par ralentir, et ce qui arrive quand l'architecture d'un logiciel reflète l'organigramme de l'entreprise qui l'a construit.

Pour un dirigeant de PME qui investit dans un outil digital, ces principes changent la façon de lire un devis, de négocier un délai et de comprendre pourquoi "ajouter une petite fonctionnalité" n'est jamais aussi simple que ça en a l'air.

La façade trompeuse d'un mécanisme complexe


La loi de Tesler : chaque système a un plancher de complexité incompressible

Larry Tesler, ancien chercheur chez Xerox PARC puis chez Apple, a posé un principe qui dérange : toute application possède un niveau irréductible de complexité qui ne peut pas être supprimé, seulement déplacé. Simplifier l'interface utilisateur ne fait pas disparaître cette complexité. Elle est transférée dans le code, dans l'architecture, dans le travail du développeur.

Prenez un formulaire de contact sur un site web. Trois champs visibles : nom, e-mail, message. Simple en apparence. Mais derrière, il faut valider le format de l'adresse, protéger contre le spam, gérer les erreurs de saisie, stocker les données conformément au RGPD, envoyer une confirmation. Chaque champ "simple" génère plusieurs couches de traitement invisible. C'est un sujet que j'ai détaillé dans un article dédié sur la loi de Tesler appliquée aux formulaires web.

Ce que cela signifie pour une PME : quand un prestataire annonce un prix qui semble élevé pour une fonctionnalité "basique", il est possible que ce prix reflète précisément le coût d'absorption de cette complexité irréductible. Un devis bas peut signifier que la complexité a été laissée du côté de l'utilisateur, sous forme de bugs, d'étapes superflues ou de messages d'erreur incompréhensibles.

La loi de Tesler ne dit pas que tout doit être cher. Elle dit qu'il faut identifier où la complexité atterrit avant de signer.

Masquer le désordre sous le tapis


La loi de Gall : tout système complexe qui fonctionne est né d'un système simple qui fonctionnait

John Gall, pédiatre et théoricien des systèmes, a énoncé dans les années 1970 une observation que beaucoup de projets IT ignorent : un système complexe conçu à partir de zéro ne fonctionne jamais. Il faut toujours repartir d'un système simple qui fonctionne, puis le faire évoluer progressivement.

Cette loi explique pourquoi les refontes complètes de systèmes d'information échouent si souvent. Vouloir remplacer d'un coup un ERP entier, un site web et un CRM par une solution unifiée "pensée de A à Z" est une stratégie à haut risque. Les systèmes qui tiennent dans la durée sont ceux qui ont grandi par itérations successives, chaque couche validée avant d'ajouter la suivante.

Comme le rappellent les travaux sur la pensée complexe, notamment ceux inspirés par Edgar Morin, un système ne se réduit pas à la somme de ses parties. Les interactions entre composants créent des propriétés émergentes impossibles à prévoir sur un plan théorique. La seule façon de les découvrir est de construire, tester, ajuster.

Pour un dirigeant, la leçon est concrète : méfiez-vous des prestataires qui proposent de tout construire en une seule phase. Un projet digital sain commence par un périmètre restreint, un MVP (produit minimum viable), qui prouve sa valeur avant d'être enrichi. C'est un principe qui prend tout son sens dans le développement d'un outil métier sur mesure, où chaque fonctionnalité est conçue pour répondre à un besoin validé avant d'en ajouter une autre.

De la graine à l'arbre : la vie en croissance


La loi de Conway : votre logiciel est le miroir de votre organigramme

Melvin Conway a formulé en 1967 une hypothèse devenue axiome : la structure d'un système logiciel reproduit la structure de communication de l'organisation qui l'a conçu. Si deux équipes ne se parlent pas, les modules qu'elles développent ne communiqueront pas bien non plus.

Ce n'est pas une métaphore. C'est un phénomène documenté et observable. Une PME qui confie son site web à une agence, son application mobile à un freelance et son back-office à un troisième prestataire sans coordination obtiendra trois systèmes qui coexistent mal. Les données ne circuleront pas de manière fluide, les interfaces seront incohérentes et les mises à jour créeront des effets de bord imprévus.

La loi de Conway a un corollaire positif : si vous structurez bien la communication autour de votre projet, l'architecture du logiciel en bénéficie directement. Un interlocuteur technique unique qui comprend l'ensemble du périmètre produit un système plus cohérent que trois spécialistes cloisonnés.

Je constate régulièrement cet effet sur des projets de PME. Quand le dirigeant est impliqué dans les décisions d'architecture et que le développeur a accès aux utilisateurs finaux, le résultat est structurellement meilleur que lorsque chaque acteur travaille dans son silo. Ce n'est pas une question de compétence individuelle. C'est une question de flux d'information.

Ponts désalignés: manque de communication au travail


Les lois de Lehman : tout logiciel vivant se dégrade s'il n'évolue pas

Meir Lehman a étudié l'évolution des systèmes logiciels sur plusieurs décennies à partir des années 1970. Ses conclusions tiennent en plusieurs lois, dont deux sont particulièrement utiles pour un décideur.

La loi du changement continu : un logiciel utilisé dans un environnement réel doit être continuellement adapté, sinon il devient progressivement moins satisfaisant. Ce n'est pas parce qu'il "casse". C'est parce que le contexte autour de lui change : les navigateurs évoluent, les réglementations se durcissent, les attentes des utilisateurs augmentent.

La loi de la complexité croissante : à mesure qu'un logiciel évolue, sa complexité augmente, à moins qu'un travail spécifique soit entrepris pour la réduire. Chaque ajout de fonctionnalité, chaque correctif rapide ajoute une couche. Sans maintenance active, cette accumulation forme ce qu'on appelle la dette technique, un passif invisible qui finit par couter très cher.

Concrètement, un budget de maintenance n'est pas un "coût optionnel" après la livraison d'un projet. C'est une composante structurelle du coût total de possession d'un logiciel. Ignorer Lehman, c'est traiter un outil digital comme un meuble : on l'achète une fois et on n'y touche plus. Sauf qu'un meuble ne doit pas s'adapter à une nouvelle norme RGPD tous les deux ans.

Homme perplexe devant vélo bricolé et vélo neuf


Le principe de Pareto appliqué au code : 80 % des problèmes viennent de 20 % du système

La distribution de Pareto s'applique au logiciel avec une régularité surprenante. En pratique, 80 % des bugs proviennent de 20 % des modules, et 80 % du temps d'utilisation se concentre sur 20 % des fonctionnalités. Cette distribution n'est pas une coïncidence statistique. Elle découle de la nature même des systèmes complexes, où certains composants concentrent les interactions et donc les risques.

Pour un dirigeant qui doit arbitrer un budget de correction ou d'amélioration, cette loi est un outil de décision direct. Investir dans l'audit et la stabilisation des 20 % de modules critiques aura plus d'impact que de saupoudrer le budget sur l'ensemble du système.

Mon conseil : demandez à votre prestataire d'identifier les "points chauds" de votre application, les zones où se concentrent les incidents et les demandes de support. Cette cartographie, même sommaire, vaut souvent plus qu'un cahier des charges de 50 pages pour prioriser les investissements.

Ce principe rejoint une observation plus large sur la gestion de la complexité dans les organisations. Comme le soulignent les travaux sur la pensée systémique, vouloir tout contrôler simultanément est illusoire. Il est plus efficace d'identifier les quelques leviers qui ont un effet disproportionné sur le résultat global, puis de concentrer les ressources sur ces leviers.

Désencombrer : le mur de post-it et la femme organisée


Ce que ces lois changent quand vous évaluez un devis ou négociez un délai

Chacune de ces lois a une traduction directe dans la relation entre un dirigeant de PME et son prestataire technique.

Tesler transforme la lecture d'un devis. Si deux offres proposent la même fonctionnalité à des prix très différents, la question n'est pas "laquelle est la moins chère ?" mais "où chacune place-t-elle la complexité ?". Un formulaire simple côté utilisateur avec une validation robuste côté serveur coute plus cher qu'un formulaire qui laisse l'utilisateur se débrouiller avec des messages d'erreur cryptiques. Les deux "fonctionnent". Un seul satisfait vos clients.

Gall transforme la négociation des délais. Exiger la livraison complète d'un système en une seule phase est contre-productif. Découper le projet en livrables intermédiaires réduit le risque et permet de valider les hypothèses fonctionnelles avant d'engager le gros du budget.

Conway transforme le choix du prestataire. Un développeur qui comprend votre métier et communique directement avec vos équipes produira un résultat plus adapté qu'une grande structure où votre projet passe par trois niveaux de gestion avant d'arriver au développeur.

Lehman transforme le budget prévisionnel. Prévoir 15 à 20 % du coût initial en maintenance annuelle n'est pas du luxe. C'est le coût réel de possession d'un logiciel qui reste fiable et conforme dans la durée.

Ces lois ne sont pas des abstractions académiques. Ce sont des grilles de lecture opérationnelles pour tout décideur qui engage des ressources dans un projet digital.

Hommage instable: devis et maquettes en équilibre


Les limites de ces principes : quand la théorie rencontre le terrain

Ces lois sont des outils de pensée, pas des vérités absolues applicables dans tous les contextes. Quelques nuances s'imposent.

La loi de Gall, par exemple, favorise l'approche itérative. Mais certains projets réglementaires imposent un périmètre fonctionnel minimal dès la première version. Dans ce cas, l'itération porte davantage sur les phases internes de développement que sur les livrables visibles par le client.

La loi de Conway est un constat, pas une fatalité. Des organisations ont prouvé qu'il est possible de structurer délibérément les équipes pour obtenir l'architecture souhaitée. C'est ce qu'on appelle la "manoeuvre de Conway inversée". Mais elle demande une maturité organisationnelle que la plupart des TPE/PME n'ont pas besoin d'atteindre. Pour une équipe de 5 à 50 personnes, avoir un interlocuteur technique central et accessible suffit dans la majorité des cas.

Enfin, la complexité d'un projet ne se réduit pas à sa dimension technique. Comme le rappellent les analyses sur la complexité du droit du travail en France, la couche réglementaire ajoute son propre lot de contraintes irréductibles. Un logiciel de gestion RH, par exemple, ne peut pas être "simple" parce que le droit du travail français ne l'est pas. La complexité du domaine métier fixe un plancher que même le meilleur développeur ne peut pas abaisser.

Reconnaitre ces limites ne diminue pas la valeur de ces lois. Au contraire, cela renforce leur utilité : elles servent à poser les bonnes questions, pas à fournir des réponses toutes faites.

Femme explorant carte incomplète avec calme


Ces dix lois partagent un même message : la complexité d'un système logiciel ne se supprime pas, elle se gère, se déplace et se négocie. Chaque décision technique est un arbitrage sur qui, entre l'utilisateur, le développeur et le budget de maintenance, absorbe la part de complexité irréductible.

Pour un dirigeant de PME, ces principes ne sont pas des curiosités théoriques. Ce sont des critères concrets pour évaluer la solidité d'un projet, la pertinence d'un devis et la viabilité d'un planning. La prochaine fois que vous examinerez une proposition technique, posez cette question : où exactement cette offre place-t-elle la complexité que personne ne veut voir ?

Résoudre le noeud, main dans la main


Sources : Questions de Management - Revue académique (Cairn) The Conversation - Dix principes pour penser dans un monde complexe Village de la Justice - La complexité du droit du travail CNFPT - Penser la complexité, ce n'est pas forcément compliqué

Découvrez les derniers articles du Blog

Veille, astuces et réflexions sur le web, la tech et la cybersécurité.

Plongez dans mes dernières publications, couvrant les actualités et tendances tech, le développement web et mobile, l'automatisation et l'IA, mais aussi des anecdotes et des conseils en cybersécurité. Il y en a pour tous les goûts pour rester à la pointe de l'innovation et optimiser ta présence en ligne

Sébastien version 3D sur une plateforme qui prend des notes

Un projet web en tête ? Discutons-en.

Premier échange constructif, sans engagement.

Un projet web, c'est un investissement stratégique. Pour qu'il serve vraiment vos objectifs, il faut sortir des solutions génériques.

Ma méthode place la phase de découverte au cœur du processus. Avant toute technique, je prends le temps de comprendre votre métier, vos contraintes, vos ambitions. Cet échange nous permet de cadrer un cahier des charges précis et de valider les orientations les plus pertinentes.

L'objectif : concevoir une solution sur-mesure, performante et utile qui parle avec justesse à vos clients.