L’équipe agile est composée de deux métiers à la relation bien particulière : les Quality Analysts (QA) et les Développeurs. Leurs rôles sont distincts mais ne cessent de s'entremêler.
En effet, ils sont en interaction permanente : l'un développe, l'autre teste ce qui a été développé puis signale les anomalies observées.
Avant de rentrer dans le vif du sujet, revenons rapidement et de manière non exhaustive sur le rôle et les caractéristiques de chacun :
On commence donc ici à voir se dessiner les raisons pour lesquelles développeurs et testeurs pourraient ne pas s'entendre.
Comme expliqué précédemment, le travail des testeurs est de trouver les bugs dans le travail des développeurs, on comprend donc aisément pourquoi il peut parfois y avoir des frictions.
En règle générale, les développeurs sont concentrés sur le fait de délivrer des fonctionnalités, tandis que les QA sont concentrés sur la qualité de ce qui est délivré. Ainsi, les développeurs peuvent avoir le sentiment que les testeurs cherchent la petite bête dans leur travail. Evidemment, personne n'aime que l'on pointe ses erreurs, et il peut arriver que certains prennent les choses personnellement. Nous verrons plus loin comment pallier ce problème.
De leur côté, tous les testeurs ont déjà entendu au moins une fois le fameux "Non mais ça c'est rien, c'est pas vraiment un bug !". Ainsi, les développeurs peuvent avoir tendance à décrédibiliser le travail des QA. On pense d'ailleurs souvent que le métier de QA est plus facile que celui des développeurs, que les tâches sont moins complexes, moins exigeantes et que le travail des développeurs est plus important. De par leurs rôles intrinsèques les développeurs et les QA ont des points de vue différents, qui peuvent se confronter.
Prenons en exemple une fonctionnalité X décrite dans une US :
Il peut arriver que certains comportements attendus ne soient pas explicitement spécifiés dans l'US en question (oubli, inattention...). Ces comportements peuvent sembler évidents pour les testeurs, car leur rôle est de se mettre à la place de l'utilisateur. Or du point de vue du développeur ce qui n’est pas spécifié n’est pas attendu. Il ne va donc pas en tenir compte, et il aura raison car ce qui est sujet à interprétation doit être clarifié.
Ainsi, lorsque le QA testera, il aura l'impression que le développeur n'a pas réfléchi à l'utilisation de sa fonctionnalité, voire même qu'il manque d’implication. Il crée donc un bug au développeur, qui affirmera que la demande n'était pas spécifiée. On en arrive ainsi à s'accuser mutuellement pour un bug alors que tout le monde a raison.
Mais si QA et développeurs sont si différents, ils restent totalement complémentaires et indispensables à la livraison des fonctionnalités. On comprend donc l'intérêt d'une bonne relation entre les deux parties.
Les deux métiers ne peuvent pas aller l'un sans l'autre, ils ont tous les deux des rôles primordiaux.
Sans développeurs → pas de fonctionnalité
Sans testeurs → des fonctionnalités non optimales et potentiellement buggées
Une bonne relation entre les deux parties semble donc indispensable car il est difficile d'avancer et de délivrer de la qualité si deux des principaux acteurs ne s'entendent pas. D'autre part, on dit souvent que les développeurs ne parlent pas la même langue que nous, qu’ils ont un langage plus technique, et cela apporte une couche supplémentaire de complexité. Il faut réussir à se comprendre, et ce n'est pas forcément évident.
Si on se base sur les arguments avancés plus haut, on comprend qu'il est facile pour chacun de se rejeter la faute. Or en agilité il n'y a pas de responsabilité individuelle, il n'y a qu'une responsabilité collective, en tant qu'équipe.
Il faut travailler main dans la main en gardant en tête l'objectif commun : délivrer la meilleure qualité possible à l'utilisateur. Et même si le QA est garant de la qualité, il n'en n'est pas le seul responsable. Les développeurs aussi ont la responsabilité de passer des tests unitaires pertinents.
Il n'existe aucune ambiance de travail où se rejeter la faute est source de motivation. D'une bonne entente entre les deux rôles résulte : moins de stress, un travail plus qualitatif et par la suite de meilleures fonctionnalités pour les clients.
Le fait que les QA et les développeurs communiquent permet aussi aux QA de mieux comprendre comment fonctionne l'applicatif sur lequel ils travaillent, donc de mieux comprendre les différents impacts et liens entre les fonctionnalités, et ainsi de mieux détecter la source des différents bugs. Cela permet un vrai gain de temps et d'efficacité.
Les développeurs doivent aussi comprendre que les QA permettent de détecter des bugs de fond, qui pourraient être bloquants ou problématiques plus tard. Il est ainsi possible de réagir vite, et donc de diminuer les risques liés à la qualité. Mais par-dessus tout, les développeurs doivent comprendre que le travail du QA est de trouver des bugs, ce n'est donc ni contre eux, ni pour les dénigrer, c'est leur travail.
Maintenant que nous avons compris l'importance de la bonne entente entre les développeurs et les QA, voyons comment nous pouvons la mettre en place : d'abord grâce à des process de travail, mais aussi grâce à des habitudes moins formelles.
Certains process de travail peuvent permettre une meilleure compréhension entre les développeurs et les QA, et donc permettre une meilleure entente.
Du début à la fin du parcours de développement, le QA peut épauler le développeur et l'accompagner :
D'autre part, puisqu'on reproche souvent aux développeurs de ne pas se poser la question de l'utilisation finale de la fonctionnalité, il peut être intéressant de faire l'effort de plus souvent leur parler des projets en globalité. Leur expliquer le contexte du projet, les raisons pour lesquelles tel et tel choix ont été faits. Cela leur permettra de se sentir embarqués, de mieux comprendre la finalité du produit, ils seront ainsi plus à-même d'anticiper de potentiels blocages ou problèmes.
Dans la même optique, continuer de partager après la mise en production du projet est une bonne pratique à mettre en place. Il est toujours agréable d'avoir un retour sur son travail, et partager les informations sur l'utilisation de la fonctionnalité, sur les retours des équipes métier ou sur les datas récupérées, peut être un bon moteur pour que les développeurs se sentent plus impliqués dans le produit.
Aussi, les développeurs disposent de connaissances techniques et font parfois un travail de veille sur les dernières avancées technologiques. Il peut ainsi être intéressant de les pousser à proposer des améliorations sur des fonctionnalités existantes qui ne sont pas optimales, à challenger les solutions proposées, ou encore à proposer des évolutions.
Une autre pratique qui peut permettre aux développeurs et aux QA de se rapprocher est de les faire animer ensemble la démo en binôme. Le fait de préparer la démo ensemble et que l'un effectue le parcours pendant que l'autre commente est un bon moyen de se rapprocher et de développer un bon esprit d'équipe.
On peut aussi améliorer la relation entre les QA et les développeurs de façon plus informelle, dans les paroles notamment.
Comme dans n'importe quelle équipe il est important de se féliciter et de s'encourager. Cela permet d'augmenter la productivité et le bien-être au travail.
Par exemple les QA peuvent féliciter et encourager un développeur lorsqu'il a été réactif, ou qu'il a terminé un ticket compliqué. A l'inverse, les développeurs peuvent féliciter un QA qui a trouvé un bug un peu tordu, ou parce qu'il pense toujours à mettre des jeux de données dans ses bugs.
Il ne faut pas que le QA blâme le développeur en cas de bug et de la même façon le développeur ne doit pas se moquer de ce que lui remonte le testeur, ni considérer que le testeur cherche la petite bête, c'est son travail de détecter les anomalies.
On peut même faire de ces rôles un amusement, un jeu, un peu comme le chat et la souris. Le QA et le développeur peuvent avoir une relation amicale, rire des bugs détectés.
En développant une relation amicale on a plus de facilités à se parler, à dire ce qui ne va pas, à expliquer les choses sans que l'autre ne le prenne personnellement. Cela permet aussi de se challenger.
A retenir sur la relation entre QA et Dev:
WeFiiT vous accompagne pour construire ensemble des produits à impact, au cœur d’une équipe engagée et passionnée.
Prendre RDV maintenant