Place de la qualité dans un projet informatique

Cette page a pour vocation de montrer comment la qualité doit s'intégrer dans un projet informatique, notamment en abordant quelques exemples de méthodologies.

Intégration aux process IT

Il existe de nombreuses façons de s'y prendre pour livrer un produit conforme aux attentes d'un client… et surtout aucune qui soit consensuelle. Ainsi, certaines équipes travaillent en mode agile (avec des méthodes comme Scrum ou Kanban par exemple), d'autres avec des approches plus classiques comme le cycle en V, modèle en cascade, spirale…), d'autres encore sans méthode concrètement formalisée…

Important La qualité logicielle est un dénominateur commun à tous les projets informatiques, quelque soit leur mode d'organisation. C'est une préoccupation transverse.

Ainsi, l'intégration des préoccupations liées à la qualité (au sens large : conformité technique, qualité des process, conformité fonctionnelle…) dans les process IT est tout à fait primordiale, et doit se faire à tous les niveaux, et à tous les moments du cysle de vie du logiciel. Ce sujet est du reste généralement confié à une équipe dédiée dans les organisations, qui a en charge la définition, la mise en œuvre et le suivi d'une démarche qualité auprès de l'ensmeble des équipes (concepteurs, développeurs, analystes…).

Le cas du cycle en V

Le V du fameux cycle en V, aujourd'hui décrié par certains (car un peu passé de mode dans la mouvance agile), a le mérite d'expliciter très clairement et de positionner les étapes fondamentales de la démarche qualité, avec un niveau de formalisme avancé.

Cycle en V
Le cycle en V intègre des éléments forts liés à la qualité

Ainsi, toute la partie droite du V préconise des éléments liés à la qualité du système délivré (pas de panique si vous ne connaissez pas encore la nature, la raison d'être ou encore les détails de mise en œuvre de ces éléments : c'est tout le but de ce cours !) :

  • Tests unitaires
  • Tests d'intégration
  • Tests fonctionnels
  • Recette

Le cycle en V, comme beaucoup de méthodes « traditionnelles » préconise donc la validation de la qualité des éléments du système après leur création, dans un processus très séquenciel : en théorie, tous les développements sont fait, puis testés unitairement, puis en intégration, etc.

Le cas de Scrum et autres méthodes agiles

Les méthodes agiles prennent le contre-pied de cette organisation séquencielle, en tentant de répondre à une problématique souvent constatée dans ce genre de méthodologie : on ne sait jamais (ou très très rarement), au début d'un projet, ce que l'on va finalement devoir produire (donc tester et valider). De nombreux éléments aboutissent à cet état de fait, comme par exemple la fluctuation des attentes du client (elle-même impliquée, souvent, par la fluctuation du marché dans lequel évolue le dit client), le fait que certaines problématiques de conception ou d'implémentation ne pourront être découvertes qu'en cours de route, etc.

La solution proposée par l'agilité : moins de plan, plus d'adaptabilité. C'est un procédé fortement itératif : on fait, on regarde, on corrige, et on recommence !

Scrum board : user stories
Scrum et son fameux tableau blanc… se préoccupe aussi de la qualité !

La qualité est tout aussi centrale dans un projet agile que dans d'autres formes d'organisation. D'autre part, le caractère « mouvant » des spécifications implique une nécessiter vitale de détecter rapidement les régressions éventuelles. Ceci est notamment rendu possible, comme nous le verrons par la suite, grâce à l'instauration systèmatique de tests unitaires et d'intégration, et d'une démarche dite d'intégration continue. Les projets agiles font également la part belles aux « acceptance tests », des tests fondés sur les cas d'utilisation et destinés à valider la conformité fonctionnelle des développement réalisés.

Conclusion

Il existe des tas de manières d'organiser un projet informatique, mais le problème de fond ne change jamais : à la fin du projet, il faut pouvoir livre au client un produit qui correspond à ses attentes, fonctionnel, et qui le restera.

À retenir – La meilleure manière d'arriver à ce résultat est de placer la qualité au centre des préoccupations, à tous les niveaux aussi bien fonctionnels que techniques. Cet objectif se traduit par l'instauration de différents types de tests, validations et process, que nous allons voir dans les parties suivantes de ce cours.

Pourquoi la qualité est-elle une préoccupation transverse dans les projets de développement informatique ?
  • Parce qu'aucune équipe n'est responsable de la qualité, c'est l'affaire de toutes les équipes.
  • Car la qualité doit avoir des implication sur l'ensemble des processus, aussi bien en phase de recueil de besoins, de conception, développement, recette…

Le plan qualité définit un référentiel de travail applicable pour l'ensemble des acteurs d'un projet.

Quel est l'intérêt d'une bonne politique qualité dans un projet IT ?
  • Cela permet de s'assurer que le produit développé est bien conforme aux attentes d'un client.
  • Cela permet de livrer des produits plus intéressants pour les clients potentiels.
  • Cela permet de mesurer les résultats obtenus.
  • Cela permet d'accélérer les temps de développement.
Citez des différences de gestion de la qualité logicielle entre les méthodes agiles et les autres méthodes plus traditionnelles.
  • En agile, la qualité est gérée de la même façon, sauf qu'il n'y a pas de spécification fonctionnelle.
  • Dans un projet agile, l'une des préoccupations est de livrer le produit très souvent pour obtenir des feedbacks réguliers du client : les régressions sont encore plus craintes et l'intégration continue est réponse à cette problématique.
  • En agile, la qualité est gérée de la même façon, sauf qu'il n'y a pas de conception technique.

Attention : agile ne veut pas dire « sans specs » ou « sans conception »…

Lectures intéressantes

Testing in Scrum

Testing in Scrum

Voir