Les principes de simplicité appliqués au design et au développement Web

Depuis quelques temps, je ne jure plus que par la simplicité dans le design et le développement Web. C’est pour moi le meilleur moyen pour obtenir des sites et applications efficaces et ergonomiques. C’est certainement le travail que font Google et Apple qui m’a inspiré à emprunter cette voie de la sagesse.

Cette voie n’est pas du tout une voie de la paresse… En effet, on pourrait penser que faire du simple, c’est simple… Cela peut paraître naturel de penser comme cela mais en réalité, c’est l’inverse qui se produit. Au plus on veut faire quelque chose qui sera simple et compréhensible pour l’utilisateur, au plus la tâche est ardue… En conclusion : faire du simple, c’est compliqué et ça demande du boulot !

Je vous présente ci-après quelques principes de simplicité, tantôt scientifiques, tantôt purement philosophiques, mais qui peuvent très certainement aider à atteindre la perfection.

KISS principle

KISS signifie « Keep It Simple, Stupid » que je ne pense pas avoir besoin de vous traduire. J’ai découvert ce principe via le framework PHP symfony qui en a fait un de ses chevaux de bataille.

Le principe dit que la simplicité doit être un objectif clé et que toute complexité inutile doit être évitée. Ce principe ne s’applique pas uniquement aux développement de logiciels mais également à l’animation, au journalisme, à la photographie, etc. Antoine de Saint-Exupéry dit à ce sujet que la perfection n’est pas atteinte quand il n y a plus rien à ajouter mais quand il n y a plus rien à enlever.

Un contre-exemple du KISS principle est la machine de Rube Goldberg qui consiste à réaliser à réaliser une tâche simple d’une façon extrêmement compliquée. On peut apercevoir un exemple de machine de Goldberg dans les premières minutes du film Retour vers le futur, Emmett Brown ayant construit cette machine pour préparer son petit-déjeuner et donner à manger à son chien Einstein. Un autre exemple époustouflant ici (ils sont fous ces Japonais).

En savoir +

YAGNI

YAGNI est l’acronyme de « You Ain’t Gonna Need It » c’est à dire « Tu n’en auras pas besoin ». Ce principe, qui s’applique à l’ingénierie logicielle, veut que les développeurs n’ajoutent pas de fonctionnalités avant d’en avoir réellement besoin. Ne pas respecter ce principe peut mener à des problèmes car les fonctionnalités inutiles doivent être codées, testées et documentées ce qui coute du temps, peut être pour rien. De plus, cela mène à des applications plus larges, plus lourdes et plus compliquées (code bloat) ce qui augmente les chances d’avoir des bugs.

En savoir +

Don’t Repeat Yourself

« Don’t Repeat Yourselft » souvent abrégé en DRY et qui signifie en français « Ne te répète pas » est une philosophie dont le but est d’éviter la duplication dans le développement de logiciels. En effet, la duplication peut diminuer la clarté, augmenter la difficulté de maintenance et mener à l’inconsistance. Pour éviter la duplication, il faut profiter à bon escient des possibilités que nous offre le langage de programmation ou le framework utilisé : includes, héritage de classes, helpers, etc.

DRY est aujourd’hui relativement connu car il s’agit d’un des principes fondamentaux du populaire framework Web Ruby on Rails.

En savoir +

Rasoir d’Occam

On doit le principe du rasoir d’Occam à Guillaume d’Occam, un frère franciscain du 14ème siècle. Ce principe dit : « Les multiples ne doivent pas être utilisés sans nécessité ». Aussi appelé « principe de simplicité », « principe de parcimonie », ou encore « principe d’économie », il exclut la multiplication des raisons et des démonstrations à l’intérieur d’une construction logique. On traduit souvent ce principe sous la forme d’une préférence de l’hypothèse la plus simple parmi toutes celles qui sont échafaudées. La métaphore veut que le rasoir ne coupe que les mauvais raisonnements.

Si on traduit cela au développement et au design Web, on pourrait dire que la solution la plus simple pour arriver à un résultat est souvent la meilleure et la plus efficace.

Pour la petite histoire, un épisode de la série américaine Dr. House est consacré au principe du rasoir d’Occam. Ceux qui connaissant la série comprennent pourquoi.

En savoir +

Spartan Programming

Spartan Programming est une technique qui vise à minimiser la complexité du code source de votre application. Cela se passe au niveau du nombre de lignes de code, du nombre de structure de contrôle, des noms des variables et fonctions, et bien d’autres aspects…

Le nom de la technique vient du fait que les Spartes se battaient avec un casque et un bouclier comme uniques protections, révélant ainsi à leur ennemis leur impressionnante musculature. Cela prouve que la simplicité est souvent synonyme de puissance.

L’excellent blog Coding Horror a écrit un article à ce sujet il y a quelques semaines.

Et vous, quels sont vos principes ? En connaissez vous d’autres ?

16 Comments

  1. vinch's avatar Vinch says:

    Quelques dessins humoristiques de circonstance (et c’est tellement vrai) :

    Apple, Google and your company
    Le projet de la balancoire

    Like

  2. laurent's avatar laurent says:

    En gros c’est “less is more” … et c’est beaucoup plus compliqué à faire.

    je ne sais plus quel écrivain disait “désolé mon récit est long car je n’ai pas eu beaucoup de temps pour l’écrire”

    Par contre, c’est rarement une technologie qui rend les choses plus simples mais plutôt la manière dont elles sont mises en oeuvre.

    Like

  3. Marin's avatar Marin says:

    Beaucoup de ces principes s’appliquent aussi à l’intégration, à l’utilisation des différents frameworks JS et CSS.

    Like

  4. vinch's avatar Vinch says:

    Ouais quand je dis développement, c’est au sens large, intégration comprise 😉

    Like

  5. Greg's avatar Greg says:

    Excellent post 🙂 Et la plupart de ces conseils s’appliquent aussi à l’écriture!

    Like

  6. desfossez thomas's avatar desfossez thomas says:

    Rien que pour le design du web 2.0,

    Avec l’arrivé du haut débit, les designer ont cherché l’extrême : les dégradé, effet de translucence, de reflet, de transparences… jusqu’au background de site en vidéo !
    Aucune économie.

    Mais avec l’arrivé du web mobile, il va bien falloir repenser à tous ça et revenir a de simples illustrations optimisé en GIF et a un background en simple couleur.
    Car soyons clair entre un site joli qui met 2minutes a ce charger et un site épuré qui se charge en 10 sec sur un iphone, j’ai fais mon choix.

    Like

  7. vinch's avatar Vinch says:

    Je suis d’accord avec toi sauf sur un point. Tu as l’air de considérer un site épuré comme moche (vu que tu l’opposes à un site joli). Pour moi, un site épuré est souvent synonyme de joli, mais c’est subjectif évidemment.

    Like

  8. Daaaaad's avatar Daaaaad says:

    Simple et efficace 🙂

    Like

  9. MrThieu's avatar MrThieu says:

    Très intéressant pour mon TFE

    Like

  10. vinch's avatar Vinch says:

    En quoi consiste ton TFE ?

    Like

  11. antouane's avatar antouane says:

    J’adhère!

    Les sites google sont vraiment bien, tu trouve ce que tu veux pas plus ni moins. GMail est vraiment bien mieux pensé que Hotmail, en plus c’est bon pour la bande passante (enfin la leur vu que je suis en illimité …)

    Tiens, dans retour vers le futur y a aussi la machine à faire des glacons dans le 3 qui est assé sympas 😀
    Et l’ouverture de la barrière dans les Goonies (oué oué moins longue mais c un classique :p)

    Like

  12. real34's avatar real34 says:

    Bravo pour cet article propre, clair et qui donne envie de faire des choses simples. J’aime tout particulièrement les images.

    Je rajouterai juste ma citation favorite : “Everything should be made as simple as possible, but not simpler.” (A. Einstein)

    Like

  13. david's avatar david says:

    @greg et pas seulement à l’écriture. Tu peux l’appliquer à tout. Business Plan, slides, press release, website bla bla bla.
    Qui n’a jamais rendu un travail/dossier (ou wathever) en rajoutant une derniere couche pour faire du genre “je rajoute un peu plus pour étaler mon savoir”. (un peu de la culture : au moins tu en as, au plus tu…)
    Le travail de simplification est une tache ardue et va – je pense – à l’encontre du raisonnement humain 🙂
    J’appelle cela de la “masturbation cérébrale (ou intellectuelle…. selon les points de vue 🙂

    Like

  14. soso's avatar soso says:

    Bien cool ce petit article (quelques fautes par ci par là quand même, à enlever pour qu’il soit absolument parfait ;)). Un peu académique (un peu d’humour c’est pas mal !!). En tout cas, j’y ai appris pas mal et c’est l’essentiel 🙂
    Merci

    Like

  15. vinch's avatar Vinch says:

    Quelles sont les fautes pour que je puisse rendre l’article parfait ?

    Like

  16. Benjamin's avatar Benjamin says:

    Très chouette article Vinch.

    Tu en a oublié un:

    ” Si Trop is te veel, alors moins is très bien!”

    🙂

    Like

Leave a Comment