Le blog d'Archiloque

Le danger de l’élégance

En informatique l’élégance est très valorisé, et du coup de recherché parmi une partie de la population.

Élégance du code, d’une API, d’un exemple… on le trouve à toutes les sauces.

Qu’on l’appelle élégance, pureté ou même Zen pour une touche de snobisme.

Être capable d’identifier quelque chose d’élégant et d’en parler est une étape importante dans le fait d’être reconnu, l’étape suivante étant de parvenir à créer de l’élégance.

Avec le temps, j’ai appris à m’en méfier de plus en plus.

L’élégance est un attribut esthétique qui indique une forme de minimaliste qui respecte certaines règles de beauté, c’est donc une question de goût et est donc subjectif.

Du code ou un outil qui atteint son but et qui en plus est élégant n’est pas une mauvaise chose, et il n’y a pas de mal à l’admirer.

Le problème est quand l’élégance devient si importante qu’elle devient un critère décisif et plus quelque chose « en plus », et qu’être élégant rend impossible où plus difficile de faire des choses pour les personnes qui vont utiliser le code ou l’outil en question.

Par exemple ne pas donner accès à telle ou telle fonctionnalité car cela rendrait un modèle « moins beau ».

Ou fournir le minimum de fonctionnalités possibles pour avoir un modèle minimal plutôt que de fournir ce dont les utilisateurs ont besoin, ce qui leur fait perdre du temps.

C’est très tentant de tomber dans ce piège quand ont créé quelque chose car l’élégance est très attirante intellectuellement : on veut être fier de ce que l’on créé, et tant pis pour les cas qui ne nous plaisent pas.

Je parle en connaissance de cause : j’ai travaillé dans une équipe qui avait ce mode de fonctionnement, l’envie de faire des design parfaits multiplié par l’esprit de groupe peut faire des ravages, et tant pis pour les utilisateur·rice·s.

De plus en plus, quand je vois un outil décrit comme “élégant”, ce n’est plus un bon signe mais au contraire un signe d’alerte : ça ne veut pas dire qu’il ne faut pas l’utiliser, mais qu’il faut être vigilant.