Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Ma compréhension de SCRUM: les fondamentaux

3 Novembre 2011 , Rédigé par benkirane Publié dans #La gestion de projets

J'ai participé la semaine dernière à une formation de 2 jours sur SCRUM. Ne pouvant mettre en pratique tout de suite mon apprentissage, je me suis dis qu'il serait intéressant d'en faire quelques billets qui résument ma comprehension de SCRUM. Les deux premiers présenteront les aspects théoriques de SCRUM avec un premier billet sur les fondamentaux de SCRUM et un second sur le déroulement d'un projet SCRUM. Les billets qui suivront seront plus axés sur ma vision de SCRUM dans la pratique.

Qu'est ce que SCRUM ?

SCRUM est un framework qui décrit un ensemble d'acteurs et leur rôle, d'artefacts (les inputs et outputs de projet) et de time-boxes (événements à durée fixe). Ceci dans le but de mettre en oeuvre, de manière itérative et incrémentale, un projet complexe (informatique ou pas) dans des les meilleurs délais avec la meilleure satisfaction du client puisque la priorité est donnée à ce qui a le plus de valeur pour lui. Dans la suite, je décrirais les différents éléments qui le compose principalement pour des projets informatiques.

A qui s'adresse SCRUM ?

SCRUM est composé de plusieurs principes dont je ferais la liste plus tard dans ce billet. L'un de ces principes est qu'une équipe SCRUM doit s'auto-organiser pour gérer un projet. J'en ai conclu qu'il faut que les personnes qui participent à une équipe SCRUM doivent avoir une certaine expérience en développement. Je dirais au moins 2/3 ans. Dans le cas contraire, une auto-organisation prendrait beaucoup trop de temps ainsi que la prise de décision. Une équipe SCRUM a une taille idéale de 7 personnes +- 2. Je dirais qu'à partir de 5 personnes pour des projets de taille raisonnable, on peut inclure un seul développeur junior. Celui-ci commencerait le projet par du peer-programming (programmation à 2) dans le but de monter en compétences et connaître les bonnes pratiques rapidement.

Quels sont les acteurs d'un projet SCRUM et leurs rôles?

Les acteurs principaux d'un projet réalisé en SCRUM sont le client et l'équipe SCRUM. Le client ou son représentant est appelé Product Owner (PO). Il a la charge de la mise en oeuvre des besoins du client et de leur priorisation. L'équipe SCRUM est elle composée d'un capitaine de navire qu'est le Scrum Master (SM) et des autres membres de l'équipe, les développeurs, les acteurs principaux. Comme au Rugby dont Scrum tire son nom (mêlée en français), la réussite d'un projet SCRUM est liée, essentiellement, à la performance de l'équipe. C'est l'une des raisons qui me poussent à dire qu'elle doit avoir, de manière globale, une certaine expérience en développements. Le SM a la résponsabilité de l'avancement du projet, de sa qualité et est un pare-feu entre l'équipe et son environnement (principalement le client). Il doit faire en sorte que l'équipe ne soit pas parasitée par autre chose que la réalisation des tâches qui lui incombe. C'est un facilitateur et un animateur. Enfin, l'équipe est responsable des estimations de charges, de la réalisation du projet et de sa propre amélioration dans son efficacité et la qualité de ses développements.

Quelles sont les valeurs de SCRUM?

SCRUM est basé sur une ligne directrice qu'il faut toujours concervée à l'esprit. C'est le Manifeste Agile qui est composé des quatre valeurs suivantes:

  • privilégier les Individus et leurs interactions,
  • privilégier la collaboration avec le client,
  • privilégier la disponibilité immédiate des logiciels,
  • privilégier la réactivité face aux changements.

En résumé, SCRUM ce sont des individus qui travaillent ensemble pour rendre un service, rapidement disponible et très changeant, au client.

Quels sont les principes de SCRUM?

Des valeurs de SCRUM découlent 12 principes qui font les fondements de ce framework:

  1. Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles.
  2. Le changement est accepté, même tardivement dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client.
  3. Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte.
  4. Les experts métier et les développeurs doivent collaborer quotidiennement au projet.
  5. Bâtissez le projet autour de personnes motivées. Donnez leur l'environnement et le soutien dont elles ont besoin, et croyez en leur capacité à faire le travail.
  6. La méthode la plus efficace pour transmettre l'information est une conversation en face à face.
  7. Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet.
  8. Les processus agiles promeuvent un rythme de développement durable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment.
  9. Une attention continue à l'excellence technique et à la qualité de la conception améliore l'agilité.
  10. La simplicité - l'art de maximiser la quantité de travail à ne pas faire - est essentielle.
  11. Les meilleures architectures, spécifications et conceptions sont issues d'équipes qui s'auto-organisent.
  12. À intervalle régulier, l'équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens.

De ma compréhension de SCRUM, l'agilité consiste à l'habilité de mettre en oeuvre tel ou tel principe en fonction du contexte du projets, des individus qui le composent, de l'environnement du client, du degré de maturité de l'agilité dans l'entreprise, ... Il faudroit voir cela comme un programme, basée sur une librairie, et qui fait appel à l'une ou l'autre de ses méthodes en fonction du besoin.

Que sont les artefacts dans SCRUM?

Les artefacts sont des éléments en entrée et en sortie d'un projet SCRUM. En entrée de la réalisation d'un projet SCRUM par une équipe, on aura ainsi les éléments suivants:

  • Le ProductBacklog (Panier de Produit): liste priorisée des fonctionnalités à réaliser. Celles-ci sont, généralement, appelées User Stories.
  • Le SprintBacklog (Panier de Sprint): User Stories à réaliser dans un Sprint découpées en tâches élémentaires.

En sortie, pour avoir une vue simple du reste à faire et du réalisé, on a :

  • Les BurnDown Charts: Représentation graphique très simple de l'état d'avancement du projet basé sur le Reste à faire.

Ci-dessous, un exemple de ce que peut être un Product Backlog: Exemple de Product Backlog

Qu'est ce qu'une User Story?

Une User Story (US) est une fonctionnalité qui, comme son nom l'indique, raconte une histoire. Celle-ci est sensée pouvoir être spécialisée à l'infini. Elle est décrite de la manière suivante: En tant qu'<acteur>, je peux <réaliser une fonctionnalité>.

Que sont les time-boxes?

Les time-boxes sont des événements à durée fixe qui ponctuent le déroulement d'un projet SCRUM. On en décompte 6:

  1. La Réunion de Planification de version (Release Planning),
  2. La Réunion de Planification du Sprint (Sprint Planning),
  3. La Réunion Quotidienne (Scrum Daily Meeting), aussi connue sous le nom de Stand-up meeting (car elle se fait debout généralement),
  4. Le Sprint,
  5. La Revue de Sprint (Sprint Review),
  6. La Rétrospective.

Partager cet article

Repost 0

Commenter cet article