Le coût de l’assurance qualité dans le développement web
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.
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.