Nouveaux Plateaux đ
plateaux #5
[plateaux, state-of-the-art]
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.