Loi de Leess et syndrome de l’usine à gaz

La loi de Leess est inspirée de la loi de Moore ; more or less.  Ces deux lois n’ont rien de légal et encore moins de scientifique mais donner son avis sous forme d’une “loi”, ça le fait.

Si l’on considère l’évolution de la performance des ordinateurs au cours du temps, on prétend qu’elle double tous les 18 mois (“loi” de Moore).

Mais si l’on considère l’évolution de la performance des logiciels, on constate qu’elle reste stable (dans le meilleur des cas).

D’où la loi de Leess qui constate que la performance des programmeurs (maintenant appelés développeurs) est divisée par 2 tous les 18 mois.

On pointe ici du doigt les programmeurs mais c’est toutes les couches sous-jacentes qui sont concernées : système d’exploitation, langages de programmation et méthodes.

L’illusion de l’amélioration des performances

A l’occasion d’une mise à jour (imposée) du système d’exploitation d’un serveur utilisé dans un contexte de travail réel, il a été nécessaire d’adapter les accès à la base de données en langage “orienté objet”. La préparation de ces adaptations a été faite sur un serveur plus récent dont les performances sont objectivement meilleures. Un gain de temps pour les tests était naturellement espéré. Et bien, non : c’est plus lent.

En comparant les temps de traitement de l’extraction la plus complexe de l’application portée entre le serveur de développement installé avec la “vieille version” et le nouveau, plus performant, installé avec la nouvelle version, tous les autres aspects restants identiques par ailleurs on constate une augmentation de ces temps de traitement de plus de 50 % !

Le syndrome de l’usine à gaz

En quoi cela consiste ?

Laissez un développeur s’attarder sur un sujet. Après en avoir résolu les fondamentaux, plutôt que de consolider et optimiser son code, il va s’attaquer aux fioritures (les petits plus au mieux superflus, voire inutiles ou même préjudiciables). Un jour son truc fini par devenir impossible à maintenir, même pas par son auteur original. Alors, celui qui se dévoue pour poursuivre jette tout et recommence (le cycle complet : une première solution simple et efficace, puis les fioritures, etc.).

On trouve un raffinement supplémentaire dans les options de commande en ligne et, encore mieux, dans les fichiers de configuration. Ah, ces fichiers de configuration, un régal !

Les exemples sont nombreux. Un des premier à qui on pourrait attribuer le syndrome de l’usine à gaz, c’est sendmail. Le type qui s’en est occupé a réussi à créer un langage de développement qui s’exprime dans les fichiers de configuration !

Et avec l’installation d’un nouveau serveur utilisé avec le système d’exploitation le plus récent, on observe une tendance qui se confirme : protéger son serveur des pirates est de plus en plus passionnant.

  • les processus de base changent et, surtout, ils deviennent de plus en plus diserts sur les journaux système,
  • cela en devient presque un travail d’IA de repérer les informations pertinentes pour la sécurité du serveur tellement elles sont noyées dans un flot d’informations inutiles,
  • la configuration par défaut des systèmes de protection est plus permissive,
  • l’organisation et la syntaxe de leurs fichiers de configuration est plus complexe et incompatible avec celles des versions précédentes.

Le must, c’est de voir que les regex sont encore plus illisibles qu’avant ; on n’aurait pas cru que ce serait possible !

Ah oui, on apprécie un détail croustillant : on ne trouve plus de vraie documentation…

Et dire que non seulement tous ces petits jeunes qui réinventent la roue donnent du boulot à tous les administrateurs mais en plus ils le font gratuitement !