Le K.I.S.S. mais qu’est-ce donc que ce nouvel acronyme encore ? Ces informaticiens ne peuvent-ils pas se passer d’en inventer de nouveaux pendant 5 minutes ?
Et bien pour une fois, c’est pour la bonne cause car le K.I.S.S. signifie Keep It Simple and Stupid… On est bien avancé maintenant avec sa signification, mais que cache t’elle réellement ?
Il s’agit, finalement, d’un principe qui devrait guider toutes réalisations, y compris en dehors de l’informatique, mais concentrons nous sur notre sujet. Alors pourquoi garder les choses simples et stupides ?
Il y a, évidemment, plusieurs réponses en fonction du niveau où l’on se trouve dans un projet informatique.
Creusons un peu voulez vous ?
Le client
Lui n’a ni envie ni besoin d’être simple ou stupide. Par contre son besoin lui devrait être simple (mais pas stupide ici). Bien souvent le client … ne sait pas vraiment ce qu’il veut et c’est bien normal. Il mélange problématique, début de solution, technologies, contraintes temporelles et financières… C’est tout l’intérêt de notre métier de détricoter avec lui sa demande afin d’en tirer le besoin, son besoin réel.
Trop souvent nous voyons des usines à gaz pour des fonctionnalités tellement simples. L’empilement de besoins au fil des années, le manque de recul fonctionnel et les changements de prestataire pour les effectuer aboutissent à ces monstres de complexité qui font souffrir à la fois les utilisateurs et le personnel de maintenance.
Quand on a A alors on veut B, mais quand on a B on veut A que si A n’est pas comme B et inversement si A est comme B lorsqu’on veut A alors B ne doit pas être comme A…
Le développement
Lui aussi devrait être simple, ça parait évident, mais aussi stupide. Stupide dans le sens où le développement devrait aller de soi, ne pas être complexe à écrire ou à lire. Combien de fois nous sommes nous tous (nous autres développeurs) arrachés les cheveux devant des milliers de lignes sans queue ni tête. Et, honte suprême, combien de fois avons nous contribué à complexifier encore les choses ?
Ici aussi l’empilement de technologies, de manière de faire, de norme, de dépendance rends la cohérence de la solution sujette à caution. Ici point de miracle, les contraintes budgétaires ne permette pratiquement jamais de garder un niveau de complexité faible, mais il est possible de n’augmenter qu’au minimum la complexité en ne rajoutant que ce qu’il faut…. ou au moins en essayant.
Bonjour, je voudrais un sandwish avec du HTML/CSS/JS/AngularJS/Symfony/PHP/APACHE/MariaDB/Debian/BIOS … ça sera tout ? non je prendrais un paquet de chips aussi !
L’ergonomie
Elle devrait être aussi la plus simple et la plus stupide possible. Dans l’absolu un enfant devrait comprendre comment fonctionne la solution. Si l’utilisateur cherche une fonctionnalité, c’est un échec, car toutes les fonctionnalités devraient être accessible au moment opportun.
Nous avons trop tendance à laisser un maximum de liberté à l’utilisateur ce qui se traduit par des menus à rallonge, des paramètres à n’en plus finir. NON, restons simple et stupide, moins il y a de bouton, moins on cherchera. Si un terme est ambigu, on le remplacera, si on ne peut pas, on mettra une explication.
Oui pour arrêter il faut cliquer sur démarrer … on est tous passé par là !
La vie de la solution
Elle aussi devrait être simple et stupide, la solution devrait fonctionner normalement, les serveurs ne devrait pas tomber en panne et le réseau devrait être robuste. Mais non, alors une fois encore, essayons de rester simple, plus une solution requiert de paramétrage, plus il y a de chance que l’un d’eux change et ne vienne mettre la pagaille.
Ici aussi, nous dépendons d’autres complexités car nous ne maitrisons ni les pannes, ni le matériel, ni les logiciels des exploitants, ni l’approvisionnement en électricité.
ça ? Non ça sert à rien … ah ben si en fait !
C’est quoi le rapport avec la thermodynatruc ?
Les lois de la thermodynamique nous enseignent que l’entropie (la mesure du désordre) ne peut globalement qu’augmenter, c’est aussi valable dans notre domaine. La complexité augmentera quoi que l’on fasse alors à défaut de la faire reculer, nous devons tous essayer de ne pas (trop) la faire augmenter.