Beckett, la guitare de Jimi Hendrix et les pratiques agiles
Perplexité chez les développeurs : les pratiques agiles (TDD, conception incrémentale, etc.) conduisent-elles, oui ou non, à "bien" programmer ? à trouver des solutions élégantes qui attireront le respect des pairs ?
Quand on fréquente des musiciens, on finit souvent par rencontrer l'archétype du débutant dilettante. Celui qui aimerait résume ainsi :
"Ever Tried. Ever Failed. No Matter. Try Again. Fail Again. Fail Better."
Les pratiques agiles ont-elles un intérêt, alors ? Revenons au musicien et son instrument. Si l'instrument le pousse à produire quelque chose de crado (parce qu'il est de mauvaise qualité, parce qu'il manque de constance, parce qu'il est difficile à manier, etc.) il y a deux risques.
La motivation du musicien va s'amenuiser avant qu'il ait atteint un niveau gratifiant -- avant qu'il ne maîtrise suffisamment langage et technique pour pouvoir exprimer, transmettre ses émotions au travers de son jeu.
L'objectif du musicien en devenir peut passer de "produire de la bonne musique" à "arriver à jouer avec un mauvais instrument (indépendamment du résultat final)".
Ce ne sont pas les pratiques agiles qui produiront le bon design. Par contre elles aideront le développeur à concentrer son énergie là où il faut : vers l'expérimentation, l'apprentissage, la lecture... plutôt que de le disperser à coller du scotch sur des débuts de fuite d'eau, à veiller tard le soir, à (se) mentir sur la qualité de son travail.
Pour paraphraser l'irlandais : les pratiques agiles ne t'aident pas à réussir, elles t'aident à échouer mieux.