Approche qualité

Comment pousser une démarche qualité quand les enjeux livraisons sont forts ?
L'une des grandes préoccupations d'un client c'est la date de livraison.
De son point de vue, plus tôt son produit est disponible à ses futurs clients mieux c'est.

Hors comment l'influencer & faire comprendre que faire vite & bien n'est pas si facile.

Les coûts cachés

Posons un contexte concret

Les équipes

En admettant des équipes comme suit :

  • Développement
  • Produit
  • SAV

Le cycle de production

Produit -> dévelopement -> SAV (formation)

La fonctionnalité a coûté 3 points, disons d'attention (1 point / équipe)

Cas nominal

  1. Dans le cas d'une stratégie livraison, l'équipe développe (avec tests manuels mais sans plus).
  2. Au mieux c'est testé (périmètre restreint à une fonctionnalité) par l'équipe produit
  3. Si c'est OK, c'est en production

Si tout se passe bien on passe au sujet suivant.

Sinon…

  1. Les utilisateurs rencontrent des problèmes
  2. Seul un petit pourcentage remonte le problème
  3. Le problème est réceptionné, on décide d'agir

On communique et priorise le bug :

SAV -> produit (priorisation) -> dévelopement

On reprend le cycle cité précédemment :

Produit -> dévelopement -> SAV (information)

L'addition

Ici on se rend compte que la fonctionnalité, coûte entre 7 à 9 points :

  • Les 3 points initiaux de développement produit
  • 3 points de remonter d'informations
  • 3 points de livraison des corrections

Le coût réel de la fonctionnalité coûte entre 2 à 3 fois plus en prenant des risques

Spécification - l'ambiguïté

L'équipe de développement ne reproduit pas

  • Il manque d'information pour reproduire le bug
    • Aller & retours pour obtenir les informations nécessaires
  • Il a toutes les informations, mais l'attendu n'est pas le même pour lui et les autres

Les limites d'une fonctionnalité peuvent être implicites & ou ambiguës

Avec une stratégie se concentrant sur la livraison, nous allons chercher des raccourcis à chaque étape, dont celle de la spécification. Une situation qui n'aide pas à fournir les détails précieux de la fonctionnalité.

Le demandeur peut jouer légitiment ou pas avec ce flou.

"Je ne l'ai pas spécifié mais c'est évident"

Démarche qualité produit

Mettre en place des garde-fous pour éviter ce triplement de coût et surtout une frustration utilisateur.

Le surcoût est visible mais ne garantis pas un produit infaillible

Si il y a tout de même un bug, c'est la remise en question saine de la chaîne de production & l'amélioration continue du processus qualité qui limitera encore plus les risques dans le futur. C'est une opportunité !

Le surcoût qualité peut être frustrant pour le demandeur, qui voit ses livraisons aller moins vite.
C'est là un cas de conscience : Sommes-nous dans la délégation ou dans l'instrumentalisation ?

Pyramide des tests

T.U

Les tests unitaires sont cruciaux, on pense petit, on teste petit.
Nous avons donc de petites briques de lego, qui font bien leur travail et sont bien testées dans leur propre limite.

Rien ne m'empêche de provoquer un résultat inattendu en faisant une mauvaise association de ces briques.
C'est là que les tests d'intégration, de bout en bout complètent les vérifications.

Autres tests en renfort
  • La base de cette pyramide c'est incontestablement les T.U en grande quantité.
  • Plus les tests sont complexes & moins ils seront nombreux.
Avantage & inconvénient - T.U

Avantage : ils offrent une fine granularité sur le problème

Inconvénient : ils ne donnent que peu d'informations sur le fonctionnel impacté

Avantage & inconvénient - T.I

Les tests d'intégrations (qui impliquent plusieurs briques de codes : test de bout en bout d'une API) ont les caractéristiques inverses

Avantage : On connaît précisément le scénario utilisateur défaillant

Inconvénient : Granularité trop grossière pour mettre le doigt précisément sur le problème

Le propos c'est qu'ils se complètent

Équipe QA dédiée

J'ai pu travailler avec des équipes Assurance Qualité dédiées.

C'est un filet de sécurité confortable.

Avantages
  • Ils n'oublieront pas de tester
  • Ils vont trouver des scénarios vicieux / créatifs, qu'un.e développeur.se sera peut être fatigué de tester
  • Cette équipe ne développe pas le produit, il n'y a pas de conflit d'intérêts à trouver des régressions
  • L'équipe a des plans de tests prêts à être joués à la moindre évolution
Inconvénients
  • Une équipe de plus à former sur les nouvelles fonctionnalités ou changements
  • Ne développe pas forcément, ce qui peut être limitant dans l'utilisation des outils de tests
  • Le verdict de cette équipe peut être challengé : "ça passe, c'est pressé"

Les tests mobiles chez leboncoin

Les tests de bout en bout c'est un peu compliqué

Les tests de bout en bout pour une application web sont déjà une tanné !
Le DOM est-il bien chargé ? La connexion à la bdd est ok ?…

Les problèmes d'initialisation peuvent arriver de partout.

C'est pire sur mobile

Sur mobile c'est encore plus compliqué. Naturellement, ces tests sont d'abord mis en place pour des simulateurs mobiles.

Mais certaines limites sont vite atteintes puisque la complexité logiciel augmente avec ce nouveau logicielle.

Ferme de robots testeurs

L'équipe de R.Louvet s'est penchée sur cette question il y a 6 ans (leboncoin).
Ils ont crée un "banc de test", avec des vrais téléphones (40), pilotés et filmés avec raspberry pour tester l'application.

ANDON

Ma définition : Quand un problème est rencontré, toute la chaîne de production est arrêtée pour le résoudre. Plusieurs métiers donnent leur avis et le processus qualité est amélioré tout de suite pour que ce problème ne revienne pas.

Avantages : Transparence, responsabilité partagée de la fonctionnalité & de la qualité, solidarité

Inconvénients : Risque d'abus d'alerte qui mobilise beaucoup de monde. La gravité n'est pas évidente à documenter et à interpréter

Un truc à ajouter ?

Vous souhaitez un complément d'information sur un article ?
Ou vous aimeriez voir un sujet particulier traité ici ?

Contactez moi