Crowdtesting : qu’est-ce que ça apporte vraiment ? Côté éditeur

Ce qu’apporte le crowdtesting ? En tout premier lieu, un entraînement d’élocution, car c’est un des mots les plus rugueux que vous aurez à prononcer dans votre vie (mais pour votre bonheur, vous trouverez dans cet article des propositions alternatives plus francofluides).

Aujourd’hui, pour répondre à cette question, nous nous plaçons du côté des éditeurs. Cela regroupe à la fois, certes, les sociétés éditant des logiciels, mais aussi les organisations ayant fait développer un site ou une appli, en interne ou par un prestataire.

Vous avez déjà testé votre produit en interne et tous vos cas passants… passent. Et là, vous envoyez ces mêmes scénarios à une plateforme de crowdtesting (comme Testeum !), et vous découvrez que la validescouade ouvre des bugs sur ce qui fonctionnait à merveille. Quelle est cette sorcellerie ? Pourquoi les crowdtesteurs découvrent-ils des bugs que vous n’aviez pas vus ?

Les crowdtesteurs vous fournissent des paires d’yeux neufs

A force de voir votre produit à longueur de journée et à longueur d’année, votre regard s’est émoussé. Un élément du site vous semblait ambigu, étrange ou disgrâcieux au premier regard, puis vous avez pris l’habitude de le voir. Vous avez perdu la volonté de demander un changement. Le phénomène qui est à l’œuvre ici est le biais de simple exposition : il suffit de se trouver en présence d’une chose pendant assez longtemps pour que cette chose nous semble appréciable.

Les crowdtesteurs sont libres de ce biais, ils n’ont jamais vu votre produit et ne se gêneront pas pour vous dire tout ce qui les tracasse. Leur avis pourrait même avoir plus d’impact. Nul n’est prophète en son pays, et bien souvent, ça vaut aussi pour les remarques d’UX…

Les crowdtesteurs ont la motivation que vous n’avez plus

Même si des tests automatisés ont été rédigés pour votre applicatif, il y a certainement des tests de régression que vous continuez de jouer à la main, version après version, sprint après sprint si vous travaillez en Scrum. Et ces scénarios-là, vous en avez assez de les ruminer encore et encore.

Les crowdtesteurs ont la fougue de la découverte, la même que vous aviez la première fois que vous avez posé les yeux sur le produit. Le scénario qui désormais vous semble insipide et sans surprise, ils le joueront avec une attention que vous ne pouvez plus fournir aussi spontanément.

Les crowdtesteurs vous prêtent leur matériel (mais il s’appelle revient)

C’est une des promesses majeures du crowdtesting : déclencher des tests tout-terrain. On pourrait parler d’immensitest, ou de diversitest. Vous pourriez tomber sur :

  • Andrea, 18 ans, alternant, qui testera sur son vieux PC et une version obsolète de Chrome avec la connexion ADSL de sa résidence étudiante en Angleterre.
  • Betty, 68 ans, retraitée, qui testera sur sa tablette Samsung de seconde main dans le TGV avec la 3G.
  • Chafia, 34 ans, graphiste, qui testera sur son iPhone flambant neuf avec la Wifi d’un café en Australie.

Vous allez découvrir avec surprise que votre menu sandwich se comporte bizarrement sur certains devices, ou que votre panier se charge décidément trop lentement. Et tant d’autres choses encore…

Les crowdtesteurs ont chacun leur corps

Ça vous semble incongru de le rappeler ? Quand on imagine des tests IHM, on pense énormément au « I », mais pas assez au « H ». Or, dans notre exemple précédent :

  • Andrea est daltonien, et les graphiques bariolés que vous affichez si fièrement sur votre site vont souverainement l’agacer. Ne vous inquiétez pas, il vous expliquera tout dans son rapport de bug.
  • Betty aime bien en rire en disant qu’elle a « des gros doigts ». Pourtant, elle ne manquera pas de vous expliquer quels sont les éléments qu’elle a du mal à cliquer sur votre interface.
  • Chafia est entourée par les clients du café qui parlent et chahutent sans discontinuer. Elle vous signifiera que vos contenus vidéos sont impossibles à consulter dans ces moments-là… à moins que vous n’y ajoutiez des sous-titres.

Votre utilisateur idéal est une personne à l’aise avec l’informatique, valide, 100 % en forme, qui a du super matos, une super connexion, un navigateur à jour, du temps devant lui, un environnement calme et un tempérament patient et bon public. Vous ne risquez pas de le rencontrer de sitôt. En attendant, faites plutôt appel à des « gens de la vraie vie », qui massifouineront votre produit avec les moyens du bord.

Les crowdtesteurs sont aussi fous que vous

Plus on est de fous… plus il y a de folies. Dans votre équipe, certaines personnes remarquent immédiatement quels éléments d’une page web ne sont pas bien alignés. D’autres ne jurent que par l’orthographe et traqueront la moindre espace insécable. C’est grâce à cette diversité de lubies que votre qualité se consolide au fil du temps.

Les crowdtesteurs ont aussi leurs propres lubies. Un background SEO, et vous voilà avec des suggestions d’amélioration de vos titres. Un penchant pour l’édition, et vous récoltez des remarques sur les polices et les espacements de lignes.

Le crowdtesting, c’est comme une boîte de chocolats, il y a des saveurs de bugs à découvrir que vous n’auriez jamais imaginées.

Récapitulons : les crowdtesteurs vous offrent des paires d’yeux neufs, la motivation du commencement, des environnements et des profils utilisateurs inédits, et enfin des angles d’attaque que vous n’auriez pas anticipés. Voilà les principales raisons pour lesquelles les bugs issus du crowdtesting sont différents de ceux que vous trouvez déjà avec brio en interne. Si vous en avez constaté d’autres, dites-nous lesquelles en commentaire !

Promyze à la loupe : quelques questions pour aller plus loin dans la qualité de code

La semaine dernière, nous présentions Promyze (anciennement Themis), une plateforme collaborative agile et ludique permettant d’améliorer en équipe la qualité de code. Nous nous sommes penchés en particulier sur les Ateliers Craft, qui permettent aux équipes de développement d’échanger efficacement sur les bonnes et les mauvaises pratiques au sein de leurs applicatifs. Cette semaine, Promyze répond à quelques-unes de nos questions au sujet des Ateliers Craft.

Les Ateliers Craft au quotidien : quelle temporalité ?

H : Que conseillez-vous pour intégrer la routine des Ateliers Craft dans le quotidien des développeurs ? En Scrum par exemple, quels moments du sprint privilégier ?

P : La temporalité des ateliers va dépendre des cas d’utilisation. Le scénario qui revient régulièrement est celui d’une équipe qui organise des ateliers à chaque sprint, donc soit 1 fois par semaine ou toutes les 2 semaines. Les fins de sprint sont un bon moment pour organiser une rétrospective collective, prendre du recul sur les développements réalisés et échanger sur les pratiques. Ainsi, cela laisse plusieurs jours aux équipes avant la rétrospective pour trouver 10 minutes afin de déposer des tags et suggérer des bonnes pratiques. Les ateliers s’intègrent très bien dans une démarche agile, puisqu’on retrouve l’idée d’interactions collectives et fréquentes et d’amélioration continue. Surtout, cela ritualise un temps d’échange sur le sujet de la qualité de code.

Qui inviter aux Ateliers Craft ?

H : Une entreprise a 3 applications : A, B et C. Son équipe X travaille sur A et B, et son équipe Y travaille sur B et C. Conseillez-vous de laisser chaque équipe se mêler de la qualité de code de ses propres applicatifs seulement ? Ou au contraire conseillez-vous de laisser les ateliers ouverts à tous ?

P : Difficile de généraliser une réponse pour chaque contexte, mais pour les premiers ateliers je préconiserais que chaque équipe travaille sur son propre code, afin de s’approprier le fonctionnement des ateliers et expérimente quelques rétrospectives. Dans un second temps, inviter des personnes externes est une piste intéressante car la richesse des ateliers provient des interactions et des échanges que vont avoir les personnes qui y participent. L’objectif n’est pas de dire “Faites comme ça !”, mais plutôt “Que pensez-vous d’utiliser plutôt cette façon de faire ?”.

Si ces « invités » travaillent sur les mêmes langages et technologies, avoir un regard extérieur est selon moi toujours bénéfique, car non engageant. En effet, l’équipe d’un projet aura toujours le dernier mot, donc il ne s’agit pas d’imposer, mais de suggérer. Le contexte du projet est vraiment primordial, il est donc important que parmi les participants il y ait des membres du projet.

En revanche, nous ne conseillerons pas que l’équipe X organise seule un atelier sur le code du projet C, car elle ne connaît probablement pas le contexte. Par contre, avoir un atelier commun sur le code du projet B avec les équipes X et Y peut être intéressant !

Même si chaque contexte a ses propres règles et bonnes pratiques, c’est important selon nous qu’une organisation définisse un socle commun de bonnes pratiques, que chaque projet viendra enrichir. De plus en plus d’entreprises structurent des “communautés de pratiques” qui vont dans ce sens. Même dans une structure à taille humaine comme chez Promyze, nous nous efforçons d’uniformiser les pratiques sur nos différents projets. Quand une personne change d’équipe, elle a déjà ainsi des repères pour facilement rentrer dans le code !

De la revue à la correction

H : Corriger une mauvaise pratique immédiatement pendant la revue de code est le meilleur moyen de ne pas la laisser tomber aux oubliettes. C’est facile quand la revue se déroule en présentiel, au poste du développeur, mais là ce n’est pas le cas. Comment conseillez-vous de procéder à la correction des mauvaises pratiques identifiées pendant les Ateliers Craft ?

P : Très bonne question qui revient souvent ! Sur ce point, nous sommes d’ailleurs en train de finaliser une fonctionnalité dans Themis qui permettra, lorsqu’on identifie qu’une bonne pratique n’a pas été suivie, de proposer une correction (ex : un refactoring). Cela permettra d’enrichir la documentation de la bonne pratique, et d’échanger avec l’équipe pour savoir si on valide ou non la suggestion de correction. Pour en revenir à la question, nous prônons une démarche d’amélioration continue du code, donc si nous avons identifié des mauvaises pratiques dans l’atelier, le premier objectif sera d’essayer de ne plus l’appliquer sur les prochains développements. Par la suite, si l’on travaille sur du code existant, et qu’on identifie une mauvaise pratique, alors à ce moment-là il peut s’avérer judicieux de le retravailler pour qu’il respecte la bonne pratique définie dans l’atelier. Il faudra évidemment veiller aux risques de régressions, donc coupler les tests et les développements est fondamental. Enfin, la correction à apporter va dépendre du niveau de criticité : s’il y a potentiellement un bug derrière une mauvaise pratique, on sera forcément plus réactif dans le passage à l’action !

Comment organiser les ateliers ?

H : Il est possible de créer des ateliers à volonté. Comment les organiser ? Est-il conseillé par exemple de tenir des ateliers thématiques ? Comment savoir quand un atelier est terminé ?

P : Nous préconisons d’organiser des ateliers thématiques (ex : HTML/CSS, NodeJS, Spring, …), au sein desquels plusieurs sessions pourront être organisées. Il n’y a qu’une seule session en cours par atelier, donc cela facilite l’organisation. Plusieurs ateliers peuvent être créés en parallèle, mais généralement un seul sera actif chaque semaine par équipe. Pour chaque session, une personne dans l’équipe est désignée comme animateur, et aura pour mission de définir le code source sur lequel travailler, d’envoyer des rappels aux participants et enfin d’organiser la rétrospective. Nous préconisons qu’à chaque démarrage de session, la rétrospective soit notée dans l’agenda de l’équipe, cela permet à chacun et chacune de s’organiser ! Enfin, avoir une rotation dans les thématiques permet de rythmer les échanges et d’apporter de la diversité, mais aussi de revenir quelques semaines plus tard sur une thématique avec un regard qui aura peut être évolué.

Enfin, nous préconisons aussi de préparer le prochain atelier dès la fin de la rétrospective, en désignant qui sera la personne en charge de l’organisation et à quelle date on peut planifier la future rétrospective.

Les guégerres de bonnes pratiques

H : Il y a parfois des querelles autour des bonnes pratiques. Typiquement, il n’est pas rarissime de voir deux devs seniors, tous deux excellents, se crêper le chignon sur telle pratique, que X qualifiera de bonne et Y d’antipattern. Comment les Ateliers Craft permettent-ils de sortir de ces impasses ?

P : Effectivement cela peut arriver que, sur le moment, des personnes ne soient pas d’accord sur une bonne pratique. C’est déjà quelque chose de positif, ça montre qu’il y a de la matière pour échanger des arguments et arriver à un consensus ! Mais pour rebondir sur la question précédente, il est important d’avoir une personne qui soit “facilitateur” lors d’une rétrospective, anime les échanges, invite les participants à s’exprimer, … Cette personne doit être en mesure de sentir si un consensus va rapidement être trouvé lors de la rétrospective ou non, et si ce n’est pas le cas, la pratique qui fait débat est temporairement mise de côté, pour laisser le temps à l’équipe d’y réfléchir et d’exposer des arguments. Ce n’est pas évident de trancher à chaud sur des sujets pointus ! Themis proposera d’ailleurs très bientôt une fonctionnalité dans ce sens, un mode “battle” avec un système de vote qui offrira la possibilité d’apporter des arguments “pour” ou “contre”.

Themis vu de l’intérieur

H : Ca va être énorme ! Et chez Promyze, comment utilisez-vous les Ateliers Craft ?

P : Nous utilisons les ateliers une fois par semaine en organisant la rétrospective le vendredi après-midi. C’est une bonne opportunité pour tous et toutes de se retrouver pour parler de qualité de code et terminer la semaine ensemble. Notre objectif est de ne pas dépasser 1 heure, c’est important de borner les échanges. En pratique, nous conseillons à nos utilisateurs de viser 30 à 45 minutes.

Au début, nous avons forcément été les premiers testeurs de cette fonctionnalité, donc plusieurs formats ont été expérimentés (notamment sur le nombre de fichiers, de tags que l’on pouvait poser, …). Cela nous a aidés à optimiser l’utilisation des ateliers et d’en faire profiter nos clients.

Nous définissons la thématique de chaque session d’atelier, et désignons une personne pour animer la future rétrospective de cette session. Nous mettons en place une rotation dans la thématique des ateliers (HTML/CSS, NodeJS, Tests unitaires, …). C’est très positif jusqu’à présent, en plus nous avons dans notre équipe des profils avec des parcours différents, cela amène de la richesse dans nos échanges !

Merci à Promyze d’avoir répondu à nos questions sur Themis. Longue vie à cet outil qui apporte énormément au processus d’amélioration continue !

Bâtir sa qualité de code avec les ateliers craft de Promyze

Si les logiciels étaient des personnages de la mythologie grecque, SonarQube serait sans doute Cassandre. De même que cette princesse troyenne ne trouvait jamais d’oreille attentive à ses prophéties, il existe des instances SonarQube qui besognent vaillamment sur des serveurs oubliés, sans que les innombrables défauts qu’ils identifient ne soient jamais étudiés.

Bonne nouvelle, des solutions existent ! Et Promyze (anciennement Themis), outil phare de la société du même nom, offre bon nombre de fonctionnalités permettant d’animer de manière agile et collaborative ce sujet glissant qu’est la qualité de code. Dans cet article, nous parlerons en particulier du tout nouveau module de l’applicatif, les Ateliers Craft. Un module qui a été testé par Testeum, mais c’est une autre histoire !

Les Ateliers Craft, comment ça marche ?

Les Ateliers Craft se présentent un peu comme des salles de travail numériques dans lesquelles on peut entrer et sortir à sa guise. La collaboration s’y déroule de manière asynchrone, selon une fréquence déterminée (mensuelle ou hebdomadaire).

Que se passe-t-il dans ces ateliers ? Quelques fichiers, par défaut les 5 ayant été les plus modifiés récemment, sont posés sur la table. Chaque participant effectue une revue de ces fichiers, et met en exergue les passages qu’il trouve les plus exemplaires, ou au contraire les plus risqués. Pour ce faire, par un système de drag’n’drop, on associe les bouts de code à des étiquettes correspondant à des bonnes pratiques.

A la fin de la session, un bilan de l’atelier est dressé. Les extraits sélectionnés par les participants peuvent être conservés afin d’illustrer les bonnes pratiques de manière pérenne.

Comment sont déterminées les bonnes pratiques ?

Quelques bonnes pratiques généralistes et consensuelles sont proposées par défaut par Promyze. Il est possible de les supprimer, et surtout d’en ajouter de nouvelles : celles propres à notre organisation.

A vous de formaliser par exemple si l’anglais, le français voire le franglais sont à privilégier dans le nommage, et de créer une bonne pratique intitulée, disons, “Respect de la langue”. Au sein d’un atelier craft, vous aurez ensuite la possibilité de placer l’étiquette de bonne pratique “Respect de la langue” juste au-dessus de la méthode getSizeListeElements() présente dans un fichier, pour indiquer si c’est un bon nommage ou non.

Facteurs de réussite

Votre équipe est déjà sensibilisée à l’esprit de Software Craftmanship ? Vous devriez vous régaler. Dans le cas contraire, il est important de garder à l’esprit que le but de Promyze est de construire collectivement, et dans un esprit de confiance et d’humilité, la qualité de code de son organisation. Sa vocation n’est pas de permettre de pointer du doigt les fauteurs de bugs. Ce sont des Ateliers Craft, pas Cafte… Chaque personne contribue via son expérience personnelle, son parcours, ses connaissances techniques, et tout le monde interagit ensemble. Les Ateliers sont des sessions à ritualiser dans les équipes, il est donc important, surtout au démarrage, que des personnes soient identifiées comme des leaders sur le sujet pour créer et animer les premiers ateliers.

Conclusion

Nous avons beaucoup aimé découvrir Promyze. La convivialité de l’expérience et la possibilité de personnaliser les bonnes pratiques sont des atouts très intéressants. Ca donne envie de s’y mettre, en complément des autres fonctionnalités de Promyze, comme les plans d’actions automatiques et les suggestions personnalisées qui facilitent la mise en oeuvre d’une stratégie d’amélioration continue.

La gamification de la gestion de la dette technique identifiée par SonarQube (entre autres) est également une partie qui nous intéresse beaucoup (nous avons écrit une série d’articles sur le sujet !).

Aaaaah on les veut toutes !!!!!!

Au fait, pour finir, saviez-vous pourquoi personne ne croyait Cassandre ? Apollon, qui lui avait donné son précieux don de prophétie, espérait de sa part quelque remerciement grivois. Comme elle refusa, vengeur, il lui cracha dans la bouche (beurk). Un crachat qui lui ôta toute capacité de persuasion. Si Themis, déesse de la justice, avait été dans le coin, elle aurait peut-être rappelé les rudiments du consentement au capricieux Apollon… et rendu la parole à Cassandre. La boucle est bouclée !

La semaine prochaine, nous resterons avec Promyze, qui répondra à quelques question sur les Ateliers Craft. N’hésitez pas à en poser en commentaire d’ici-là !

Crédit images

Lego computer, Matt Brown

Cassandre, peinture d’Evelyn de Morgan, 1898

Promyze