Ouarzy's Blog

Ouarzy's Blog

Vendre du test pour travailler comme un fier développeur

Un argument récurrent lorsqu’on propose de mettre en place des TU voir (oh mon dieu !) du TDD c’est que le client final se fiche des tests. Donc ce n’est pas vendeur. Comment voulez-vous vendre quelque chose que le client ne demande pas, et qui semble cher ?

 

dont.gif 

 

Puisque les gens qui tiennent cette argumentation aiment souvent nous comparer à d’autres métiers, « alors comparons, mais comparons vraiment » (oui je déteste cette pub moi aussi). Nous autres, développeurs passionnés, préférons nous comparer à des artisans qu’à des industries. Car, n’en déplaise à certain, notre travail est artistique et artisanal, non pas industriel, sinon nous aurions déjà créé des robots capables d’écrire du code de qualité. Prenons un peintre donc. Vous lui demandez de repeindre votre salon. Tâche qui ne semble pas bien compliquée soit dit en passant.

 

Le peintre débutant, et/ou qui ne s’épanouit pas dans son travail, finira le plus vite possible (Ca tombe bien ça vous coutera moins cher à priori). Mais le lendemain vous trouverez des tâches de peinture sur votre télé. De la terre sur vos chaises qu’il aura manifestement utilisées pour peindre le haut du mur. Et votre machine à coudre sera mystérieusement cassée, comme si elle était tombée d’un meuble (True Story). Sans compter évidemment  qu’on verra les traces de pinceaux et que la peinture commencera à partir après quelques mois. Au final, ce peintre vous aura couté une fortune en effets collatéraux, et votre salon sera encore moche.

 

true.jpg

 

Le peintre professionnel de son côté facturera plus cher, et prendra plus de temps. Et le lendemain vous retrouverez votre maison en excellent état, probablement même mieux nettoyée. La peinture sera nette et sans accroc. Elle tiendra des années. Ce que vous avez payé en définitive c’est l’expérience d’un bon peintre. Le temps qu’il a pris pour protéger vos meubles, le soin qu’il a pris pour ne surtout pas abimer vos affaires. Le travail de ponçage nécessaire pour faire tenir la peinture. Le comblement des trous avec du plâtre. L'application d'une sous couche… etc. Bref, vous avez payé du professionnalisme.

 

Et que se passe-t-il si vous refusez de payer cet artisan au prix qu’il pense être le bon ? Si le marché le permet, il ira travailler pour quelqu’un d’autre. Eventuellement il réduira sa marge, quitte à être payé comme un débutant. Mais en aucun cas il ne rognera sur la qualité de sa prestation.

 

Et voilà, vous l’avez. La recette secrète pour vendre du test, c’est de ne pas parler de tests (notez que ça marche aussi avec l’agilité). Evidemment que ça n’intéresse pas votre client. Par contre si vous lui parlez de robustesse, de sécurité, de non régression, là ça va lui parler. Ça lui semblera même une évidence (car après tout il serait bien peu professionnel de livrer un produit peu fiable, moche, avec des failles de sécurité et qui subit des régressions à chaque évolution n’est-ce pas ?). Vendez du professionnalisme.

 

Pour travailler professionnellement, il faut savoir dire non quand on vous demande de produire quelque chose de mauvaise qualité. Il faut pouvoir être fier de son travail, et assumer ses responsabilités. C’est à vous de mettre en œuvre les moyens techniques pour créer un beau produit. Ça signifie être quelqu’un de fiable, compétent, qui utilise toutes les méthodes possibles de notre métier dans un seul but : améliorer la satisfaction du client.

 

no.jpg

 

Pour travailler avec fierté, il vous faut du code testé, car c’est le seul moyen simple et finalement peu couteux dont nous disposions pour produire du code de qualité. Car le test permet une adaptabilité, une souplesse pour ajouter/supprimer à tout moment des concepts importants. Ce n’est pas le seul point à respecter pour satisfaire un client, mais c’est un point sur lequel nous développeurs, pouvons (devons) avoir de l’influence.

  

Car c’est avec de la souplesse et de l’adaptabilité qu’on parvient le mieux à satisfaire un client. Oui, votre client changera d’avis et/ou de besoins. C’est son métier qui veut ça. Et s’il ne s’adapte pas au marché, il prend un risque pour son activité. Ne pénalisez pas votre client.

 

Le jour ou plus aucun développeur n’acceptera de travailler sur un code dont il n’est pas fier, les mentalités finiront peut être par évoluer. Car si aujourd’hui des clients et des managers pensent que les tests, c’est du temps perdu, c’est avant tout de notre faute. Nous leur avons laissés croire qu’il était possible de créer des logiciels professionnels sans cela !

 

jecraque.gif

 

Alors les gens s’habituent aux logiciels de piètre qualité, et les décideurs pensent qu’il devient acceptable de vendre un produit bogué et à peine fini à des millions de personnes. Et tout ça avec de la bonne volonté ! Car après le développement calamiteux et hors budget, les décideurs en question ont investi beaucoup d’argent en stabilisation et en maintenance. Après de tels dépenses, il faut que de l’argent rentre, c’est ainsi qu’on créé une activité pérenne. En voulant gagner du temps sur les tests, on perd de l’argent sur le produit.

 

Il est temps de prendre nos responsabilités. Il est temps de changer les pratiques. Il est temps de retrouver notre fierté. Refusez le travail bâclé. Testez, et soyez fier de ce que vous produisez.

 

Merci au DevLyon pour les conseils et la relecture!

 

 



10/01/2014
3 Poster un commentaire
Ces blogs de Informatique & Internet pourraient vous intéresser