Programmez: Entretien avec Daisy Draté ingénieure qualité sur l’application AVoKa

Dans cet article, Marc Hage Chahine et Benjamin Butel  nous proposent de faire  l’éloge des différents contributeurs à un logiciel de qualité au travers d’une interview journalistique d’un produit fictif.

Depuis quelques années, le manger local, sain, avec des produits frais refait surface et les gens se remettent de plus en plus au jardinage. Pour autant, les dernières générations sont moins à l’aise avec la gestion d’un potager.

J’ai la chance d’avoir avec moi, Daisy Draté, qui a participé à la construction de l’application « AVoKa» qui fait fureur !!!

Cette application propose des conseils personnalisés pour optimiser ses plantations que cela soit dans un jardin ou en pots : choix des semences, gestion de l’arrosage, choix des engrais naturels, dates de plantation, entretien de la terre …

Daisy, qui êtes-vous et quel est votre rôle dans la construction de cette application ?

Je m’appelle Daisy et je suis une passionnée de test logiciel.

Mon rôle de testeuse sur AVoKa a été d’apporter ma vision sur le produit, de travailler sur les différents cas d’usage pertinents et moins pertinents mais surtout d’apporter à l’équipe la philosophie de la qualité Attention, la qualité ce n’est pas forcément toujours faire plus, il faut savoir jusqu’où aller. Pour cela, on peut dire que j’ai exercé un rôle de Coach.

Mon rôle de spécialiste test était principalement de concevoir et exécuter les tests mais cela ne s’arrêtait pas là ! En tant que membre de l’équipe j’ai aussi contribué à différentes tâches qui, au premier abord, ne sont pas liées à mon métier. J’ai par exemple fait de nombreuses revues de code, participé à l’écriture des spécifications et même participé à la mise en place des outils de mesures.

Comment l’idée de ce produit a-t-elle germée ?

Le créateur de la société, Judas Sperge, passe beaucoup de temps dans son jardin. Malheureusement, il n’a pas vraiment la main verte et trop souvent, il n’arrivait pas à trouver des conseils avisés qui lui convenaient. Il a constaté que son entourage faisait le même constat : trop d’informations sur Internet, trop généralistes ou trop spécifiques, de même pour les livres spécialisés.

Il s’est entouré d’un chargé d’étude marketing pour étudier le terrain, si je peux me permettre l’expression.

Il se passe du temps entre l’idée et le produit fini, comment avez-vous fait pour réaliser la première version en 6 mois il me semble ?

Oui, 6 mois c’est court mais l’étude a fait ressortir les besoins utilisateurs les plus attendus.

Avec Judas,  le responsable produit (qu’on appelle PO pour Product Owner chez nous) et l’équipe de réalisation, nous avons concentré nos efforts pour répondre à ces besoins en priorité tout en proposant une interface instinctive et des temps de réponses très rapides. Dans l’équipe, nous détestons devoir attendre pour avoir accès à l’information

Comment gérez-vous les différentes demandes des utilisateurs ? Certaines demandes sont sûrement contradictoires néanmoins à chaque nouvelle version tout le monde y trouve son compte.

C’est très simple.  Notre PO a travaillé avec notre analyste métier, Thibault Range, pour comprendre les différents besoins et demandes afin de les regrouper et de bien les concevoir. De même, les données d’utilisations recueillies permettent de détecter certaines difficultés rencontrées par les utilisateurs.

Ensuite, la totalité de l’équipe donne son avis sur ce besoin et contribue à la priorisation.

On imagine les usages derrières. On essaie de se mettre à la place des utilisateurs. Chacun dans l’équipe se met dans la peau d’un profil utilisateur, persona, et évalue ce besoin. Est-il pertinent ? Quand et quel contexte ? Comment je le mets en œuvre ?

Tout ça aide à formaliser les fonctionnalités que l’on va développer pour répondre au besoin.

Mon voisin et moi utilisons tous les 2 l’application, les conseils sont différents mais nous correspondent bien. Comment avez-vous réussi une IA si pertinente ?

Notre analyste métier nous apporte les éléments clefs qui définissent le jardinage. Puis notre expert en données (notre data scientist) a analysé tout ça pour en déduire la meilleure gestion de données possible.

Le data scientist a ensuite testé différents algorithmes et entrainé différents réseaux de neurones afin de proposer des résultats cohérents. Il me semble également important de noter que cette IA continue d’évoluer afin de s’améliorer.

La pertinence des résultats proposés est le fruit d’une maitrise des données métier transformées en données fonctionnelles puis en données techniques (coté persistance).

L’application est super intuitive, comment avez-vous fait ?

Nous avons une championne du design Marie Aubrosse (l’UX designer) qui a proposée des interfaces qui ont été bien implémentées par l’équipe et particulièrement nos intégrateurs.

Grâce à eux, l’applicatif propose à la fois une expérience fluide, intuitive et esthétique.

Un des besoins était que l’applicatif soit accessible aux personnes en situation de handicap, dans son jardin et agréable à utiliser, il faut avoir envie d’y revenir ! Il fallait donc que l’application puisse s’adapter aux contraintes d’un usage en extérieur et pour le plus grand nombre de personnes.

J’utilise l’application tous les jours mais je ne tombe sur aucun bug! Tout fonctionne super bien, quelle est votre recette ?

(rire) Je suis une superbe testeuse !!!

En vérité, c’est un travail collaboratif. Le fait de définir et concevoir en équipe le produit contribue énormément  à ce résultat. Les développeurs sont  experts dans leur domaine et participent à l’effort de test. Les tests unitaires et d’intégration sont pertinents, ils font aussi pair testing avec moi. Enfin, toute l’équipe fait des sessions de test exploratoire. Au-delà de la recherche du bug, cela nous permet d’évaluer ce que nous avons imaginé pour satisfaire le besoin. Parfois, nous ne sommes pas convaincus, on jette tout simplement et on refait différemment.

L’application est évolutive et collaborative, comment implémenter une telle fonctionnalité ?

Cette fonctionnalité est probablement celle qui nous a demandé le plus de travail mais elle nous semblait essentielle ! La mise en place des méthodes Agile est là pour pouvoir répondre à des changements comme des changements de contexte. Le contexte évolue très vite, de nouvelles plantes apparaissent, le climat évolue, notre application se devait d’évoluer en temps réel.

Pour cela, après discussions dans l’équipe, nous avons décidé d’utiliser l’intelligence commune de nos utilisateurs.

C’est à partir de là que Marie, notre UX designer, et Thibault, notre analyste métier, ont collaboré pour proposer l’interface actuelle avec les fonctionnalités que vous connaissez.

Les développeurs front,  back et le data scientist, qu’on surnomme « Doc », ont ensuite fait ce qu’il fallait pour que l’idée de départ soit bien implémentée.

Rien ne vaut un schéma pour illustrer une idée. Voici à quoi ressemble la mise en place d’une fonctionnalité chez nous :

Selon les statistiques de derniers téléchargements, l’application est déjà utilisée par plusieurs centaines de milliers d’utilisateurs dans plus de 20 pays…en à peine 6 mois. Comment gérez-vous cette croissance ?

Là encore, c’est un travail d’équipe. Tout d’abord, l’internationalisation a été pensée dès le début dans la conception du produit afin de séparer les traductions du cœur du métier de l’application.

Cela nous permet de rester flexible et de s’adapter aux demandes selon la provenance des clients.

Nous avons aussi les OPS qui ont donné leur vision pour satisfaire ce besoin d’internationalisation.

Avec les capacités d’hébergement d’aujourd’hui, il est possible de rendre scalable la croissante de l’usage mais aussi de la régionaliser. Tout ceci a été pris en considération dès la conception de l’architecture.

Enfin, afin d’assurer la qualité de notre application en dehors de la France, nous avons eu recours au Crowdtesting. Les Crowdtesteurs ont pu tester l’application dans plus de 10 pays ciblés et, en plus de nous donner leur ressenti en tant que « bêta testeurs », ils avaient pour mission de nous faire des retours sur la qualité des traductions proposées.

Comment avez-vous adressé la performance ?

Comme dit précédemment, les ops ont participé à la conception de l’architecture et cela a permis de mettre en place une architecture robuste, modulable et facilement maintenable avec le besoin croissant d’utilisateur. Cela assure aussi une haute disponibilité de l’application.

Doc nous a également permis d’optimiser les usages des bases de données pour servir une rapidité de traitement des demandes utilisateurs.

Enfin, dès le début, nous avions identifié les niveaux de performance que nous souhaitions atteindre. Cela a permis de mettre le bon niveau de test à chaque niveau du développement : analyse statique du code pour chasser des mauvaises pratiques entrainant des complexités trop importantes, des tests unitaires de performance, tests de performance sur les API, sur le front et enfin sur le système complet. Chaque catégorie de test cherche à identifier des problèmes différents de performance et c’est le cumul de l’ensemble qui fait qu’on satisfait une haute qualité sur cet aspect.

C’est une des premières fois où je n’ai aucune lenteur sur une application même avec mon téléphone super vieux, c’est impressionnant

Oui, du côté l’application, nos experts en développement sur Android et iPhone ont aussi livré leurs contraintes en début de projet pour que les performances applications ne soient pas un « pain point ».  De même, nous avons également fait très attention à la consommation d’énergie afin de sauvegarder au maximum la batterie des smartphones utilisant notre application. Il aurait été dommage d’avoir une qualité de haut niveau sur tout le reste et se louper sur la partie la plus proche de l’utilisateur. Le travail entre l’UX, les designers et l’ensemble des développeurs ont permis de trouver le meilleur compromis pour garder une expérience utilisateur de grande qualité.

Pour proposer des conseils aussi avisés, je suppose que vous avez des partenaires. Comment gérez-vous la récupération de leurs données ? Et comment gérer leur évolution ?

En effet, nous avons quelques partenaires qui proposent des API pour récupérer de l’information en temps réel. Nos développeurs ont travaillé pour intégrer proprement les API et notre data analyst a fait un gros travail pour proposer un modèle permettant d’intégrer ses données, évaluer leur fiabilité afin que l’IA puisse réagir en conséquence.

Enfin, nos OPS sont capables de détecter lorsqu’un partenaire est en défaillance ou a fait évoluer le contrat d’interface. Tout a été pensé pour gérer ces cas de figures et éviter que l’IA s’en trouve complètement perdue.

Et la sécurité ? On n’en parle pas beaucoup mais vous gérez tout de même de nombreuses données.

Notre expert en sécurité et notre data analyst ont travaillé ensemble afin de séparer les données dites publiques des données sensibles (comme les données utilisateur).

Cela a permis d’intégrer cela dès la conception de l’architecture logiciel.

Notre expert sécurité a aussi accompagné les développeurs sur les bonnes pratiques des usages du WEB et fait des pen tests réguliers pour identifier des problèmes de sécurité potentiels.

Une analyse des dépendances logicielles a aussi été faite pour réduire le risque potentiellement lié à ces dernières (risque sécurité mais aussi de licence).

Enfin, notre expert sécurité a travaillé avec les ops afin de mettre en place un système de monitoring pour détecter des tentatives d’intrusion ou de DDOS afin de réagir rapidement.

En conclusion, on peut dire que le succès de votre application est collectif

Oui complètement.

La qualité est l’affaire de tous, on ne peut pas proposer un logiciel de qualité sans l’apport de l’ensemble des acteurs qui contribuent à le construire. Regardez, si on prend les critères qualité de l’ISO-25010, un profil seul ne peut pas tout faire :

Et le mieux dans tout ça, c’est qu’on a pris et continue à prendre du plaisir à travailler ensemble. Tout n’a pas été simple. Il y a eu des moments difficiles mais à chaque fois, le collectif était là pour tirer tout le monde vers le haut. Et honnêtement, je pense que ça se voit dans le résultat.

Désormais, place à la suite mais chut, c’est confidentiel (rire) !!!

Merci Daisy de nous avoir éclairé sur la genèse de votre application. Je retiens que la clef de la réussite passe par l’anticipation, la pluridisciplinarité des expertises, le collectif, et  aussi le plaisir et fun.

Co-auteur: Benjamin Butel

Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

N’hésitez pas à faire vos propres retours d’expérience en commentaire.

Laisser un commentaire

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

Ecran "content" avec derrière des serveurs pour gérer de la donnée
Données

La qualité de la donnée – Mohamed Hamza

Intro Un système d’information est un ensemble de ressources dédié à la collection, le stockage, le traitement et la diffusion des informations dont une organisation a besoin pour bien fonctionner. La data est donc au cœur de l’organisation et fait partie des actifs de l’entreprise. C’est avec les données que

Lire la suite »
ATDD versus BDD
ATDD

BDD vs ATDD

Intro L’ATDD (Acceptance Test Driven Development) et le BDD (Behaviour Test Driven Development) sont des approches collaboratives, quasiment tout le temps implémenté dans des contextes de développement Agile, où l’on définit des tests collaborativement avant de commencer les développements. Ces similitudes font que bien souvent ces 2 méthodologies sont confondues

Lire la suite »