Cessez d’attendre la fin du projet pour commencer la recette

((/dotclear/public/programmation.gif|Programmation|L|Programmation))J’ai traduit un billet intéressant ++[« Stop waiting to the end of the project to start QA!!! (And other QA principles) »|http://www.makinggoodsoftware.com/2010/05/02/stop-waiting-to-the-end-of-the-project-to-start-qa/|en]++ sur le ++[Blog de Alberto Gutierrez|http://www.makinggoodsoftware.com/|en]++. Si vous souhaitez continuer votre lecture sur ce sujet, je vous conseille le billet de Hiren Doshi, ++[« A quel moment engager l’équipe de recette dans une itération ? »|/dotclear/index.php?post/2009/12/08/A-quel-moment-engager-la-recette-dans-une-iteration|fr]++. Il est toujours intéressant d’avoir deux points de vue qui se rejoignent avec des différences « sensibles »…%%% > Beaucoup de chefs de projet considèrent qu’il est improbable de détecter des bogues majeurs durant la recette –technique–$$NdT : le terme anglais est QA (Quality Assurance). J’ai toujours du mal à le traduire, tantôt test d’intégration, recette technique ou même recette fonctionnelle suivant les organisations…$$, ce qui ressemble à aller à la guerre en espérant ne pas avoir de pertes humaines. L’une des conséquences d’un tel raisonnement naïf est qu’ils sont habitués à planifier la recette –technique– comme la dernière phase du processus de développement logiciel pour finalement découvrir que : %%% > – Cela n’offre pas assez de temps pour réagir lors de l’apparition de bogues majeurs.%%% > – Cela génère beaucoup de tension entre les équipes de recette –technique– et de développement. Il devient donc crucial pour les développeurs de passer avec succès la recette –technique– parce qu’ils savent qu’ils n’auront pas assez de temps pour corriger un bogue majeur.%%% > – Cela n’est pas adapté pour mener des tests exploratoires. Les tests exploratoires permettent aux testeurs d’appliquer une approche boîte noire qui est excellente pour trouver les bogues les plus importants dans l’application.%%% > – Cela exige des passages de relai et un paramétrage importants.%%% > %%% > Une leçon que j’ai apprise il y a longtemps, est que la recette –technique– peut opérer comme un processus distinct dans d’autres industries, par exemple le manufacturing, mais cela ne fonctionne pas dans le développement logiciel. Chaque fonctionnalité unitaire qui est implémentée dans une application devrait être passée immédiatement en recette –technique–. Vous trouverez ci-après mes principes concernant la recette –technique–.%%% > %%% > __1. Il n’y a pas de transferts de responsabilités entre le développement et les tests__%%% > Coder et tester ne sont pas deux processus distincts, ils sont réalisées en parallèle, et on ne peut pas terminer l’un sans terminer l’autre et vice versa (extrait de : ++[Intégration continue, aller encore plus loin que la compilation continue|http://www.makinggoodsoftware.com/2009/11/29/continuous-integration-going-beyond-continuous-compilation/|en]++).%%% > %%% > __2. Développeurs et testeurs ont un objectif commun__%%% > Ils ne réalisent pas des activités différentes, les développeurs ne sont pas seulement concentrés sur le développement et les testeurs sur les tests. Ils partagent un objectif commun, produire un logiciel de qualité de façon coordonnée à partir des attentes du propriétaire du produit (extrait de : ++[Intégration continue, aller encore plus loin que la compilation continue|http://www.makinggoodsoftware.com/2009/11/29/continuous-integration-going-beyond-continuous-compilation/|en]++).%%% > %%% > __3. Les équipes de recette –technique– et de développement doivent fournir leurs plannings au sein d’un planning unique__%%% > Il n’y a pas un planning de développement et un autre pour la recette –technique–, parce qu’ils dépendent l’un de l’autre.%%% > %%% > __4. Le rôle d’un recetteur –technique– ne devrait pas être moins valorisé, qualifié ou reconnu que le rôle d’un développeur__%%% > J’ai travaillé sur de nombreux projets où les recetteurs –techniques– sont considérés comme des collaborateurs de deuxième classe qui effectuent des tâches plus faciles que les développeurs. En réalité, dans de nombreux projets, le type de rôle tenu est celui d’un testeur qui suit uniquement un script de test et prenant notes des résultats attendus et obtenus à chaque étape.%%% > %%% > À mon avis, les testeurs apportent beaucoup de valeur ajoutée au projet, ils devraient être responsables de l’écriture de tests automatisés, de la mise en place des environnements et de la coordination avec le Métier pour s’assurer de leurs attentes réelles.%%% > %%% > __5. Le recetteur –technique– et le développeur n’ont pas besoin d’être deux personnes différentes, c’est seulement deux rôles différents__%%% > Parce que la recette –technique– a coutume de se passer à la dernière étape du développement logiciel, et parce qu’elle était considérée comme une sorte de processus de certification, le management a décidé que la recette –technique– devrait être confiée à une équipe totalement indépendante, et cela a conduit à l’idée que le recetteur –technique– et le développeur devraient toujours être non seulement deux rôles différents, mais aussi deux personnes différentes.%%% > %%% > __6. La recette –technique– devrait être planifiée de telle manière qu’elle puisse représenter jusqu’à 50% du temps de développement__%%% > C’est juste une règle empirique, et bien sûr c’est à juger au cas par cas, mais il est important de comprendre que la recette –technique– est une tâche très importante qui, lorsqu’elle est correctement réalisée, pourrait représentée jusqu’à 50% du temps de développement.%%%

Une réflexion au sujet de « Cessez d’attendre la fin du projet pour commencer la recette »

  1. Bonsoir,
    C’est avec grand intérêt que j’ai lu l’article traduit « Cessez d’attendre la fin du projet pour commencer la recette technique ».
    J’aurais voulu savoir : Qu’entendez-vous par recette technique ? S’agit-il des tests de performance (charge/stress…) ou d’exploitabilité de l’application (respect des exigences de l’exploitant) ?
    J’aimerais également savoir, comment vous fonctionnez dans un mode projet pour mener la recette technique si celle-ci ne vient pas après la recette fonctionnelle. En effet, la recette technique est fortement dépendante des scénarios fonctionnels écrits dans une version « assez stable » de l’application.
    Et enfin, j’aimerais connaître s’il existait des probabilités (abaques) qu’un bogue majeur soit découvert en recette technique et qui n’aurait pu être décelé dans des phases en amont (phase de tests unitaires/Intégration/Recette Fonctionnelle) au prix de simuler des boucles ou tout autre artifice de simulation de charge.
    Merci pour votre réponse.
    Cordialement,
    Un de vos Padawan

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *