Scrum est une méthodologie agile utilisée dans le développement de logiciels basés sur un processus itératif et incrémental. Scrum est un cadre agile adaptable, rapide, flexible et efficace qui est conçu pour apporter de la valeur au client tout au long du développement du projet. L’objectif principal de Scrum est de satisfaire le besoin du client grâce à un environnement de transparence dans la communication, de responsabilité collective et de progrès continu. Le développement part d’une idée générale de ce qui doit être construit, en élaborant une liste de caractéristiques classées par priorité (backlog du produit) que le propriétaire du produit veut obtenir.

Scrum Methodology

 

Un bref historique sur Scrum

L’histoire de Scrum remonte à 1986 dans l’article de la Harvard Business Review (HBR) intitulé « The New Product Development Game » par Hirotaka Takeuchi & Ikujiro Nonaka. Cet article décrit comment des entreprises telles que Honda, Canon et Fuji-Xerox fabriquent de nouveaux produits dans le monde entier en utilisant une approche de développement de produits évolutive et basée sur le travail d’équipe. Cette approche met l’accent sur l’importance de donner aux équipes auto-organisées les moyens d’agir.

L’article a eu une influence sur le développement de nombreux concepts qui ont donné naissance à ce que nous appelons aujourd’hui Scrum. Scrum est un terme tiré du rugby, qui fait référence à la façon dont le jeu est relancé après une faute ou lorsque le ballon a quitté le jeu.

En 1993, Jeff Sutherland et son équipe chez Easel Corporation ont créé le processus Scrum à utiliser dans les processus de développement de logiciels en combinant les concepts de l’article de 1986 avec les concepts de développement orienté objet, de contrôle empirique des processus, de développement itératif et incrémental, de processus logiciels et d’amélioration de la productivité, ainsi que de développement de systèmes complexes et dynamiques.

Méthodologie et processus de Scrum

Scrum est précisément une évolution de la gestion de projet Agile. La méthodologie Scrum est basée sur un ensemble de pratiques et de rôles très définis qui doivent être impliqués dans le processus de développement de logiciels. Il s’agit d’une méthodologie flexible qui récompense l’application des 12 principes agiles dans un contexte convenu par tous les membres de l’équipe du produit.

Scrum est exécuté en blocs temporaires, courts et périodiques, appelés Sprints, qui durent généralement de 2 à 4 semaines, ce qui est le terme utilisé pour désigner le retour d’information et la réflexion. Chaque Sprint est une entité en soi, c’est-à-dire qu’il fournit un résultat complet, une variation du produit final qui doit pouvoir être livré au client avec le moins d’effort possible lorsqu’il le demande.

Le processus a pour point de départ une liste d’objectifs/exigences qui constituent le plan du projet. C’est le client du projet qui donne la priorité à ces objectifs en tenant compte d’un équilibre entre leur valeur et leur coût, c’est-à-dire de la manière dont les itérations et les livraisons qui en découlent sont déterminées.

D’une part, le marché exige la qualité, une livraison rapide à des coûts réduits, pour laquelle une entreprise doit être très agile et flexible dans le développement des produits, afin d’obtenir des cycles de développement courts qui puissent répondre à la demande des clients sans nuire à la qualité du résultat. Il s’agit d’une méthodologie très facile à mettre en œuvre et très populaire pour les résultats rapides qu’elle permet d’obtenir.

La méthodologie Scrum est principalement utilisée pour le développement de logiciels, mais d’autres secteurs profitent également de ses avantages en mettant en œuvre cette méthodologie dans leurs modèles organisationnels tels que les équipes de vente, de marketing et de ressources humaines, etc.

Différents rôles dans Scrum

Dans Scrum, l’équipe se concentre sur la création de logiciels de qualité. Le propriétaire d’un projet Scrum s’attache à définir les caractéristiques que le produit doit avoir (ce qu’il faut construire, ce qu’il ne faut pas construire et dans quel ordre) et à surmonter tout obstacle qui pourrait entraver la tâche de l’équipe de développement.

L’équipe Scrum se compose des rôles suivants :

Scrum master : La personne qui dirige l’équipe en l’aidant à se conformer aux règles et aux processus de la méthodologie. Le Scrum master gère la réduction des obstacles du projet et travaille avec le Product Owner pour maximiser le retour sur investissement. Le Scrum master est chargé de tenir Scrum à jour, de fournir un encadrement, un mentorat et une formation aux équipes au cas où elles en auraient besoin.

Product Owner : Est le représentant des parties prenantes et des clients qui utilisent le logiciel. Le Product Owner se concentre sur la partie commerciale et est responsable du retour sur investissement du projet. Il traduit la vision du projet à l’équipe, valide les bénéfices dans des histoires à intégrer dans le carnet de commandes du produit et les priorise régulièrement.

L’équipe : Un groupe de professionnels possédant les connaissances techniques nécessaires qui développent le projet en réalisant conjointement les histoires auxquelles ils s’engagent au début de chaque sprint.

Avantages de la méthodologie Scrum

Scrum présente de nombreux avantages par rapport à d’autres méthodologies de développement agile. C’est actuellement le cadre de référence le plus utilisé et le plus fiable dans l’industrie du logiciel. Vous trouverez ci-dessous certains des avantages connus de Scrum :

Facilement évolutif : Les processus Scrum sont itératifs et sont traités au cours de périodes de travail spécifiques, ce qui permet à l’équipe de se concentrer plus facilement sur des fonctionnalités définies pour chaque période. Cela a non seulement l’avantage d’obtenir de meilleurs résultats en fonction des besoins de l’utilisateur, mais donne également aux équipes la possibilité d’adapter les modules en termes de fonctionnalité, de conception, de portée et de caractéristiques de manière ordonnée, transparente et simple.

Conformité des attentes : Le client établit ses attentes en indiquant la valeur qu’apporte chaque exigence/l’historique du projet, l’équipe les estime et, sur la base de ces informations, le propriétaire du produit établit sa priorité. Régulièrement, lors des démonstrations de sprint, le propriétaire du produit vérifie que les exigences ont été satisfaites et transmet un retour d’information à l’équipe.

Souplesse d’adaptation aux changements : Réaction rapide aux changements d’exigences générés par les besoins des clients ou l’évolution du marché. La méthodologie est conçue pour s’adapter à l’évolution des exigences qu’impliquent les projets complexes.

Réduction des délais de mise sur le marché : Le client peut commencer à utiliser les fonctionnalités les plus importantes du projet avant que le produit ne soit complètement prêt.

Amélioration de la qualité du logiciel : La méthode de travail et la nécessité d’obtenir une version fonctionnelle après chaque itération, permet d’obtenir un logiciel de meilleure qualité.

Prévision en temps utile : Grâce à cette méthode, nous connaissons la vitesse moyenne de l’équipe par sprint (points d’histoire), avec laquelle, par conséquent, il est possible d’estimer quand une certaine fonctionnalité encore en attente sera disponible.

Réduction des risques : Le fait de réaliser les fonctionnalités les plus précieuses en premier lieu et de connaître la vitesse à laquelle l’équipe avance dans le projet, permet d’éliminer efficacement les risques à l’avance.

Les événements Scrum

Chacun des événements Scrum facilite l’adaptation de certains des aspects du processus, du produit, du progrès ou des relations.

Sprint : Le sprint est l’unité de travail de base d’une équipe Scrum. C’est la principale caractéristique qui marque la différence entre Scrum et les autres modèles de développement agile.

Planification du sprint : Le but du Sprint Planning est de définir ce qui va être fait dans le Sprint et comment cela va être fait. Cette réunion se tient au début de chaque sprint et définit la manière dont il abordera le projet à partir des étapes et des délais du Product Backlog. Chaque sprint est composé de différentes caractéristiques.

Scrum quotidien : L’objectif du Daily Scrum est d’évaluer les progrès et les tendances jusqu’à la fin du Sprint, en synchronisant les activités et en créant un plan pour les 24 heures suivantes. Il s’agit d’une brève réunion qui a lieu chaque jour pendant la période du Sprint. Trois questions sont posées individuellement : Qu’est-ce que j’ai fait hier ? Qu’est-ce que je vais faire aujourd’hui ? De quelle aide ai-je besoin ? Le Scrum Master doit essayer de résoudre les problèmes ou les obstacles qui se présentent.

Revue du sprint : L’objectif de la revue de sprint est de montrer le travail accompli en ce qui concerne le retard de livraison des produits pour les livraisons futures. Le sprint terminé est passé en revue, et il devrait déjà y avoir une avancée claire et tangible du produit à présenter au client.

Rétrospective du sprint : L’équipe passe en revue les objectifs du sprint terminé, note les bons et les mauvais résultats, afin de ne pas répéter les erreurs. Cette étape sert à mettre en œuvre les améliorations du point de vue du processus de développement. L’objectif de la rétrospective du sprint est d’identifier les améliorations possibles du processus et de générer un plan pour les mettre en œuvre lors du prochain sprint.

Artefacts de Scrum

Les artefacts Scrum sont conçus pour garantir la transparence des informations clés dans la prise de décision.

Les Product Backlog : L’arriéré de produits est une liste qui rassemble tout ce dont le produit a besoin pour satisfaire les clients potentiels. Il est préparé par le propriétaire du produit et les fonctions sont classées par ordre de priorité en fonction de ce qui est plus ou moins important pour l’entreprise. L’objectif est que le propriétaire du produit réponde à la question « Que faut-il faire ».

Les Sprint Backlog : Il s’agit d’un sous-ensemble d’éléments du backlog produit, qui sont sélectionnés par l’équipe pour être exécutés pendant le sprint sur lequel ils vont travailler. L’équipe détermine la durée de chaque sprint. Habituellement, le backlog du sprint est affiché sur des tableaux physiques appelés Scrum board – qui rendent le processus de développement visible à tous ceux qui entrent dans la zone de développement.

Les incréments de produit : L’incrément est la somme de toutes les tâches, cas d’utilisation, histoires d’utilisateurs, arriérés de produits et de tout élément qui a été développé pendant le sprint et qui sera mis à la disposition de l’utilisateur final sous forme de logiciel.

Planification dans Scrum

La réunion de planification du sprint se tient au début de chaque sprint. Tous les membres de l’équipe participent à la réunion, c’est-à-dire le Product Owner, le Scrum Master et toute l’équipe de développement. Toute l’équipe Scrum doit comprendre et définir l’objectif à atteindre dans ce sprint (Sprint Goal). À partir de ce moment, l’équipe de développement doit concevoir un plan de travail pour atteindre l’objectif. Cette planification doit permettre de voir si l’objectif du sprint implique une charge de travail en fonction de la durée prévue pour les sprints (qui est de 2 à 4 semaines).

Le client montre le résultat à atteindre dans ce sprint et les exigences du produit livrable. Vous devez alors mener une discussion au cours de laquelle l’équipe de développement évalue les éléments de la liste qui peuvent être livrés.

Le Scrum Master et le Product Owner doivent tous deux collaborer pour clarifier tout aspect des exigences. Enfin, l’équipe de développement doit expliquer comment elle va organiser le travail de l’équipe pour atteindre l’objectif du sprint.