Dur Comme Faire

Aller au contenu | Aller au menu | Aller à la recherche

Soyez fainéants !

Be Lazy! The greatest inefficiencies come from solving problems you will never have.

Cette phrase tirée des transparents d'une conférence donnée par Rasmus Lerdorf en janvier dernier, signifie à peu de choses près : Soyez fainéants ! Les plus grandes inefficacités viennent de la résolution de problèmes que vous n'aurez jamais.

Cette phrase à première vue provocatrice met, en fait, en lumière un problème très répandu chez les développeurs : la quête du code parfait qui va s'adapter à toutes les situations.

Entendons nous bien, je ne jette la pierre à personne; moi même, cela ne fait pas si longtemps que j'ai pris conscience du problème. Mon but est précisément de permettre à ceux qui y croient encore de comprendre plus tôt pourquoi cette quête est vaine et contre productive.

A première vue, écrire un code capable de gérer tous les cas est LA solution. Seulement en pratique, on s'apercoit très vite que cela n'est jamais possible car les besoins et les contextes changent et tous ces changements ne peuvent pas être prévus. De plus avec l'évolution de votre propre niveau de compétence, certains choix vous sembleront inappropriés et vous souhaiterez revenir dessus. Vous aurez ainsi passé un temps non négligeable sur du code qui n'aura finalement jamais servi.

La philosophie que prône ici Rasmus Lerdorf, et qui se rapproche fortement de celle de l'eXtreme Programming, est qu'il faut se limiter à coder le strict nécessaire. Ainsi, on diminue le volume du code, et donc le nombre de bugs potentiels, tout en évitant de perdre du temps à développer des parties qui ne serviront jamais.

jeudi 24 février 2005 à 13h25 - PHP Fil de syndication

Rétroliens

Aucun rétrolien pour le moment.

Les rétroliens pour ce billet sont fermés.

Commentaires

Gravatar de perrick

Attention tout de m?me : pour en avoir parler avec lui, Rasmus pr?cise bien que l'eXtremme Programming c'est tr?s exigeant quand c'est fait "by-the-book" : je ne pense pas qu'il soit un avocat de cette m?thodologie. Et puis XP va beaucoup plus loin que le seul principe YAGNI...

perrick le jeudi 24 février 2005 à 16h11 Icone du permalien

Gravatar de Fabien

Je pense que m?me si l'on applique pas XP ? 100%, utiliser certaines des techniques et m?thodes propos? par XP ne sont jamais inutile. Comme par exemple le principe ?nonc? ici ou les tests unitaires ne sont jamais inutiles.

Fabien le jeudi 24 février 2005 à 16h30 Icone du permalien

Gravatar de C?dric

Mais appliquer tout XP en adaptant au contexte en cours donne vraiment de bons r?sultats. Ceci dit commencer par les tests, le remaniement et la simplicit? apporte d?j? pas mal en effet.
Disons que au del? de XP, on parle de pratiques agiles.

C?dric le jeudi 24 février 2005 à 17h29 Icone du permalien

Gravatar de YoGi

"certains choix vous semblerons" -> "certains choix vous sembleront"

YoGi le jeudi 24 février 2005 à 17h30 Icone du permalien

Gravatar de JMF

YoGi> Merci, c'est corrig?. :)

JMF le jeudi 24 février 2005 à 17h54 Icone du permalien

Gravatar de Vincent

Je suis tout ? fait d'accord sur le principe, mais il faut faire attention ? la mise en ?uvre.

M?me si concevoir uniquement son code pour un but pr?cis est important et permet souvent de r?duire la taille du code, elle implique souvent des travaux de remaniements complexes sur lesquels il ne faut pas rechigner en cas de modifcations des besoins.

Ce qui veut dire que face ? un changement de direction, il est souvent difficile de prendre la d?cision de casser ce que l'on vient de faire plut?t que d'y installer une verrue. Et ce genre de comportements am?ne toujours un d?veloppement ? d?g?n?rer.

Il faut donc ?tre fain?ant lorsque l'on met en place une architecture, et un peu moins lorsqu'on la modifie. Surtout qu'un bon remaniment effectu? correctement am?ne toujours ? finalement gagner du temps m?me si la plupart des programmeurs croient le contraire.

Vincent le jeudi 24 février 2005 à 19h55 Icone du permalien

Ajouter un commentaire

Les commentaires pour ce billet sont fermés.

XHTML - CSS - DotClear - Technorati

Les billets de ce blog sont sous licence Creative Commons