Le temps de réponse de l'éléphant

Des propriétés émergentes des systèmes...


Vous connaissez peut-être cette parabole des six aveugles et de l’éléphant. Je l’ai lue pour la première fois il y a plusieurs années dans le livre d’Eric Evans, Domain Driven Design avant de la voir à nouveau dans différents contextes.

L’histoire raconte comment des aveugles, chacun touchant une partie différente du pachyderme, en déduisent leur propre représentation et n’arrivent pas à se mettre d’accord sur ce qu’est un éléphant (un poème racontant la parabole se trouve à la fin d’article).

The Blind Men and the Elephant

Une interprétation classique de cette parabole est de dire que pour percevoir la totalité de l’éléphant, les aveugles devraient collaborer et rassembler leurs connaissances pour décrire ou reconstituer l’animal.

C’est certainement indispensable mais il existe le risque que, malgré cette collaboration, le résultat obtenu ne soit pas celui souhaité. Supposons en effet que ces aveugles s’associent et essaient de reconstituer l’éléphant à partir des connaissances de chacun: il en résulterait probablement un éléphant…sans vie.

Pourquoi cela ? Parce que l’éléphant est bien plus que la somme de ses parties comme le dit l’adage bien connu.

En Systems Thinking, on pense aussi que le système est plus que la somme de tous ces éléments. Et on caractérise ce plus par ce que l’on appelle des propriétés émergentes, propriétés qui n’existent pas dans les entités elles-mêmes mais qui se manifestent au niveau du système.

Prenez par exemple votre application web ou autre: vous êtes sûrement capable de mesurer ses temps de réponse dans le cadre de vos tests de performance, n’est-ce pas ? (après, peut-être que vous ne le faites pas mais c’est un autre sujet…).

Songez à présent aux éléments qui constituent votre application et son environnement: les utilisateurs, le code source, le compilateur ou l’interpréteur, les langages, l’OS, la VM, les containers, etc. Aucun de ces composants n’a de propriété temps de réponse et pourtant cette caractéristique existe bien au niveau de l’application puisque vous pouvez la mesurer.

Considérons un autre exemple lié à l’organisation cette fois-ci: pour constituer une équipe performante, avoir les meilleurs éléments n’est pas un gage de réussite. La performance sera aussi le résultat de la collaboration entre les entités: c’est donc également une propriété émergente de l’équipe.

Ces caractéristiques émergentes sont le résultat des interactions entre les éléments du système: c’est pour cela qu’étudier un système en considérant ses entités uniquement est une erreur en Systems Thinking. Les connexions entre les composants sont souvent plus importantes et il est indispensable de les mettre dans l’équation.

Ce principe de propriété émergente peut être approché de différentes manières:

  • Du système vers l’émergence

La première consiste à étudier les éléments et les interactions du système puis à déterminer leurs effets les uns sur les autres. Si nous sommes capables de réaliser ce travail, nous aurons beaucoup plus de chance de succès dans la construction d’un système qui fait ce que nous souhaitons qu’il fasse.

Mais c’est loin d’être une tâche aisée.

Je trouve que cela ressemble beaucoup à la façon de travailler en TDD lorsqu’on fait émerger le design d’une application à l’aide du refactoring.

  • De l’émergence vers le système

La seconde va dans l’autre sens et est caractéristique de la résolution de problèmes telle que décrite dans un précédent article: les propriétés émergentes sont présentes dans les évènements et on tente de reconstituer le système à partir de ceux-ci afin de l’influencer.

Attention, les propriétés émergentes ne sont pas uniquement le résultat de la structure du système: elles l’influencent également, que ce soit au niveau de ses éléments ou des interactions.

Cela signifie qu’une fois dans un système, un élément (ou une interaction) est contraint(e) par ce système: il (elle) pourra également présenter des propriétés émergentes à son niveau.

Considérez votre architecture en microservices: votre service peut très bien fonctionner sur votre machine avec des bouchons mais une fois déployée, au contact avec les autres microservices, il peut se comporter différemment comme vous planter si une cascade d’erreurs se produit (et que vous avez mal géré ça) ou devenir un goulot d’étranglement si la charge monte.

Notez que la relation système <-> propriétés émergentes est dynamique: elle évolue au fil du temps, notamment parce que, comme indiqué précédemment, ces propriétés influencent le système qui lui-meme influence les propriétés émergentes.

En conclusion, pour penser système, on doit apprendre à penser émergence.


Les aveugles et l’éléphant

It was six men of Indostan,
To learning much inclined,
Who went to see the Elephant
(Though all of them were blind),
That each by observation
Might satisfy his mind.

The First approach’d the Elephant,
And happening to fall
Against his broad and sturdy side,
At once began to bawl:
“God bless me! but the Elephant
Is very like a wall!”

The Second, feeling of the tusk,
Cried, -”Ho! what have we here
So very round and smooth and sharp?
To me ’tis mighty clear,
This wonder of an Elephant
Is very like a spear!”

The Third approach’d the animal,
And happening to take
The squirming trunk within his hands,
Thus boldly up and spake:
“I see,” -quoth he- “the Elephant
Is very like a snake!”

The Fourth reached out an eager hand,
And felt about the knee:
“What most this wondrous beast is like
Is mighty plain,” -quoth he,-
“‘Tis clear enough the Elephant
Is very like a tree!”

The Fifth, who chanced to touch the ear,
Said- “E’en the blindest man
Can tell what this resembles most;
Deny the fact who can,
This marvel of an Elephant
Is very like a fan!”

The Sixth no sooner had begun
About the beast to grope,
Then, seizing on the swinging tail
That fell within his scope,
“I see,” -quoth he,- “the Elephant
Is very like a rope!”
And so these men of Indostan
Disputed loud and long,
Each in his own opinion
Exceeding stiff and strong,
Though each was partly in the right,
And all were in the wrong!

Extrait de The Blind Men and the Elephant par John Godfrey Saxe (1816-1887)


© 2023 Du côté de chez Fouad. Tous droits réservés.