Paul FEVRE

L'optimisation prématurée, ennemie de l'avancée

Lorsqu'il est temps d'avancer, de livrer, on se demande si notre produit est prêt.
Et si on se le demande trop, on ne sort rien.

Bah elle est où ta pagination Polo ? T'en a pas sur ton site ?

- On va commencer par avoir plus de contenus avant ça, tu connais l'optimisation prématurée ?
C'est mon deuxième article sur ce site, si j'avais développé la pagination avant, il n'y aurait rien.

Présentation

L'optimisation prématurée est un concept qui met en avant les features que l'on veut créer avant même qu'elles ne deviennent désirées, repoussant ainsi la sortie, tout en ajoutant une dose de complexité.

Ne le prenez pas mal, l'intention est bonne

Oui, bien souvent cette optimisation est preuve de bonne volonté, ne dit-on pas que l’enfer est pavé de bonnes intentions ? On cherche à améliorer le code ou bien "prévoir pour plus tard", mais ce "plus tard" arrivera-t-il ?

Un exemple très simple qui m'est arrivé à mes débuts

  • Je devais faire une flèche vers la droite, je m'occupe du design et de l'intégration, jusque-là pas de soucis ;
  • Mais je me dis que tant que j'y suis, autant faire les 3 autres flèches (gauche, haut, bas), et là voilà, notre optimisation prématurée ;
  • Car avant même d'utiliser une des autres flèches, le design a bien changé 3 fois, 3 modifications que j'ai dù répliquer pour rien.

Ce n'était pas grand-chose, mais c'était systématique pour moi en ce temps, il y a plus de 10 ans, et c'est mon manager de l'époque qui m'en a fait prendre conscience (merci Jean).

On y trouve tout de même un petit schéma dans l'apprentissage

  • Jeune, je suis parti à fond, dans tous les sens ;
  • Puis j'ai commencé à bien maîtriser, vouloir avoir des choses parfaites, et me retrouver dans cette optimisation prématurée ;
  • Et maintenant, je sais qu'il faut y aller, qu'il faut se confronter à ses utilisateurs, c'est ça qui nous fera avoir le produit parfait.

Pensez plutôt KISS (Keep It Simple, Stupid)

Bien que cela semble contre-intuitif, le plus difficile à apprendre, c'est apprendre à faire les choses simplement. Une application simple est plus facile à comprendre, maintenir et faire évoluer. La complexité est source de coûts de conception, de maintenance et une source potentielle d'erreurs.

Et pour le moment, je n'ai parlé que de code, mais pour l'UX c'est la même chose. Il vaut mieux n'avoir que les fonctionnalités essentielles, plutôt qu'une foule de fonctionnalités non utilisées et brouillant l'ergonomie. J'ai un petit outil en cours de développement qui illustre parfaitement cela, infos à suivre ici.

Bon, on va garder cet article KISS en s'arrêtant là, merci de m'avoir lu.