Genesis-blog

sans-titre

Approche agile : comment assurer la qualité des développements tout au long du projet ?

En se centrant sur la satisfaction du besoin client et en impliquant ce dernier du début à la fin du projet, l’approche agile crée une valeur ajoutée au service. Capacité d’adaptation et flexibilité sont les maîtres-mots de cette méthode permettant de faire évoluer le projet dans des directions différentes en fonction des problématiques rencontrées. Aussi faut-il que l’équipe projet soit réactive et impliquée dans une démarche d’amélioration continue. D’où l’importance de mettre en place un système de qualité sur un projet agile…

Améliorer la qualité des développements réalisés

Travailler sur un projet agile est avant tout un état d’esprit qui permet d’accepter et d’accueillir les changements. En responsabilisant les membres de l’équipe de développement, c’est un véritable esprit collaboratif qui se crée et permet ainsi de gagner en qualité dans le travail.

Voici quelques axes décisifs pour améliorer la qualité des développements réalisés :

  • Définir la notion de « terminé » (definition of done) : il s’agit de donner une ligne directrice commune à toute l’équipe sur la notion d’une tâche terminée.
  • Mettre en place la revue de code (merge request) : le code doit être validé au minimum par un autre développeur avant d’être finalisé. L’objectif est de prévenir des bugs ou vulnérabilités potentielles en vue d’améliorer la qualité du logiciel.
  • Envisager la programmation en binôme (pair programming) : travailler à deux sur un même poste de travail. Les rôles sont alors répartis entre un « conducteur » aux commandes et un « copilote » qui assiste le « conducteur » et intervient en cas de besoin. Pour une meilleure efficacité, les rôles sont intervertis fréquemment. Cette méthode de travail permet de mieux appréhender les complexités, de limiter le risque d’erreurs et favorise la transmission des connaissances dans l’équipe.

L’importance des tests

L’approche agile permet d’adopter un processus itératif et incrémental. En d’autres termes, elle favorise l’avancement du projet par étapes, en ne validant les fonctionnalités d’une itération que si les critères de satisfaction sont remplis. Là se situe toute la différence ! En pratique, cela se traduit par des phases de tests, lesquelles jouent un rôle essentiel dans le bon déroulement des développements. Tester une application vise un double objectif : vérifier le comportement des fonctionnalités attendues et permettre de découvrir les comportements de l’application qui n’étaient pas prévus initialement. Conséquence directe, faire des tests engendre des coûts et des délais supplémentaires sur la réalisation des fonctionnalités. Cette activité se révèle néanmoins payante sur le long terme (réduction des bugs, meilleure connaissance de l’application…). Comme toute démarche qualitative s’inscrivant dans la durée, les effets d’une politique de tests ne sont généralement visibles que plusieurs mois après leur mise en place.

Plusieurs axes peuvent être explorés pour améliorer la fiabilité des développements et des tests :

  • Réaliser des tests manuels: un testeur expérimenté navigue dans l’application tout comme le feront les futurs utilisateurs. Un avantage notable est de pouvoir déceler des bugs qui seraient visibles par des utilisateurs mais pas par un robot ! L’approche est complémentaire avec le test automatisé et la combinaison des deux méthodes se révèle souvent fructueuse.
  • Mettre en place des scénarios tests : l’idée est de définir des parcours que le testeur suit pour contrôler le bon fonctionnement de l’application sur des problématiques spécifiques.
  • Automatiser les tests unitaires et fonctionnels : le but est de détecter le plus tôt possible de potentiels bugs pour les corriger au mieux et ainsi éviter de faire du « sur-développement ».
  • Avoir un serveur de test pour le projet 
  • Instaurer l’intégration continue : l’objectif est de vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l’application développée.
  • Faire du développement par les tests (Test Driven Developpement) : il s’agit de développer les tests avant de développer la fonctionnalité attendue, pour une meilleure fiabilité.
  • Intégrer un Analyste qualité (Quality Analyst) dans l’équipe
  • Mettre en place une stratégie de tests 
  • Faire du Behaviour Driven Developpement (BDD): cela permet d’automatiser la création de tests fonctionnels.
  • Arriver à obtenir une adhésion culturelle des tests par l’ensemble des parties prenantes d’un projet.

5
5

Laissez un commentaire