Auteur : Jurgen Appelo (@jurgenappelo)
Source : Simplicity: A New Model
Date : 07/09/2010

Traducteur : Fabrice Aimetti
Date : 05/08/2015

Traduction :

Note : cet article fera fait partie du livre Management 3.0: Leading Agile Developers, Developing Agile Leaders.
Ah, la simplicité !
Il semble que nous la recherchions tous, mais que nous l'atteignions rarement.
Beaucoup d'experts ont discuté de la simplicité et de la complexité. Mais leurs contributions ont souvent mené à embrouiller les différentes définitions, ce qui n'a finalement pas mené à une simplification de la discussion elle-même.
Je tente ici de clarifier un peu les choses...
Qu'est-ce que la simplicité ?
La simplicité se rapporte habituellement à l'effort que fournit quelqu'un pour essayer d'expliquer ou de comprendre quelque chose. Si cette dernière est facile à comprendre ou à expliquer, on considère qu'elle est simple, sinon elle est compliquée. - Wikipedia
Si vous souhaitez discuter de la simplicité, il est important de connaître la différence entre complexe et compliquée. Ne pas connaître la différence signifie que vous appliquerez peut-être la mauvaise approche au bon problème (ou la bonne approche au mauvais problème).

Je pense que la différence doit être expliqué en utilisant deux dimensions. La première dimension se réfère à la structure du système et notre capacité à la comprendre :
  • Simple = facilement à comprendre,
  • Compliqué = difficile à comprendre.

La seconde dimension se réfère au comportement du système et notre capacité à le prédire :
  • Ordonné = pleinement prédictible
  • Complexe = partiellement prédictible (mais réserve beaucoup de surprises),
  • Chaotique = très peu prédictible.

Simplicity--A-New-Model-1_fr.png
Le Modèle Structure-Comportement


Mon caleçon est simple. Je considère que sa structure est facile à comprendre. Mais ma montre est compliquée. Si je la démonte, cela me prendra pas mal de temps pour comprendre sa conception et ses composants. Et pourtant, ni ma montre, ni mon caleçon ne me réserve de surprises, en tout cas pas pour moi. Ce sont des systèmes ordonnés, donc prédictibles.

Une équipe logicielle de 3 personnes est également simple. Cela prend quelques réunions, dîners et bières pour faire la connaissance de chacun de ses membres. Une ville n'est (généralement) pas simple mais compliquée. Cela prend des années pour que les conducteurs de taxi connaissent toutes ses rues, ruelles, hôtels et restaurants. Mais les équipes et les villes sont toutes les deux complexes. Peu importe que vous les connaissiez bien, il y aura toujours des surprises. Elles sont prédictibles jusqu'à un certain degré, mais vous ne savez sûrement pas ce qui arrivera demain.
Un pendule double (un pendule attaché à l'extrémité d'un autre pendule) est également un système simple. Il est facile à fabriquer et à comprendre. Et pourtant, il suit un mouvement chaotique imprédictible en raison de sa haute sensibilité à la configuration initiale. Les marchés financiers sont aussi chaotiques. Il sont par définition imprédictibles, sinon quelqu'un saurait comment gagner de l'argent sur les marchés financiers, et tout le système s'effondrerait. Mais au contraire des pendules, les marchés financiers sont extrêmement compliqués. Le nombre important des différents intervenants et des types de transactions fait que cela devient totalement incompréhensible pour un gars comme moi.
Ce qui est compliqué se réfère à la construction d'un système trop difficile à comprendre, à moins que vous ne soyez un expert, alors que quelque chose de complexe et chaotique se réfère au comportement d'un système qui est imprédictible à un degré plus ou mois fort.
Ce qui est compliqué n'est pas nécessairement complexe, par exemple deux voitures dans un garage. Et ce qui est complexe n'est pas nécessairement compliqué, par exemple deux personnes dans une chambre peuvent être parfaitement imprédictibles.
  • La simplification est l'acte de rendre une structure plus compréhensible (ce qui la déplace de haut en bas dans mon modèle).
  • La linéarisation est l'acte de rendre un comportement plus prédictible (ce qui le déplace de droite à gauche dans le modèle).

Malheureusement, la linéarisation est habituellement confondue avec la simplification. Et c'est là où les complications apparaissent...
Comment cela diffère t'il des autres modèles ?
Simplicity--A-New-Model-2_fr.pngCynefin est un modèle conçu par David Snowden, chercheur en gestion des connaissances.
Il décrit différents types de contexte à travers quatre domaines : Simple, Compliqué, Complexe et Chaotique, utilisé pour guider la prise de décision.
Cependant, Snowden ne fait pas de différence entre la structure et le comportement des systèmes.
Cela peut rendre compliquées (pas complexes) les discussions.
Simplicity--A-New-Model-3_fr.pngRalph Stacey, professeur en management, a créé quelque chose de similaire baptisée Matrice de Consensus & Certitude. Il illustre le Simple, Compliqué, Complexe et Anarchique (Chaos) sous la forme de quatre zones selon deux dimensions : le degré de consensus et le degré d'incertitude.
Ce modèle souffre du même problème. Je ne considère pas que le compliqué et le complexe soient deux domaines séparés. Je les vois plutôt comme faisant partie de différentes dimensions. C'est pourquoi mon Modèle Structure-Comportement identifie six domaines et non quatre. Et certains systèmes (par exemple les villes) peuvent être à la fois compliqués et complexes.
D'accord, maintenant, nous pouvons revisiter la définition de la Simplification.
Je pense que mon Modèle Structure-Comportement peut simplifier les discussions sur la simplicité, et lever certaines incompréhensions...
Tout devrait être rendu aussi simple que possible, mais pas plus simple. - Albert Einstein
A travers cette citation, Einstein veut dire qu'un système doit être rendu compréhensible, ce qui le déplace verticalement du haut vers le bas du modèle (simplification). Cependant, son ajout "mais pas plus simple" correspond au comportement du système. Einstein nous avertit sur le fait de ne pas changer le système horizontalement, car cela changerait le type de système (linéarisation).

La simplicité est un mythe dont l'époque est révolue, si jamais elle a existé. - Don Norman


Dans un article inspirant, Don Norman discute de la valeur accordée au fait d'avoir plus de fonctionnalités dans un produit, plutôt que moins. Plus de fonctionnalités signifie un comportement différent, et également (souvent) une structure différente. Dans mon diagramme, cela se déplace horizontalement et verticalement. (Par exemple, Google a juste ajouté Priority Inbox à Gmail. Cela a rendu le comportement de Gmail beaucoup plus complexe selon moi. Cela complique également l'interface utilisateur, mais il semble que je la comprenne toujours.) Malheureusement, Don Norman utilise le terme simplification aussi bien pour la linéarisation du comportement (horizontalement) que la simplification de la structure (verticalement).

Ensuite, Don complique son message, c'est la raison pour laquelle beaucoup de gens ne le comprenne pas. Peut-être que cela l'aurait aidé d'utiliser des images.
Le but du Visual Thinking est de rendre compréhensible le complexe en le rendant visible, et non pas en le rendant simple. - Dan Roam
Dans son bestseller The Back of the Napkin, Dan Roam suggère d'utiliser des images pour rendre les choses compréhensibles. Il se réfère clairement au fait de déplacer les choses du compliqué vers le simple (verticalement). Cependant, son avertissement "ne pas rendre les choses simples" crée encore une confusion dans les termes. Ce que Dan veut dire c'est que les images ne devraient pas changer la complexité (le comportement) de la chose, sinon cela gâcherait la capacité des gens à prédire ce que les images essayent de dire.
Et donc...
Oui, simplifiez par tous les moyens les choses qui sont difficiles à comprendre !
Mais non, vous ne voudrez pas linéariser ("simplifier") une chose, parce que réduire le comportement du système que vous offrez ne sera sans doute pas ce que l'utilisateur attend.
Merci de m'avoir lu jusque là. J'espère que c'était suffisamment simple à comprendre.