title: Complexité ou complication ?

>  Il est impossible de décrire complètement un objet du monde réel : comme tout modèle repose sur un nombre fini de concepts, un modèle sera toujours « simple » par rapport à la complexité du réel. Certaines personnes s’opposent passionnément à cette simplicité. Cherchant à simuler la complexité du réel, elles produisent des modèles compliqués : mais ces modèles sont, en fait, inutilisables. Ils parasitent l’intellect et provoquent beaucoup d’échecs dans les systèmes d’information. Il faut promouvoir dans les entreprises le goût de la sobriété.
>  
> […]
> 
> La pensée compliquée est simple au fond comme toute pensée, mais elle prend soin de cacher sa simplicité derrière un écheveau touffu de concepts et relations fonctionnelles dont l’architecture embrouille postulats, conséquences, résultats intermédiaires et hypothèses annexes.
> 
> La pensée compliquée est, en pratique, inutilisable. Il arrive souvent que sous la complication se cache une incohérence : alors la pensée est non seulement inutilisable mais elle est nulle.
> 
> […]
> 
> *La complication du modèle singe la complexité du réel.* Elle n’égale jamais la complexité du réel, mais elle sature l’attention et le jugement. La personne qui examine un modèle compliqué est en « surcharge mentale ». Le modèle lui semble alors aussi complexe qu’un objet réel.
>
> <cite>*[Complexité et complication](http://www.volle.com/articles/complexite.htm)* ([cache](/david/cache/47efa1bd5a3c2b3fde9af791b41802b9/))</cite>

En guise de réponse à Karl qui écrit :

> Tout cela me fait penser que bien souvent les développeurs ajoutent des couches complexes pour une meilleure « expérience de développeurs » mais en perdant de vue la simplicité initiale. Plus l’abstraction est grande et plus la complexité des outils viennent au final résoudre des problèmes inexistants au départ.
>
> <cite>*[Le temps avant la première bouchée de confiture](http://www.la-grange.net/2018/03/11/jamstack)* ([cache](/david/cache/d8d0642aa2f4bbfc34ae0a15eeaff39d/))</cite>

Il est adapté de proposer des solutions *complexes* à des problématiques complexes mais l’on ne sait malheureusement pas les produire et encore moins les maintenir. Les développeurs ajoutent de la *complication* pour tout un tas de raisons :

* capacité à le faire (ne jamais négliger l’attrait du pouvoir),
* rémunération associée (directe ou indirecte),
* insécurité (appartenance à un groupe, manque de confiance en soi),
* incompréhension de la problématique.

L’abstraction est justement trop étriquée pour vouloir appliquer des schémas réels à une complexité qui n’est plus/pas de cet ordre là.

*Insérer ici une digression sur AMP.*