Scrum

Origine de la méthodologie Scrum

Scrum est une méthodologie Agile qui a été conçue spécifiquement pour le développement de logiciel. Comme toutes les méthodologies Agiles, Scrum suit les principes définis dans l’Agile Manifesto, qui est constitué de 12 piliers communs à toutes les méthodes Agiles.

L’Agilité, et par extension la méthode Scrum, se différencient des méthodes « classiques » (cycle en cascade, cycle en V…) par sa philosophie. En effet, les méthodes Agiles mesurent l’avancement d’un projet par le nombre de fonctionnalités développées et validées par le client:

« Un logiciel opérationnel est la principale mesure d’avancement.
Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée. » Agile Manifesto

De ce fait, il est indispensable pour les utilisateurs des méthodes Agiles de livrer fréquemment et d’intégrer leurs clients comme des membres à part entière de l’équipe projet.

« Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet. » Agile Manifesto
« Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts. » Agile Manifesto

Ces premiers principes sont assez éloignés des méthodes « classiques » non itératives, où les commanditaires et les utilisateurs découvrent leur logiciel en fin de projet. Entre la date de lancement du projet et sa livraison, il s’est parfois écoulé des mois voir des années avant que les parties prenantes ne puissent tester leur projet. Et lorsque le projet est très avancé, il devient alors compliqué de réaliser des modifications.

Durant ces phases de développement, les besoins ont pu changer, les priorités être modifiées…

« Accueillez positivement les changements de besoins, même tard dans le projet. Les processus Agiles exploitent le changement pour donner un avantage compétitif au client. » Agile Manifesto

D’une certaine façon, nous pouvons rapprocher l’agilité à certains principes du Lean de part l’élimination du « gaspillage », c’est a dire d’éviter au maximum le travail inutile:

« La simplicité – c’est-à-dire l’art de minimiser la quantité de travail inutile – est essentielle. » Agile Manifesto

Présentation rapide de Scrum

Scrum s’articule autour d’une équipe soudée et auto-organisée qui cherche à atteindre un but (de la même façon qu’une mêlée en rugby). Elle se focalise sur une partie limitée et maîtrisable des fonctionnalités à réaliser.

Les rôles en Scum:

Rôles de Product Owner, Scrum Master et équipe de développement

Roles en Scrum

L’organisation Scrum

Scrum est une méthodologie de développement logiciel itérative et incrémentale.

Elle est définie comme :

« Cadre de travail permettant de répondre à des problèmes complexes et changeants, tout en livrant de manière productive et créative des produits de la plus grande valeur possible. » Le Guide Scrum

Un projet Scrum est constitué d’un ensemble d’itérations appelées : Sprint.

À la fin de chaque sprint, l’équipe doit fournir un livrable fonctionnel.

Cycle de vie de la méthodologie Scrum

Représentation globale d’un projet Scrum

Les artefacts Scrum

Les Scrum artefacts offrent une visibilité sur l’organisation, les objectifs et l’avancement du projet pour les membres de l’équipe Scrum ainsi que les parties prenantes du produit

Représentation imagée des artefacts du scrum : Le product backlog, le sprint backlog et le burndown chart

Les artefacts Scrum

Product Backlog

Le Product Backlog (ou carnet de produit) représente la liste finale des idées et des fonctionnalités constituant le produit final. Il est organisé de la façon souhaitée par le Product Owner.

Il est l’unique source des besoins et centralise tous les changements à effectuer sur le produit. Le Product Backlog évolue constamment au cours de la vie du produit et n’est jamais fini.

Il est possible de définir un Product Backlog en suivant le principe du Scrum Iceberg.

Sprint backlog

Le Sprint Backlog est composé de la liste des fonctionnalités (User Stories) que l’équipe à pour objectif de développer durant le sprint courant.

Burndown chart

Le Burndown Chart est une représentation graphique de l’évolution de quantité de travail restante par rapport au temps. Le travail restant peut être représenté en J/H ou en story point.

Représentation de l'avancement du travail de l'équipe durant un sprint

Exemple d’un Burndown Chart

Les événements (réunions) Scrum

Le Sprint Planning Meeting

Titre: Sprint Planning Meeting (ou réunion de planification du sprint).

Quand: Avant le lancement de chaque sprint.

Objectifs:

  • Définir l’objectif du Sprint.
  • Préparer le “sprint backlog”.

Déroulement:

  • 1ère partie : Toute l’équipe s’accorde sur quelles fonctionnalités seront présentes lors du prochain sprint.
  • 2nd partie: L’équipe de développement et le SM déterminent la charge de travail requises afin de livrer toutes les fonctionnalités incluses dans le “Sprint Backlog”. Différentes méthodes existent pour estimer la charge de travail comme le Planning Poker ou le T-Shirt sizing, cependant, le choix de la méthode d’estimation est laissée à l’équipe et au Scrum Master.

Limite de temps: 8 heures.

Présents:

  • Scrum Master.
  • Product Owner.
  • Equipe de développement.
  • Des spécialistes et experts peuvent eventuellement être invités au sprint planning

Le Daily Scrum Meeting

Titre: Daily Scrum Meeting, stand-up meeting, Daily meeting…

Quand: Tous les jours.

Objectifs: Connaitre l’avancement de chaque personne de l’équipe.

Déroulement: Chaque membre de l’équipe répondent à ces trois questions:

  • Qu’ai-je fait hier?
  • Que vais-je faire aujourd’hui ?
  • Est ce que je vois des points bloquants qui empêcheraient l’équipe de développement ou moi même d’atteindre l’objectif du sprint ?

Limite de temps: 15 minutes.

Présents:

  • Equipe de développement.
  • Scrum Master (optionnel).

Sprint review

Titre: Sprint review, revue de sprint, démonstration…

Quand: A la fin d’un sprint.

Objectifs: Faire un démonstration

  • Examiner le travail effectué et le travail planifié mais non achevé.
  • Présenter le travail accompli aux parties prenantes.

Déroulement: Le Scrum Master (ou un membre de l’équipe de développement) présente, fonctionnalité par fonctionnalité, le travail accompli durant le sprint. Le travail inachevé ne peut être présenté. Le Product Owner accepte ou refuse chacune des fonctionnalités.

Limite de temps: 4 heures.

Présents:

  • Scrum Master.
  • Equipe de développement.
  • Product Owner.
  • Parties prenantes (option).
  • Utilisateurs (option).

Sprint Retrospective

Titre: Sprint Retrospective, Rétrospective du Sprint.

Quand: En fin de sprint après le Sprint Review.

Objectifs: Amélioration continue:

  • Analyse l’itération précédente.
  • déduit un plan d’actions d’amélioration qu’elle mettra en place lors de l’itération suivante.

Déroulement: 3 questions sont à poser durant cette réunion :

  • Que devons nous continuer de faire?
  • Que devons nous arrêter de faire?
  • Que pouvons nous améliorer durant le sprint suivant?

Limite de temps: 3h

Présents:

  • Scrum Master
  • Product Owner
  • Equipe de développement

Pour aller plus loin sur Scrum, je vous conseille ce site: L’agiliste.

Application de la méthodologie Scrum

Attention: Pour qu’une équipe fonctionne efficacement avec la méthodologie Scrum, elle doit être composée de 3 à 8 développeurs.

Au-delà, il vaut mieux faire du Scrum of Scrum, c’est à dire créer plusieurs équipes Scrum, chacune travaillant sur une partie du projet.

Scrum of scrum

Scrum of scrum

Scrum est la méthode agile la plus populaire et est actuellement très en vogue chez les éditeurs de logiciels.

Cette popularité est liée au fait que Scrum soit une méthodologie réactive, capable de s’adapter rapidement aux changements.

Le client étant intégré dans le projet, il aura la possibilité à chaque fin de sprint (c’est à dire toutes les 2 ou 3 semaines) de donner son avis sur ce qui a été développé. Ainsi, à fin du projet, le produit développé correspondra aux attentes de votre client.

Appliqué correctement et sur les bons projets, Scrum permet d’augmenter grandement les chances de succès de votre équipe, ce qui n’est pas négligeable en sachant qu’en 2010, le taux de réussite des projets informatique était de 37%

A lire sur la réussite des projets informatique:

Echecs de projet – Les chiffres

L’état abandonne un projet de superlogiciel

Pour avoir plus d’information sur le « Scrum of Scrum » je vous conseille ce site: Scrumalliance.

Scrum à distance

Même s’il est conseillé d’utiliser la méthodologie Scrum quand l’ensemble de l’équipe travaille dans le même open-space, il est tout de même possible d’employer cette méthode de travail avec des équipes éloignées.

Pour cela, vous avez la possibilité d’utiliser un logiciel de gestion de Scrum en ligne (ex Scrumwise).

Attention: Quand on souhaite faire du Scrum « à distance », il faut que le Scrum Master insiste sur le maintien de l’ensemble des réunions (visioconférence ou téléconférence). Tout particulièrement le daily Scrum Meeting (point journalier avec l’ensemble de l’équipe).

Il faut également que l’ensemble des membres de l’équipe puissent communiquer facilement avec les autres membres de l’équipe.

Pour faciliter les échanges et permettre une bonne coopération à distance, deux éléments sont indispensables:

  • le casque téléphonique: Il facilite les échanges téléphoniques de longue durée et permet au développeur d’avoir les mains libres pour taper au clavier pendant l’échange.
  • Un système de partage d’écran: Il faut que chacun des participants de l’échange téléphonique puisse voir l’écran de la personne et puisse prendre le contrôle de l’écran

D’autres points positifs pour une bonne coopération à distance seraient de faire se rencontrer l’équipe pour certaines occasions, afin de souder les liens. Mais cela n’est malheureusement pas toujours possible…

Pour aller plus loin: Scrum longue distance selon LeanMagazin

Publicités

Une réflexion sur “Scrum

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s