Retour

Jeudi 19 juillet 2018

Retour d’expérience Agile Scrum – Usman

Si vous souhaitez comprendre les principes de l’approche agile et apprendre la méthodologie scrum, cet article est fait pour vous !

De nos jours de plus en plus de sociétés abandonnent les méthodes classiques de cycle en V au profit des méthodes agiles pour la gestion des  projets informatiques...

Qu’est-ce qu’une méthode agile ?

Une méthode agile est une méthode de travail qui possède quatre valeurs et douze principes. L'équipe, l'application, la collaboration et l'acceptation du changement sont les quatre valeurs de l’agilité. Parmi les principes les plus importants sont la satisfaction du client, la simplicité en réduisant le nombre de tâches inutiles, la conversation en face à face entre les différents acteurs  et la construction de projets autour d’individus passionnés.

Une méthode agile est une approche itérative et incrémentale, il s’agit d’une démarche qui consiste à diviser le développement du produit en une série de développement très courte de durée fixe nommée itération.  A la fin de chaque itération une solution fonctionnelle et opérationnelle qu’on appelle incrément  est livrée au client. Chaque incrément ajoute et enrichit le produit avec de nouvelles fonctionnalités.  Le produit final est ainsi obtenu après plusieurs itérations.

Contrairement aux méthodes traditionnelles,  une méthode agile offre plus de visibilité sur le produit à réaliser. C’est une méthode qui fait participer le client du début jusqu'à la fin du projet. De plus, elle donne une importance particulière à l’interaction qui peut y avoir entre chaque individu de l’équipe.

La notion de groupe  est vraiment le cœur même des processus agiles,  chaque membre travaille dans un groupe, joue un rôle particulier au sein du projet. Ces rôles sont distribués en fonction des compétences et du profil de chaque individu.

 

Qu’est-ce que Scrum ?

Scrum est une méthode agile, actuellement la plus populaire en France pour le développement de logiciels. Cette méthode vise à répondre au mieux aux besoins du client tout en augmentant les chances de réussite du projet.

Un projet scrum est composé d’une suite d’itérations appelée sprints. En fonction des projets, un sprint peut durer entre  2 et  4 semaines. L'ensemble du travail à réaliser sur le projet est listé dans un artefact qui s'appelle « product backlog ». Les fonctionnalités à développer durant un sprint sont collectées dans un document nommé « sprint backlog », son contenu est en fait un extrait du product backlog. A la  fin de chaque sprint, un produit partiel (ou non) mais surtout fonctionnel  est livré aux clients.  Après chaque livraison, le client a le choix de continuer le projet et ainsi redémarrer un sprint ou tout simplement d’arrêter le développement.

 

Les rôles

Dans scrum on compte trois différents rôles :

  • Le product owner: il s’agit d’un représentant du client qui a une excellente connaissance du métier et qui maitrise toutes les techniques de définition du produit qu’il souhaite réaliser. Ces responsabilités consistent principalement à créer et maintenir le product backlog, mais également de prioriser les tâches à implémenter au cours des sprints et de surveiller l’avancement du projet.
  • Scrum master : ce n’est pas un chef de projet (car dans scrum il n’y en a pas), il s’agit tout simplement d’un membre de l’équipe choisi avant le début de priojet (ou d’un sprint), et qui tout au long de celui-ci veille à la bonne application de scrum par l’équipe qu’il manage. Il est présent pour encourager tous les membres de son équipe à apprendre et à progresser afin que chacun devienne rapidement autonome. Il met en œuvre tous les moyens permettant d’éliminer les obstacles qui pourraient entraver l’avancement du projet.
  • L'équipe de développement : elle est constituée généralement de 4 à 9 personnes qui ont pour responsabilité de réaliser les besoins énoncés dans le sprint backlog et de livrer une nouvelle version de l’application à la fin de chaque sprint.

Les évènements 

Une fois choisie la durée du sprint reste constante pendant toute la période de développement du produit. Dans un projet scrum, on distingue plusieurs  événements durant lesquels tous les membres de l’équipe sont présents. Ces événements  sont strictement limités dans le temps et ils se répètent à chaque sprint :

  • Daily scrum: une réunion quotidienne qui se tient le matin et dont la durée ne dépasse jamais  15 minutes. Chaque membre de l’équipe de développement profite de cette réunion pour parler de l’avancement de son travail et des éventuels problèmes qu’il a eus ou qu’il rencontre.
  • Sprint planning: c'est une réunion durant laquelle le product owner avec le scrum master alimentent le sprint backlog à partir du product backlog. Cette réunion commence avant le début du sprint. Pour estimer les tâches du sprint backlog, l’équipe de développement peut choisir différentes  méthodes. Parmi elles, la plus connue est le planning poker.  Il s’agit d’un jeu de cartes numérotées par une sorte de suite de Fibonacci qui permet d’estimer une complexité.
  • Sprint review: c'est une réunion au cours de laquelle l’équipe de développement fait une démonstration du produit au product owner. Cette réunion termine un sprint.
  • Sprint rétrospective: une réunion située entre deux sprints,  l'objectif de celle-ci consiste à faire le point sur les éléments qui ont bien fonctionné durant le dernier sprint et ceux qui sont à améliorer pour le suivant. A la fin de cette réunion un plan d’actions est établi et destiné à être mis en place lors de la prochaine itération.

En vue d’obtenir des résultats corrects avec cette méthode, il est important que l’équipe de développement ne dépasse pas un effectif de 9 personnes et que la durée du sprint reste inchangée tout au long du projet.

  Mon avis

Après vous avoir présenté en détail la méthode scrum, je vous fais part de mon avis sur le sujet basé sur mon expérience.

Depuis que j’ai rejoint la société Olympp, je suis en mission chez une société pour lequel je participe à l’amélioration des 19 sites web du groupe Manutan, leader dans le secteur e-commerce en Europe.

Plus généralement, mes activités consistent à faire évoluer ses sites en développant les services et fonctionnalités demandées par le client.

Mon équipe est composé de huit développeurs full-stack, un scrum master et un product owner.  Le scrum master est toujours un membre de l’équipe de développement désigné au début du sprint. Dans le but de faire progresser toutes les personnes de l’équipe, on est amené à changer régulièrement  de scrum master et cela tous les deux sprints. Le rôle du product owner est, quant à lui,  joué par le client.

Tous les sujets de notre projet sont matérialisés par des tickets et répertoriés sur un système de gestion de projets nommé JIRA. Ces tickets sont quasiment tous créés par le client et classés par catégorie (Bug, Feature, Task et Exploitation) et par ordre de priorité. Ces tickets contiennent de façon exhaustive, toutes les informations expliquant les besoins et les attentes du client.

Contrairement au product backlog, les tickets du sprint backlog affichent en plus un nombre de points correspondant à la complexité de chaque tâche évaluée par les développeurs de l’équipe. Tous les sujets d’un sprint sont, par avance, portés à la connaissance des équipes métiers et de l’équipe de développement. Si un sujet est incomplet, c’est-à-dire qu’il n’est pas assez précis ou qu’il manque certains éléments pour le démarrer, il est renvoyé vers les équipes métiers avec les remarques des développeurs. Cette façon de travailler promeut la communication entre les différentes équipes et contribue fortement à filtrer les sujets avant de les intégrer dans un sprint.

Avec l’application de la méthodologie scrum, on observe très souvent des résultats assez satisfaisants en termes de qualité du produit livré à la fin de chaque sprint. En effet, on arrive toujours à fournir une application fonctionnelle et prête à être mise en production selon le planning défini par le client. Cependant, il peut arriver de temps à autre que le client détecte des bugs dans un livrable obligeant l’équipe à les corriger rapidement afin de limiter les impacts et éviter les répercussions sur la prochaine itération.

Jusqu’à présent dans cette mission, j’ai beaucoup appris sur le plan technique. Le fait d’avoir occupé fréquemment le rôle du scrum master m’a permis d’aller beaucoup plus loin dans mon apprentissage de la méthode scrum. J’ai véritablement pu voir tous les avantages qu’elle offre dans la gestion de projets informatiques.

Parmi les nombreuses méthodes existantes, scrum se démarque par sa simplicité qui permet indéniablement d’optimiser le travail en équipe et d’améliorer la productivité du groupe. Tous ces éléments expliquent le succès de la méthode scrum qui selon moi à encore un très bel avenir devant elle.