Sharpest tool in the shed by Lachlan Donald, on Flickr À chaque fois que je parle de test unitaire, de clean code ou de refactoring, il arrive systématiquement un moment où une voix s’élève de la salle : Moi, je suis convaincu, mais mon client…

Bon dès fois, client est remplacé par chef ou manager, mais ça ne change pas grand chose.

– Oui, mais mon client il ne comprend pas qu’on prenne du temps pour refactorer

– Oui, mais mon client il trouve que les tests automatisés, c’est une perte de temps

– Oui, mais mon client ne me donne pas le temps de le faire

– Oui, mais mon client…

Bon, déjà, si vous travaillez pour un gros compte, il est peu probable que vous parliez au client final, mais plus certainement à un intermédiaire qui voit dans la création de règle absurde le principal moyen de justifier son utilité. Parce qu’en réalité, la plupart du temps, les clients, ceux pour qui le logiciel qu’on réalise compte vraiment, la qualité ils s’en soucient, ils préfèrent avoir un poil moins de fonctionnalités qui marchent bien que de partir dans le cycle infernal de la TMA.

Mais c’est vrai que des fois on tombe sur des gens qui nous tiennent ce discours, qui veulent nous dire comment faire notre métier.

Personnellement, quand j’engage quelqu’un pour faire un travail, je m’assure que ce soit quelqu’un de confiance qui connaît son métier. Ensuite, c’est à lui de choisir ses outils pour faire le travail au mieux. Personne n’ira jamais dire à un peintre que lisser les enduits, c’est une perte de temps. À un dentiste, que la fraise, ça consomme trop, un petit burin fera l’affaire. À un maçon, qu’à la place d’une truelle, il n’aura qu’à faire avec la pelle qu’il a déjà.

Enfin, si, des clients qui disent ça, il doit y en avoir1, mais je pense2 qu’aucun professionnel ne les écoute.

Si tu es développeur, c’est à toi de choisir les outils pour réaliser le boulot à faire. Si tu es convaincu que le clean code, le tdd, le refactoring sont les bons outils pour faire une application qui soit maintenable dans le temps, évolutive et fiable3, ne laisse pas ton client te dire que tu ne peux pas t’en servir.

C’est ton métier, c’est à toi de choisir. Il faut que ça rentre dans ta tête.

Parce qu’au final, c’est toi qui sera responsable de cette application. C’est ta responsabilité de développeur, de professionnel qui est en jeu.

Et, puis bon, si vraiment ton client persiste, c’est le signe qu’il est grand temps d’en trouver un autre.


– illustration : Sharpest tool in the shed by Lachlan Donald en CC-BY 2.0

  1. même si j’ai un doute pour le dentiste :) 

  2. j’espère ? 

  3. c’est ma conviction