Le ROI du TDD ?

le 21/05/2008 par Ludovic Cinquin
Tags: Product & Design

Nous avons chez OCTO, des mailings très actives sur lesquelles les consultants posent des questions et débattent de sujets techniques, méthodologiques, fonctionnels,...

Je suis souvent soufflé par la qualité de ces débats.

Histoire de rendre un peu visible cet iceberg, j'ai prévu de prendre certains threads intéressants pour les restituer sur notre blog. Voici donc, pour démarrer, une version abrégée d'une discussion sur le ROI des approches de développement piloté par les tests. Merci à Misters F, C, G et S pour leurs contributions involontaires et tronquées...


Pour la Nième fois, un client me demande : "et le Test Driven Développement (TDD), ça va me coûter combien au final ?"

  • Il comprend les apports / la diminution des risques ....
  • Il comprend également que ça va lui coûter : il y a des développements, à créer, maintenir, refactorer.
  • Intuitivement, il a l'impression que ça colle : apports >> coût initial
  • Il voudrait des chiffres, des nombres, une formule magique, lui permettant de vendre cette démarche autour de lui

Est-ce qu'on a des éléments pour répondre précisément à cette question redondante ?

J'ai trouvé cette étude, couvrant les aspects ROI du TDD :

http://www.ipd.uka.de/~exp/xp/edser03.pdf

Vous en pensez quoi ?

Mister F


On peut généralement identifier les coûts suivants :

  • Formation initiale à cette technique de programmation (mobilisation des développeurs pendant X jours)
  • Coûts liés à la baisse de productivité lors de la phase d'apprentissage : plus de code à écrire, démotivation, obstacles nouveaux, etc.
  • Coûts liés à la généralisation/standardisation de la démarche une fois la phase de montée en compétence achevée (extensions à d'autres projets, formation des nouveaux, etc.)

On somme le tout et on obtient le coût de l'investissement dans TDD. Que te manque-t-il comme éléments dans ta mission pour répondre à cette question ?

Mister C


D'accord avec toi sur les coûts énoncés. Mais du coup, quel est ton retour d'expérience sur les sujets suivants

1. Investissement à prévoir par Développeur ?

2. Perte de productivité constatée suite à l'introduction du TDD ?

Ma curiosité me pousse également à investiguer le sujet ROI, car la question qui suivra sera fatalement celle-ci. Soit : "... combien me fait gagner le TDD ?"

Mister F


Pour la question 1, ça dépend des développeurs. J'ai vu des développeurs prendre le déclic en une semaine après 2 jours de binômage. D'autres ont subi une formation de 5 jours et des jours de binômage, ils ont reçu de la documentation, on les a harangués, et en 3 mois il n'y étaient toujours pas ('et n'y seront peut être jamais). Ma "règle" empirique : pour prendre ou perdre une habitude il faut 21 jours.

Sur la question 2, je vais te répondre par une autre question : quelle est ta définition de « productivité » ?

Mister C


La moitié de 42. C'est logique :).

Est-ce que ton client sait combien ça lui coûte actuellement ? Est-ce que toi, tu le sais ? Quand on aura bien mesuré, et surtout les problèmes, on pourra discuter TDD. Sans ça, il pourra toujours t'expliquer que c'est trop cher...

Autre indice : si tu parles de qualité, on te demande combien ça coûte, si tu parles de productivité, on te demande combien ça rapporte.

Toutes nos expérience OCTO nous prouvent que le TDD vaut le coup. Alors, oui, il est possible de trouver des coûts pour remplir la deuxième colonne, mais à mon avis, attendons d'avoir rempli celle des gains Au final, on ne sait pas promouvoir cette approche à quelqu'un qui raisonne coût plutôt que valeur. En plus clair : son adoption n'aura rien d'un raisonnement, ce sera l'adoption d'une vision que tu lui projettes.

Mister G


Il ne peut pas y avoir de formule magique c'est bien là le problème. tout comme un chiffrage se fait souvent au doigt mouillé, et c'est l'expérience qui te fait dire que ça va coûter à peu près XX j.h. J'ai plusieurs expériences TDD à mon actif, mais je ne sais pas te donner un chiffre de ROI !!! Tout simplement parce qu'il faudrait comparer un avant et un après sur un seul et même projet, ce qui est à peu près impossible. La seule chose que j'ai, c'est des exemples de tickets d'entrée. Par contre une fois que tu y as gouté .....tu peux ne plus t'en passer.

Quand tu mets en place une démarche TDD, il faut aussi que tu mesures l'évolution de certains indicateurs :

  • Délai de MEP pour une nouvelle fonctionnalité
  • Nombre de bug en prod
  • Temps de résolution des bugs

C'est ça qui te permettra de valider que tes options d'amélioration vont dans le bon sens Mister S


Je réponds souvent à la question "quel ROI pour TDD ?" par une autre question :

  • Pour répondre, j'aurais besoin de savoir : quel est le coût actuel de la non qualité dans vos projets ?

Si le client ne sait pas, il n'y aura aucun moyen de savoir le ROI de TDD chez lui. Le mieux est d'arrêter les batailles de chiffres et de parler bon sens. Si le client te dit un chiffre, mettons NQ, propose lui d'investir 10% de NQ dans la formation TDD, et promets lui que tu vas essayer de réduire le coût de la non qualité d'au moins 10%. Si tu as déjà travaillé en TDD sur un projet tu sais que ce pari est gagné d'avance.

Mister C