Le coût de l’assurance qualité dans le développement web

Cédric

Cédric, Directeur général 8 janvier 2019

Le travail d'équipe comme fondement du développement web

Avez-vous déjà posé du carrelage ?

C’est une activité qui me plaît beaucoup. A l’instar du développement, c’est à la fois très mathématique, tout en demandant une certaine dose de créativité.

Et je ne pose jamais de carrelage seul. Pas parce que je n’en suis pas capable, ça n’est pas compliqué. On encolle les surfaces, on pose un carreau, puis le suivant, et ainsi de suite, rangée après rangée. C’est un travail que l’on s’imagine facilement. Si on devait faire une analogie avec le développement, ça correspondrait à l’écriture du code.

Le travail invisible derrière l'écriture de code

Mais derrière ces représentations de la tâche, il existe tout un travail que l’on imagine moins facilement : une sorte de « travail invisible ». Cela prend, par exemple, en compte les mesures de la pièce, le dessin du plan, le choix des bons outils, de la bonne colle, la préparation des surfaces, le nettoyage ... J’en passe, mais quasiment tous trouvent leur analogie dans la vie d’un projet informatique.

Le « travail invisible », c’est l’assurance qualité

Je vous disais que je ne pose jamais de carrelage seul. Je le fais généralement avec mon père, et nous avons un process bien huilé (pour des amateurs).

" Notre méthode, c’est de ne pas se faire confiance "

Cette méthode nous incite à vérifier en permanence le travail de l’autre (mesures, découpes, niveaux...). C’est nécessaire puisque lorsque l’on pose une faïence, le moindre décalage peut avoir un impact visuel important s’il se propage. Et des raisons de créer un décalage, il y en a des quantités, qu’on en soit responsables ou pas (défaut du mur, texture de la colle, coupe pas droite...).

On passe beaucoup de temps à vérifier la présence de ces défauts. Cela nous permet de les corriger au plus vite, car plus la colle sèche plus le retour en arrière devient compliqué.

L’assurance qualité dans le développement logiciel, c’est exactement ça.  

“ Si l’on veut développer un produit avec une qualité satisfaisante, il est nécessaire de passer du temps sur tous ces travaux invisibles pour l’utilisateur final : la conception, la revue de code, les tests automatisés, les tests manuels, la recette…  
Est-ce ça que prends du temps ? Oui. Est-ce que ça coûte cher ? Oui. Et pourtant, c’est rentable."

Réparer une faille de développement, à quel prix ?

Oui, le développement web peut être modifié mais...

Là où l’analogie avec le carrelage s’arrête, c’est que dans le développement web rien n’est vraiment “figé par la colle”. Ça ne veut pas pour autant dire que l’on peut faire n’importe quoi sans conséquences.

Le coût d’une anomalie de développement par étape

Dans un livre blanc publié par IBM sur la qualité logicielle, on peut trouver une analyse du coût d’une anomalie en fonction du moment où elle est repérée.

Un tableau montrant le coût pour rectifier une anomalie en fonction du moment où elle est repérée. Si on la repère lors de la conception initiale, le cout est de 1 (unité abstraite). Si on la repère lors du développement, le coût est de 5. Si on la repère lors des tests internes, le coût est de 10. Si on la repère lors des tests utilisateurs, le coût est de 15. Enfin, si on la repère après la mise en production, le coût est de 30.

Lors de la conception, il se peut que l’on détecte une incohérence. On passe alors un peu de temps à trouver une solution. Disons que ce temps qui a été passé nous ait couté 50 €. Voici ce que cela couterait si le défaut était détecté durant une autre phase :

  • Développement : près de 250 €
  • Phases d’assurance qualité : de 500 € à 750 €.
  • Phase d'utilisation de l'application : effort équivalent à 1500 €

Avec suffisamment d’expertise et de temps alloué à la conception et au développement, on augmente le nombre d’incohérences détectées lors de ces phases. Elles sont en effet bien moins couteuses mais cela ne suffit pas...

L'assurance qualité pour gérer les incohérences au plus tôt et modérer les coûts

Entre les dépendances aux outils tiers, les cas d’utilisation que personne n’a anticipés, les découvertes de failles de sécurité ou encore les nouvelles législations, il existe un nombre élevé de raisons de rencontrer des incohérences. Chaque phase de QA est là pour les détecter au plus tôt, et les corriger à moindre frais.

Finalement, à l’instar d’une assurance automobile, l’assurance qualité est un coût constant. Ce coût est proportionnel au risque auquel on souhaite s’exposer. Il nous protège de certaines dépenses importantes que l’on n’aurait pas prévues.