Skip to content

Latest commit

 

History

History

Scrum Method

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Methodologie Agile SCRUM

Introduction

Les méthodologies Agile sont issues du Manifeste pour le développement agile de logiciels1.
Elles s'opposent au modèle en cascade (waterfall) qui se base sur des exigences exprimées en début de projet et où chaque phase ne commence qu'après avoir validé les résultats de la précédente.

2

Les défaults du modèle en cascade

  • Processus rigide, nécessite des exigences clairement définies;
  • Pas d'implication du client au cours des différentes étapes de production;
  • En cas de réévauation/insatisfaction, il faut souvent remonter au début de la chaîne, voire rédéfinir les exigences.

Le modèle en cascade convient toutefois aux projets clairements définis qui appellent à des technologies bien ficelées (usine, construction).

Les Méthodes Agiles

Edité en 2001, le manifeste est rédigé par 17 experts du développement logiciel dans le but d'améliorer le process, le modèle en cascade ne repondant plus, selon eux, aux exigeances des organisations en perpetuelle evolution.
Ensemble, ces experts définissent, dans ce manifeste, des critères, issus de leurs concepts respectifs, pour définir une nouvelle façon de développer des logiciels. Ainsi, le manifeste recense les dénominateurs communs à différentes méthodes existantes et les qualifie d'« agile ». Les valeurs et principes Agile sont défendus par l'Agile Alliance.

Le développement agile, appelé aussi développement adaptatif, se caractérise donc par un style de conduite de projet itératif incrémental, centré sur l’autonomie des ressources humaines impliquées dans la spécification, la production et la validation d’une application intégrée et testée en continu. C’est à partir de ces réalités pratiques, et non pas sur la base d’une théorie globale ou structurante, que l’agilité progresse vers les sphères les plus hautes de l’organisation et participe à la création de ce que l'on peut appeler une culture agile de l'organisation.3

Découvrir comment mieux développer des logiciels (par la pratique et en aidant les autres à le faire) et ainsi valoriser:

  • Les individus et leurs interactions plus que les processus et les outils;
  • Des logiciels opérationnels plus qu’une documentation exhaustive;
  • La collaboration avec les clients plus que la négociation contractuelle;
  • L’adaptation au changement plus que le suivi d’un plan.
  • La satisfaction du client constitue la priorité principale;
  • Accueillir les changements de besoins et les exploiter tels des avantages pour le client;
  • Délivrer des logiciels opérationnels toutes les 2-8 semaines (privilégier les délais courts);
  • Collaboration quotidienne entre les développeurs et les utilisateurs/représentants;
  • Travailler avec des personnes motivées, dans un environnement optimisé (matériel, soutien, confiance);
  • Privilégier le dialogue en face à face pour transmettre l'information à l'équipe de développement (et au sein de celle-ci);
  • Définir le logiciel opérationnel comme principale mesure d'avancement;
  • Instaurer un rythme de développement soutenable et constant;
  • Favoriser l'excellence technique et une bonne conception;
  • Minimiser la quantité de travail inutile;
  • les équipes autoorganisées promettent les meilleurs conceptions/projets;
  • A intervalles réguliers, réfléchir en équipe comment optimiser l'efficacité et s'ajuster en fonction.

Agile : A retenir

Toute méthode dite agile prévoit le fractionnement des étapes de développement logiciel, la fixation d’objectifs à court terme et requiert d'ajuster, au besoin, les objectifs pour répondre aux attentes du client. L'accent est mis sur la relation équipe-client et la collaboration/communication des membres de l'équipe.
Flexibilité et souplesse dans l’organisation sont les deux piliers fondamentaux des méthodes agile.4

Exemples de méthodologies Agile

SCRUM

La méthode Scrum (en français mêlée), emprunte son nom au rugby, sport qui requiert une equipe soudée avançant dans la même direction. Il s'agit de la méthodologie Agile la plus utilisée dans la gestion de projet.
Elle est majoritairement utilisée dans le developpement d'applications web.

Histoire

Hirotaka Takeuchi et Ikujiro Nonaka, chercheurs et professeurs à l'université, évoquent pour la première fois la rugby approach dans une publication intitulée The New New Product Development Game, une méthode holistique destinée à optimiser la vitesse et flexibilité dans le développement de nouveaux produits logiciels.

Ken Schwaber et Jeff Sutherland évoquent en 1995 les fondements de ce qui deviendra la méthode SCRUM lors de l'OOPSLA5.
Ensemble, ils rédigent le guide officiel de Scrum, mis à disposition gratuitement par Scrum Alliance. Ken Schwaver quitte la Scrum Alliance en 2009 suite à des désaccords avec le Conseil d'Administration. Il fondera ensuite Scrum.org.

Principes

La méthode SCRUM planifie des Sprints, soit des cycles de production courts (1 à 4 semaines) ciblés sur des fragments du produit/service. Ce fonctionnement permet de faire le point régulièrement, en équipe, sur l'état d'avancement du projet et de l'adapter aux éventuelles nouvelles exigeances.

On peut dégager 6 principes :

  • Le contrôle du processus empirique ;
  • L'autonomie et l'auto-organisation de l'équipe ;
  • La collaboration ;
  • La hiérarchisation ou priorisation basée sur la valeur ;
  • Les dates d'échéance ;
  • Le développement itératif.

Des daily scrum meetings permettent à l'équipe de développement de faire le point au quotidien (tâches réalisées, points de blocage, objetifs du jour) et usent le plus souvent d'un scrum board, support inspiré de la méthode Kanban.

6

Avantages

  • Les cycles courts permettent rapidement une itération utilisable du produit ;
  • Validation/contrôle du client à chaque sprint et prise en compte des évolutions (besoins, technologies) ;
  • Production incrémentale.

Les piliers de SCRUM

  • La transparence : Toutes les parties prenantes (management, équipe projet, utilisateur) ont connaissance des information nécessaires à la compréhension du projet ;
  • L'inspection : évaluations régulières destinées à vérifier que le développement est toujours en phase avec les demandes du client ;
  • L'adaptation : corriger la trajectoire du projet si des écarts avec les résultats à atteindre sont détectés lors de la phase d'inspection.

Les 5 valeurs de Scrum (FORCE)

  • La focalisation de l'équipe sur le développement à réaliser ;
  • L'ouverture sur le mode de fonction de Scrum et sur la communication interpersonnelle pour avancer et résoudre les problèmes ensemble ;
  • Le respect mutuel ;
  • Le courage de l'équipe projet afin de relever les défis en toute autonomie ;
  • L'engagement : Chacun s'engage à atteindre les objectifs de chaque sprint.

Scrum Master & Product Owner

Scrum Master

Il est coutume de nommer un Scrum Master (souvent le chef de projet, certifié SCRUM) afin de garantir le respect du framework.
Le Scrum Master est chargé de planifier les étapes de chaque sprint, à savoir :

  • le sprint planning : organisation du cyle de développement, définition des objectifs et du temps imparti ;
  • le daily meeting : mise à jour du plan d'objectifs avec l'équipe de développement ;
  • le sprint review : en fin de sprint, l'équipe présente les incréments apportés au produit + mise au point et évaluation ;
  • la sprint retrospective : dans la foulée du sprint review, les membres de l'équipe de développement débrieffent sur le sprint (problèmes rencontrés, point d'amélioration) dans un objectif d'amélioration continue de sorte que le prochain sprint soit plus efficace que le précédent.

Le Scrum Master conçoit le BDC (burndown chart) qui illustre la quantité de travail restant (axe vertical) pour le temmps estimé (axe horizontal).

7

Product Owner

A côté du Scrum Master, un Product Owner représentera le client au sein de l'équipe projet. Il est le garant de la vision produit. Celui-ci reccueille les besoins des parties prenantes et les traduits en fonctionnalités destinées à être développées par l'équipe de production.
Pour ce faire, il rédige et alimente régulièrement un backlog en items appelés user stories8 classés par ordre de priorité en fonction de quatre critères :

  • la valeur business introduite ;
  • la connaissance nécessaire à la réalisation (besoin de formations ?) ;
  • l'effort à produire par l'équipe projet ;
  • les risques (contraintes associées) pouvant générer des imprévus (prérequis, appels a des tiers ...).

Pour faciliter les retours des utilisateurs, Scrum conseille de mettre en place si besoin des user tests à l'issue de chaque sprint.

9

Scrumban: une méthode hybride

Les méthodes Scrum et Kanban sont souvent combinées. Alors que la première vise à fractionner le processus de développement, la seconde vise à éviter la perte de temps et d'énergie en limitant le nombre de tâches de production.
Contrairement à SCRUM qui vise davantage à coordonner un projet unique, Kanban conviendra davantage à la gestion de plusieurs projets ainsi qu'à la TMA (tierce maintenance applicative) et au MCO (maintien en condition opérationnelle).

Liens

Bibliographie

Footnotes

  1. Wikipedia | Manifeste Agile;

  2. modèle en cascade;

  3. Le développement incrémental (élaboration de différentes parties du process à différents moments intégrées une fois finies) permet d'améliorer le processus de développement, ainsi que d'ajuster les exigences à l'évolution de l'environnement. Le développement itératif (stratégie de remaniement) permet d'améliorer la qualité du produit par la révision et l'amélioration de certains aspects. (Source : Wiki Agile CESI)

  4. Journal du Net: Méthode agile : définition, comparatif et avantages

  5. L'Object-Oriented Programming, Systems, Languages & Applications est une conférences annuelle organisée par le SIGPLAN (Special Interest Group on Programming Language) de l'ACM (Association for Computing Machinery) (Source : Wikipedia | OOPSLA)

  6. Nira | The Top 10 Scrum Boards You Should Be Using

  7. Burndown chart example (Source : DZone | The ideal Burndown Chart)

  8. "Phrase simple, rédigée dans un langage courant, qui permet de décrire avec suffisamment de précision le contenu d’une fonctionnalité à développer. Dans la méthode agile Scrum dont elle est issue, la User Story est censée illustrer un besoin fonctionnel exprimé par les types d’utilisateurs." (Source : Hubvisory | Comment bien rédiger une User Story ?)

  9. (Source : tuleap | "Comprendre la méthode Agile Scrum en 10 min")