Skip to main content

L'importance de l'ingénierie de la qualité a refait surface alors que des secteurs entiers passent au télétravail tout en tentant de maintenir la qualité de leurs processus et de leurs produits. 

Le COVID a été un véritable bouleversement pour le monde entier. Alors que les gouvernements ont imposé des mesures de distanciation sociale et de quarantaine, les entreprises ont dû se réinventer en ce qui concerne les méthodes de travail. 

En tant que testeur, SDET, ingénieur QA, ou toute autre fonction responsable de la qualité dans votre entreprise, votre quotidien a probablement été perturbé.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

L’Ingénierie de la Qualité Efficace en Télétravail

Avant la pandémie, je travaillais déjà entièrement à distance chez Auth0 (une entreprise distante distribuée à l’échelle mondiale), et j'ai aussi travaillé à distance dans d'autres entreprises. 

Dans cet article, je vais partager mes astuces, conseils et méthodes pour gérer le télétravail et les pratiques d’Assurance Qualité. Avec les tendances de l’ingénierie de la qualité qui évoluent rapidement, notamment en environnement distant, il est essentiel de rester informé sur les outils et stratégies qui peuvent accompagner ce changement.

Le plus grand conseil général que je peux vous donner est de vous préparer à la communication asynchrone : vous devrez souvent attendre avant d'interagir, et il faudra apprendre à le gérer.

Lorsque vous adoptez des pratiques à distance, il est important de reconnaître la différence entre l’ingénierie de la qualité et l’assurance qualité. Tandis que l’Assurance Qualité vise principalement à détecter les défauts a posteriori, l’Ingénierie de la Qualité adopte une approche plus globale et préventive, assurant que la qualité est intégrée à chaque étape du développement.

Stratégies et Conseils pour les Ingénieurs QA à Distance

1. Avertissement : Ce n’est pas vraiment « business as usual » 

Pendant la pandémie, les travailleurs à distance subissaient souvent un stress et une pression accrus (enfants à la maison, mauvaises conditions de bureau à domicile, décès ou maladie dans la famille, etc.). Que vous soyez manager, lead, senior ou junior, il est crucial de comprendre que la situation actuelle n'est pas la normale. Le COVID était un cas extrême (heureusement !), et à ce titre, il a exigé de chacun une adaptation supplémentaire.  

En tant que manager, montrez à vos collaborateurs directs que vous êtes là pour les aider. En tant que lead technique ou principal, donnez de la direction à votre équipe tout en montrant aussi votre côté humain afin qu'ils se sentent en sécurité pour exprimer leur vulnérabilité. Pour les autres, ne ressentez pas la pression de devoir performer comme d’habitude – il est compréhensible que le rythme soit ralenti.  

Les entreprises doivent reconnaître que la vitesse de leurs équipes diminuera et que le travail à distance n’en est pas la cause. Ce sont des circonstances exceptionnelles. Le télétravail permet à votre entreprise de continuer à fonctionner, même si ce n'est pas à plein régime.  

2. Les Revues de Code sont l’un de vos meilleurs leviers qualité  

Même si votre rôle en matière de qualité dans l’entreprise était traditionnellement plus manuel, les revues de code devraient déjà faire partie de vos process. Elles représentent souvent une étape importante du cycle de vie du développement logiciel et offrent un point d’échange où les gens sont obligés de communiquer pour améliorer la qualité du code et éviter les erreurs. 

En télétravail, elles sont particulièrement importantes car elles constituent un rituel naturel déjà en place, il sera donc facile de les appliquer. Bien utilisées, elles vous aideront à résoudre les problèmes de communication asynchrone évoqués précédemment. Exploiter le bon logiciel d’ingénierie de la qualité peut considérablement améliorer le processus de revue de code, fluidifier la communication et limiter les erreurs avant qu’elles ne surviennent.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

Mes meilleurs conseils pour les revues de code :

  • Encouragez les gens à effectuer une auto-relecture en premier : l’auto-relecture est une pratique où la personne proposant le changement de code relit également son propre code et laisse des commentaires utiles avant de demander une relecture publique. Cela réduit le temps perdu par les relecteurs ultérieurs et peut même aider l’auteur à repérer de petites erreurs anodines à l’avance; 
  • Revue de code en binôme ou en séance de groupe : particulièrement utile dans les cas où la PR touche à du code sensible ou représente un changement important (comme un refactoring). La personne proposant un changement peut démarrer un appel en visioconférence, partager son écran et expliquer sa PR à l’équipe ou à un collègue. Cela permet à tout le monde d’être rapidement sur la même longueur d’onde et contribue vraiment à l’amélioration de la qualité du code. 
  • Impliquer les développeurs dans la relecture du code d’automatisation : Il est important que les développeurs participent à la relecture du code d’automatisation/test. Cela leur permet de rester à jour sur la façon dont l’application est testée et aide à appliquer le même niveau de qualité de code sur l’ensemble des codes; 
  • Veillez à ce que les SDET/Testeurs relisent le code applicatif : c’est un point vraiment crucial. Les ingénieurs qualité devraient participer aux revues de code. Vous pouvez même le faire si vous n’êtes pas très technique (c’est une excellente première étape pour savoir ce que vous devez apprendre !). Non seulement vous pouvez apporter des retours précieux, mais vous apprendrez aussi précisément ce qui change dans l’application (ce que vous pourriez rater avec un mode de travail asynchrone). Ces connaissances vous aideront à prendre de meilleures décisions de tests pour l’équipe.

Si vous n’avez pas déjà un processus strict de revue de code, c’est le moment idéal pour défendre son amélioration. C’est un outil fondamental dans une période où la communication synchrone peut être plus difficile. 

N’hésitez pas à utiliser des outils de revue de code pour mieux vous organiser et collaborer.

3. Tirez parti de la puissance du Programmation en binôme

Je ne vais pas entrer dans les détails du Programmation en binôme ou du Mob Programming, car cela ferait l’objet d’un autre article, et il existe de nombreuses ressources à ce sujet en ligne.

Cependant, je voulais souligner que c’est un outil très précieux en cette période. Que ce soit vous qui travaillez avec un autre SDET sur du code de test, ou que vous fassiez équipe avec un développeur pour travailler sur du code applicatif, je pense que c’est une excellente pratique qui favorise la cohésion de l’équipe, le partage de connaissances et l’amélioration de la qualité du code et de l’application. 

Voici quelques questions fréquemment posées à propos de la Programmation en binôme, ainsi que leurs réponses :

Qu’est-ce que la Programmation en binôme ?

Comme son nom l’indique, la Programmation en binôme est une activité au cours de laquelle deux personnes collaborent simultanément sur le même code. Cela peut aussi se faire à plusieurs, ce que l’on appelle généralement Mob Programming. 

Comment fonctionne la Programmation en binôme ?

En Programmation en binôme, il y a généralement un conducteur (celui qui écrit le code) et un navigateur (ou observateur). Cette organisation fonctionne très bien avec les outils de visioconférence à distance, où une personne partage son écran et écrit le code, tandis que l’autre fait des suggestions, commente, rappelle des éléments, ou aide à repérer/éviter des bugs.

Quels outils utiliser pour la Programmation en binôme ?

Si vous êtes d’humeur collaborative, VS Code (par exemple) propose d’excellentes capacités de collaboration avec Visual Studio Live Share, qui permet à plusieurs personnes de travailler sur un projet partagé. Cela fonctionne bien mieux qu’on ne le pense : c’est très puissant, et cela fonctionne parfaitement si les personnes se connaissent déjà ou ont des styles similaires.

Peut-on faire de la Programmation en binôme avec des personnes non techniques ?

Oui, et c’est une excellente occasion de développer des compétences de mentorat ainsi que des connaissances techniques au sein de votre équipe. 

Avez-vous des développeurs particulièrement intéressés par l’enseignement, ou ayant de l’expérience pour animer des ateliers ou des tutoriels ? Ils peuvent travailler avec vous pour vous guider dans la base de code, vous permettant ainsi d’acquérir plus d’expérience même si vous ne possédez pas encore beaucoup de compétences techniques.

Et pour les tests ?

Pour tester, essayez ce que j’appellerais le « Reverse Pair Programming ». Cela encourage l’inverse de la programmation en binôme, en devenant plutôt du test en binôme ou en groupe. Faites équipe avec des développeurs pour leur montrer comment vous testez l’application, ou pour qu’ils vous aident à la tester, ou inversement ! C’est vraiment une méthode utile pour aborder des problèmes complexes. Lisez quelques idées à ce sujet dans un autre excellent article de Maaret Pyhäjärvi.

4. Organisez des sessions de tests à distance pour collaborer en équipe : Bug Bashes, Game Days, etc. 

Les sessions de test (parfois appelées Bug Bashes, Game Days, etc.) sont une activité collaborative, généralement menée par une équipe. 

Cela peut servir à tester une nouvelle fonctionnalité spécifique, ou se tenir à un rythme régulier pour tester l’application. Les bons outils d’ingénierie de la qualité peuvent faire toute la différence pendant ces sessions collaboratives, en offrant des informations en temps réel et en simplifiant des environnements de test complexes.

L’objectif est de rassembler des personnes de l’équipe, mais aussi d’en dehors de l’équipe, provenant de multiples disciplines (développement, test, produit, design, parties prenantes métier, etc.) afin de tester l’application. Parfois, en tant que développeurs ou testeurs, nous pouvons avoir une vision biaisée et trop technique de ce que devrait être l’application, donc le fait d’impliquer d’autres parties prenantes peut apporter des retours très précieux. 

Bug Bash Roles Screenshot
Les sessions de test sont une excellente opportunité pour les équipes de se retrouver et de collaborer entre départements, même à distance.

J’ai pensé qu’il était important de souligner cela car je considère que c’est une activité particulièrement pertinente en cette période. Cela rassemble les équipes et favorise la communication et la collaboration entre différents départements, permettant potentiellement de découvrir des bugs ou des spécifications erronées qui auraient pu passer inaperçues.  

Bien sûr, organiser ces sessions à distance présente certains défis, donc voici quelques conseils pour ces cas (et pour l’organisation de manière générale).

Conseils pour organiser des sessions de test à distance :

  • Vous devriez pouvoir organiser ces sessions via un outil de visioconférence. Assurez-vous également de disposer d’un chat pour la session (si vous utilisez Slack, créez peut-être un canal Slack dédié) ; 
  • Dans les situations nécessitant des appareils (ex. téléphones mobiles ou dispositifs de salon, etc.), assurez-vous de savoir à l’avance ce dont disposent les participants. Si vous testez une application iOS et que vous invitez quelqu’un qui n’a pas d’iPhone, c’est une perte de temps pour tout le monde ; 
  • Ayez toujours au moins une personne responsable de chacune de ces sessions. Elle devra aider à l’organiser en amont, préparer la documentation ou l’environnement nécessaire pour les participants, et animer la session ; 
  • Vous devez préparer des instructions claires d’installation pour les participants et les rendre disponibles avant la session. Le temps de la session doit être consacré aux tests, pas à l’installation ; 
  • Vous devez également donner des instructions précises sur la manière de signaler les problèmes, même si ce n’est que « postez-les dans le canal » (plutôt que d’avoir tout le monde essayant de signaler les problèmes oralement en même temps) ; 
  • Prévoyez un plan pour la session. Dans ce cas, il est utile de suivre un script ou au moins une liste des points à examiner ;
  • Ceci dit, encouragez toujours les tests exploratoires, tout en ayant à l’esprit que certains auront peut-être besoin d’un petit coup de pouce pour se lancer. 
  • Vous pouvez aussi réaliser ces sessions sur des systèmes plus orientés backend. Un exercice intéressant pourrait être d’en faire une expérience de Chaos Engineering, avec un public plus technique. AWS dispose d’une version appelée Game Days, dont vous pouvez vous inspirer.
  • N’hésitez pas à mettre de l’ambiance ! Ces sessions peuvent être très amusantes lorsqu’elles sont bien organisées – je les gamifiais avec des personnages de Game of Thrones lorsque j’étais chez Miniclip il y a plusieurs années. 

Vous trouverez également plus de détails à ce sujet dans ce billet de blog, qui couvre plusieurs éléments cités ci-dessus.

5. Gérez intelligemment votre temps libre — Développez vos compétences en ingénierie de la qualité

Comme je l’ai mentionné, vous allez devoir vous habituer à la communication asynchrone. Dans le monde du test (selon la dynamique de votre équipe), les tâches d’un testeur dépendent souvent de l’achèvement des développements. Avec des équipes avançant à des rythmes plus lents et une communication différente, il se peut que vous ayez un peu de temps libre dans la journée. 

Je me souviens d’un ancien collègue qui disait souvent au stand-up : « Je suis bloqué par x », puis il passait la journée à attendre que la situation se débloque. À un moment donné, je l’ai aidé à se perfectionner dans divers domaines, et l’un des points à travailler était précisément cet état d’esprit. C’est particulièrement vrai aujourd’hui où, en plus de la possibilité de périodes creuses, vous vous retrouvez aussi chez vous, avec de nombreuses distractions autour de vous. 

Il est important de gérer votre temps et de tenir un backlog des sujets que vous souhaitez apprendre. 

Voici quelques exemples de choses que vous pouvez faire pendant votre temps libre : 

  • Avez-vous été plutôt QA manuel ? Peut-être souhaitez-vous consacrer du temps à découvrir l’automatisation.  
  • Vous avez beaucoup de connaissances en Frontend ? Prenez le temps d’acquérir également des compétences en backend.
  • Il existe de nombreuses excellentes ressources gratuites comme freeCodeCamp ou Youtube, ou abordables comme Udemy (ils proposent souvent des promotions). De plus, beaucoup de conférences sont passées en ligne à cause du Coronavirus, et certaines sont gratuites (par ex. OnlineTestConf) !
  • Ou peut-être souhaitez-vous en savoir plus sur l’application, en explorant le code applicatif. 
  • Ou encore, vous savez qu’un nouveau projet arrive, et vous devrez acquérir une nouvelle compétence pour y participer. 
  • Vous pouvez aussi profiter de ce temps pour prototyper de nouvelles idées, résorber la dette technique, travailler sur la documentation, etc.  

Peu importe vos choix. L’important est d’investir dans votre développement personnel. 

Cela ne veut pas dire que vous ne pouvez pas vous accorder une pause (c’est une pandémie mondiale, après tout). Les gens comprendront. Mais enrichir votre compétence en QA ou progresser individuellement est précieux, surtout en cette période où le marché de l’emploi a fortement chuté. 

6. Utilisez les activités d’équipe pour développer vos relations 

En guise de dernière remarque, même s’il ne s’agit pas uniquement d’un conseil lié aux tests, je voulais dire qu’il est important d’encourager les activités en équipe. Ces relations sont importantes et constituent une distraction bienvenue du travail. On les établit plus naturellement en présentiel au bureau, par exemple pendant le déjeuner, une pause café, ou même un commentaire improvisé dans la même pièce. 

Quelques conseils pour créer des liens dans un contexte à distance :

  • Dans mon équipe actuelle, nous avons installé l’application Donut pour Slack sur le canal de l’équipe. Elle nous associe chaque semaine de façon aléatoire à un membre de l’équipe pour discuter — nous pouvons alors échanger sur tout ce que nous voulons.
  • Nous avons aussi un club de lecture du vendredi, où chacun son tour partage ses connaissances (nous nous concentrons sur des sujets ayant un lien avec le travail, mais cela peut être n’importe quoi !) ; 
  • Organisez des déjeuners ou pauses café d’équipe sur le canal, pour partager un moment comme au bureau. Cela fonctionne mieux si vous êtes sur des fuseaux horaires similaires ; 
  • Organisez des quiz ou jouez ensemble à des jeux en ligne de temps en temps. Le Jackbox Party Pack est un bon exemple de jeu qui s’adapte très bien au télétravail.

Rejoignez-nous pour plus d’astuces

Pour davantage de conseils, recommandations et stratégies en assurance qualité, abonnez-vous à la newsletter du CTO Club pour recevoir les dernières analyses. Nous vous aiderons à évoluer plus intelligemment et à diriger plus efficacement grâce à des guides, ressources et stratégies venant des meilleurs experts !