Notes on Simplicity

Notes sur la simplicité

La simplicité n'est pas l'absence de complexité. C'est le résultat d'une compréhension suffisante d'un problème pour le résoudre proprement.

Chaque logiciel commence simplement. Quelques dossiers, un objectif clair, une petite surface. Ensuite, des fonctionnalités sont ajoutées, les cas extrêmes sont traités et, peu de temps après, vous examinez quelque chose qui nécessite un diagramme pour être compris. Ce n’est pas inévitable, mais il faut de la discipline pour l’éviter.

La partie la plus difficile de la simplicité n’est pas la conception initiale. C'est la résistance constante à la complication. Chaque demande de fonctionnalité, chaque correction de bug, chaque refactorisation est une opportunité d'ajouter de la complexité. Dire non est la compétence de conception la plus importante et la moins célébrée.

Suppression en tant que fonctionnalité

La meilleure version d’un produit comporte souvent moins de fonctionnalités que la précédente. Non pas parce que des fonctionnalités manquaient, mais parce que quelqu'un a eu le courage de supprimer des éléments qui ne méritaient pas leur subsistance. Chaque fonctionnalité a un coût – en maintenance, en charge cognitive, en poids de l’interface.

La simplicité est une pratique, pas une destination. On n’arrive jamais au simple. Vous n’arrêtez pas de demander : est-ce nécessaire ? Est-ce que cela pourrait être plus clair ? Existe-t-il un moyen de résoudre ce problème en supprimant quelque chose au lieu d’ajouter quelque chose ? La réponse est oui, plus souvent que prévu.

💬 Discussion 1
Guest
Avatar
  • Sébastien Lambert (collapsed)
    Je m'étais promis de simplifier notre stack cette année, et puis je tombe sur « Notes sur la simplicité » et je réalise que notre infrastructure tourne avec du scotch et de la chance. Rassurez-moi, je ne suis pas le seul ?
    0