Aller au contenu | Aller au menu | Aller à la recherche
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
Aucun rétrolien pour le moment.
Les rétroliens pour ce billet sont fermés.
![]()
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
![]()
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
![]()
"certains choix vous semblerons" -> "certains choix vous sembleront"
YoGi
le jeudi 24 février 2005 à 17h30
![]()
YoGi> Merci, c'est corrig?.
JMF
le jeudi 24 février 2005 à 17h54
![]()
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
Les commentaires pour ce billet sont fermés.
© 2003-2008 Jean-Marc Fontaine - Tous droits réservés
XHTML - CSS - DotClear - Technorati
Les billets de ce blog sont sous licence Creative Commons
perrick le jeudi 24 février 2005 à 16h11