L'Illusion de la Complexité
Dans le monde du développement logiciel, il existe un phénomène discret mais toxique : l’illusion que la complexité est une preuve de compétence. Ce que l’on appelle, dans un clin d’œil critique, le “Complex means Skillful Fallacy”.
“Si je ne comprends pas, c’est que l’auteur est plus fort que moi.”
Cette pensée réflexe est dangereuse. Elle pousse à ériger la confusion en talent. Pourtant, quelqu’un qui produit du code incompréhensible n'est pas forcément meilleur. Il est souvent dangereux pour le projet.
Le piège des comparaisons LinkedIn
On voit émerger cette tendance inquiétante : comparer un code simple (attribué au "Junior") à un code abstrait et dense (attribué au "Senior"). Le message implicite ? “Le vrai niveau, c’est l'incompréhensible.”
C'est faux. L'incompréhensibilité n'est pas un gage de maîtrise. C'est souvent l'inverse.
Les visages de la complexité inutile
Des couches entières ajoutées non pas par besoin, mais pour démontrer une "maîtrise". L’élégance fait place à l’exhibition.
Ternaires imbriquées, raccourcis obscurs... Tout est bon pour perdre le lecteur, comme s'il s'agissait d'un sport d'élite.
process(), handle(), doStuff(). Le brouillard est maintenu volontairement, comme un magicien gardant ses tours secrets.
Ou pire, les commentaires trompeurs. L’auteur sait ce qu’il a voulu faire, et cela lui suffit. Le reste de l’équipe improvisera.
Le Duel : Malin vs Clair
J’ai assisté à des guerres de tranchées techniques où chaque ligne de code était une tentative de prouver sa valeur. Voici un exemple caricatural mais révélateur :
function q(x){return[...x].map((z,i)=>x.charCodeAt(i)%2?z.toUpperCase():z).join('')}
function capitalizeOddChars(input){
return input.split('').map((char, i) => i % 2 ? char.toUpperCase() : char).join('');
}
Laquelle préférez-vous devoir déboguer dans six mois ?
Pourquoi cette illusion perdure ?
-
Biais cognitifs : Le biais d'autorité nous fait croire que ce qu'on ne comprend pas est supérieur.
-
Culture d'entreprise : La complexité rend "irremplaçable". C'est le fameux "Bus Factor".
-
Validation managériale : Valoriser les "sorciers du code" qui sauvent la mise dans l'urgence conforte ce système toxique.
Les Conséquences
- ❌ Dette technique en flèche.
- ❌ Bugs incrustés et résistants.
- ❌ Onboarding interminable pour les recrues.
- ❌ Formation de silos de connaissance (savoir tribal).
- ❌ Énergie gaspillée à comprendre le code au lieu d'améliorer le produit.
Vers une culture technique responsable
Il est temps de renverser la logique. La simplicité est une forme suprême de sophistication. Les ingénieurs brillants sont ceux qui simplifient sans appauvrir, ceux qui écrivent du code qui "s’explique tout seul".
En tant que CTO, ne cherchez pas à créer une équipe de génies incompris. Cherchez à bâtir une équipe capable de se relire, de se remplacer, de s’entraider. Un système que l’on peut confier sans crainte.
"Simplifier, ce n’est pas trahir la technique. C’est lui rendre hommage."