La méthode Scrum est plus que jamais d’actualité aujourd’hui et est l’une des méthodes agiles existantes les plus en vue et parmi les plus utilisées.
En 1986, les Japonais Hirotaka Takeuchi et Ikujiro Nonaka réfléchissent à un procédé basé sur le concept de flexibilité, afin d’accroitre la vitesse de développement d’une application. Est alors imaginée une équipe à compétences égales et s’inspirant du principe du rugby à quinze : une équipe unie ayant pour objectif commun de faire avancer la balle vers le camp adverse.
En 1991, le concept est repris par DeGrace et Stahl qui lui attribuent le nom Scrum, faisant référence à la mêlée et au collectif. En 1995, la méthode Scrum est officialisée par Ken Schwaber qui décrit les fondements de la méthode avant de les publier conjointement avec Mike Beedle en 2001 dans leur ouvrage « Agile Software Development With Scrum ».
Le Scrum consiste en une méthode agile s’adaptant aux projets Web, et permettant aux développeurs d’être au plus près des besoins du marché.
Contexte de la méthode Scrum
Une approche agile
Les méthodes agiles considèrent que le fait de planifier dans les détails l’intégralité d’un produit avant de se lancer dans la phase de développement est contre-productif.
Dans l’utilisation d’une méthode classique, la planification et spécifications peuvent tendre vers l’obsolescence en cas d’imprévus, et il demeure difficile d’anticiper face à la frustration engendrée par la non application d’un plan, pourtant bien défini en amont.
L’approche agile définit dans un premier temps un premier objectif à court terme. On parle d’une approche empirique. On s’adapte en fonction de la situation du moment, jusqu’à atteindre la finalité.
Dans quel cadre ?
L’approche Scrum est une méthode agile utilisée en gestion de projet et visant à accroître la productivité des équipes et l’optimisation du produit, à l’appui de feedbacks réguliers du marché. Elle s’appuie sur des principes d’adaptabilité, d’amélioration continue.
La méthode Scrum permet également d’avoir une vue d’ensemble du projet pour toutes les parties prenantes.
La répartition des rôles
Le Scrum Master est garant de l’application adéquate des principes du Scrum. Il coordonne les équipes, en s’assurant de la communication et de la productivité.
Le Product Owner s’approprie le rôle du client dans l’équipe afin de répondre adéquatement aux attentes de ce dernier, il définit les spécificités fonctionnelles du produit en s’appuyant sur les feedback clients, pour ensuite les prioriser et valide les fonctionnalités développées.
L’équipe est constituée des développeurs, qui s’appuient sur une organisation horizontale, sans hiérarchie. En général, une équipe contient 6 à 10 personnes, dans une logique de productivité.
La méthode Scrum : les phases principales
La méthode Scrum s’appuie sur un certain nombres d’étapes à respecter. La méthode Scrum est plutôt relativement facile à comprendre, mais sa mise en œuvre n’est pas chose aisée.
Le Product Backlog
Le Product Owner analyse et identifie le besoin du client et les fonctionnalités du produit (user stories) en question, afin de les regrouper dans le Product Backlog, s’apparentant à un cahier des charges. Ce dernier est susceptible d’évoluer, puisque l’ordre des tâches peut changer.
Le sprint
Les fonctionnalités et tâches à faire sont organisées dans des sprint (durée de cycle de deux semaines). La réalisation est ensuite livrée en fin de cycle. En amont de chaque sprint, une réunion de planification est mise en œuvre : le sprint planning meeting.
Le product owner propose des user stories, analysées par l’équipe technique, puis traduites en de multiples tâches techniques. Suite à une négociation concernant les choses à faire, les tâches forment le sprint backlog.
La mêlée quotidienne
Un bilan matinal est réalisé de 5-10 minutes (et debout pour accroître sa productivité !), quand l’équipe est au complet. Cette réunion permet de motiver et stimuler les équipes et revient sur ce qui a été réalisé hier, les difficultés rencontrées, les objectifs pour aujourd’hui.
Sprint Review
On teste les bénéfices de la fonctionnalité avec le product owner.
Des exigences à réaliser dans une portion de temps courte appelées itérations, permettent d’inclure des travaux de conception, de spécification fonctionnelle et technique de développement et de test. A la fin de chacune de ces itérations, le produit partiel mais utilisable est montré au client. Cela donne la possibilité à l’utilisateur final de se projeter dans l’usage du produit et émettre des feedbacks, utiles pour les futures itérations. Cette transparence réduit les risques en amont de la livraison finale.
Le client peut saisir l’opportunité d’accélérer le « time to market » pour la production du produit (en cours de développement) ou encore changer en cours de route la priorité des fonctionnalités qui n’ont pas encore été développées. Cette souplesse est un apport considérable pour le client.
La méthode Scrum se rapproche du « Lean management » dans une approche adaptée aux projets Web.