J’ai utilisĂ© TDD pour la 1Ăšre fois en 2001, sur un projet en crise. đŸ€ž

Le chef de projet, un consultant indĂ©pendant dont le contrat avait pris fin Ă  l’avant-veille de la recette, avait fait un fait un bon travail de coordination, de nĂ©gociation (c’était un projet rĂ©alisĂ© au forfait) et de reporting.

Il s’agissait de la “refonte iso-fonctionnelle” d’une application de gestion, dont le code FoxPro devait ĂȘtre converti en Delphi. Aucun projet dit de “refonte iso-fonctionnelle” ne tient rĂ©ellement debout, mais celui-ci Ă©tait particuliĂšrement acrobatique :

🌞🌚 Windows et Dos, c’est le jour et la nuit
😛 volume de la documentation fonctionnelle : ∅
😹 pas de phase de rĂ©tro-analyse, ni de spĂ©cification

Dixit le client 6 mois plus tÎt : pourquoi spécifier, quand on dispose du code ?

Il avait ajoutĂ© : en fait on va mĂȘme la rĂ©Ă©crire ISO-bug.😉

C’est à dire : mot pour mot, feature pour feature, au bug prùs.

Une prĂ©diction pour le moins optimiste. La recette dura 12 semaines (au lieu des 2 prĂ©vues dans le “Plan d’Assurance QualitĂ©â€ du projet) durant lesquelles le MaĂźtre d’Ouvrage identifia environ 450 anomalies.

Bien sĂ»r, beaucoup de dĂ©fauts prenaient leur source dans l’absence de spĂ©cification des fonctionnalitĂ©s concernĂ©es, et ma sociĂ©tĂ© ne manquait pas de le souligner en comitĂ© de projet.

đŸ€ș Pendant que les commerciaux croisaient le fer Ă  propos des pĂ©nalitĂ©s de retard, les dĂ©veloppeurs luttaient avec le monstre qu’ils avaient crĂ©Ă©. đŸ€ș

À mon arrivĂ©e, je leur demandai :

— Vous faites des tests unitaires ?
— Jamais entendu parler. C’est quoi ?

Ensuite l’état de l’art Ă©volua :

➕ dĂ©bogage en binĂŽmes
➕ assertions dans le code pour valider des hypothĂšses de dĂ©bogage
➖ fin des system.print dans le code
➕ isolement des assertions dans leur propre modules a.k.a “suites de tests”
➕ refactoring du code une fois celui-ci couvert
➕ rĂ©Ă©criture de certains modules en TDD le cas Ă©chĂ©ant
➕ MaĂźtre d’Ouvrage prĂ©sent dans l’espace de travail 3 jours sur 5
➖ fin du remplissage des PV de tests unitaires

Ce dernier point mérite une explication. La méthodologie des forfaits incluait la production de nombreux documents, dont un formulaire papier sur lequel on devait consigner tous nos TUs:

nom du TU | date de passage du TU | rĂ©sultat (OK/KO) | signature du dĂ©veloppeur ✍

Un jour le responsable de la Direction QualitĂ© (la mĂȘme DQ qui avait Ă©mis le fameux Guide des Projets en C), passe inspecter notre “qualitĂ© structurelle”.

— Je peux voir les PVs de tests unitaires signĂ©s ?

Je lui montrai notre suite de tests dUnit. Un clic et la barre verte dévalait 150 tests en 5 secondes. Je lui expliquai en quoi ça consistait.

— OK. Mais je vois pas vos feuilles de TU signĂ©es.
— Si on imprime une copie de cet Ă©cran, ça passe ?
— Bah non.

Signe que votre Ă©tat de l’art Ă©volue vers un nouveau plateau : certains de ses procĂ©dĂ©s deviennent obsolĂštes.

publié sur LinkedIn le 24/03/2023