Excellent exposé sur le KISS (réellement, c'est très bien présenté).
Mais, appliqué à l'univers Linux, il a quand même pris un coup
de plomb dans ses plumes de manchot, à l'arrivée de Systemd. Non ?
Précision : je ne joue qu'avec de l'Open Source.
Oups ... Seconde cartouche ...
---
Bernard BELLE - C.F.G.I.
----------------------------------
Envoyé depuis mon AMSTRAD CPC 6128
----------------------------------
Le 2022-02-05 15:36, Stéphane Rivière a écrit :
Bonjour Denis,
Tu parles beaucoup de KISS mais je n'ai pas le sentiment que ce soit
une
métrique objective.
Le KISS est une philosophie. Ce n'est pas une méthode, ni une
métrique, mais un principe de conception ou d'approche, à usage
général. Quelques humains sympas du passé, proche ou lointain, en
parlent bien.
- La simplicité est la sophistication suprême (Léonard de Vinci).
- La perfection est atteinte non quand il n’y a plus rien à
ajouter, mais quand il n’y a plus rien à retrancher (Antoine de
Saint-Exupéry).
- Tout devrait être fait de manière simple mais non simpliste
(Albert Einstein).
Ayant créé quelques trucs complexes (hardware ou software), de
(rarement) seul à des équipes resserrées (10 collabs. max), j'en ai
déduit certaines choses.
La recherche de la simplicité impose de sélectionner les vrais
besoins, pour se limiter aux fonctionnalités suffisantes.
Il n’y a pas une seule solution pour un problème et plus on
simplifie, plus l’éventail des solutions s’affine.
Les « génies » font des trucs d'une complexité géniale, qui
marchent plus ou moins mal, mais juste assez pour qu’on mette
beaucoup trop de temps à admettre qu’en fait, « c’était de la
merde ». Dans le domaine de l’informatique, la pire peste qui soit
sont les « génies ». Les « artisans » font laborieusement, et
silencieusement, des trucs qui marchent. Il faut réfléchir
longtemps, patiemment, en artisan, et discuter beaucoup avec
l'équipe, pour arriver réellement à faire KISS.
Quelques classiques KISS : Un logiciel ou un système devrait être
construit comme on construit un pont, avec une démarche
d'ingénierie. Utiliser le langage adapté au problème à résoudre.
Moins t'as de code, moins t'as de bug. Le code est d'abord lisible et
ensuite, seulement si c'est nécessaire, optimisé. Pas confondre
sûreté et fiabilité (un avion bimoteur est moins fiable mais plus
sûr qu'un monomoteur). Le mieux est l'ennemi du bien. De la
discussion jaillit la lumière. On documente en même temps qu'on
code. Sur un projet, doubler le nombre d'intervenants ne fait
généralement que... doubler le délai.
Le KISS est la voie du juste milieu.
Des exemples orientés sysadmin : ne plus avoir d'instance routeur,
remplacée par un utilitaire qui va gérer la configuration des
interfaces, des routes et du firewalling directement sur le Linux de
l'hyperviseur, à partir d'un référentiel dans la supervision (en
l'occurrence une DB SQLite). La check-list est bien, l'automatisation
est mieux, la décision humaine (éclairée par la signalisation des
automatismes) doit primer.
Quelques contre exemples en dev logiciel : l'absence de méthode,
l'architecture en micro-services, le développement systématiquement
objet¹, le MVC et autres patterns à toutes les sauces, les
frameworks bouffis, l'enfer des dépendances, etc.
Une image explicite du juste milieu (the features curve) :
Tu as plein de références sur le net autour du KISS. Une bonne
synthèse : https://fr.wikipedia.org/wiki/Principe_KISS
¹ La plupart des développements objets ne devraient pas l'être, les
DB devraient toutes être objet et la plupart des développeurs
ignorent la différence entre les méthodes objet par composition ou
par classification. Pour être équitable, la possibilité à se
"poser au bord du chemin" pour réfléchir à sa "condition de
développeur" est un /putain de luxe/ qui n'est quasiment jamais
offert aux développeurs : ingénierie, méthode de conception,
d'implémentation (langages, DB, OS, etc.), que des domaines où le
temps de faire des choix n'est jamais laissé à ces acteurs
essentiels. On pourrait en dire autant des sysadmins ou devops qui
sont des architectes également essentiels de la réussite d'un
projet.
--
Stéphane Rivière
Ile d'Oléron - France
_______________________________________________
Liste de diffusion du %(real_name)s
http://www.frsag.org/
_______________________________________________
Liste de diffusion du %(real_name)s
http://www.frsag.org/