Présentation de L'Agilité

Présentation

On voit poindre depuis quelques années, un nouveau concept : l'Agilité.

Pour gérer un projet, il faut pouvoir s'adapter facilement et rapidement aux changements incessants. C'est le concept d'Agilité.

La méthode Agile permet de gérer des projets complexes avec de nombreuses inconnues, auxquels les méthodes classiques sont par nature inadaptées. Effectivement la gestion de leur projet classique utilise depuis toujours la méthode en "cascade" ou cycle en "V".

Il existe cependant de nombreux risques connus de cette méthode (retard de livraison, budget dépassé, fonctionnalités développées mais non utilisées...

Plus collaboratives, la méthode agile favorise largement les relations de confiance, sont plus collaboratives et permettant une plus forte implication des acteurs.

Principes directeurs

  • forte implication et collaboration entre équipe de projet et experts du domaine (pilote / analyste d'affaire)
  • mise en production de fonctionnalités de qualité à intervalles fréquents et réguliers

La principale force et l'originalité de SCRUM sont les techniques pour renforcer la cohésion de l'équipe (Team building).

Scrum est une méthode agile conçue pour une petite équipe, cherchant à maximiser sa productivité au travers de "règles de vie" facile à adapter à son cycle de développement.

Il existe plusieurs méthodes agiles chacun prendra ce qui lui semble bon dans chacune de ces méthodes (RAD, XP, Processus Unifié, Scrum ...¦) en fonction de son environnement et du projet.

Scrum introduit des règles pour suivre un processus itératif empirique permettant d'obtenir un produit très proche de besoins qui évoluent.

Scrum tire son nom du terme anglais "mêlée", au Rugby. Comme dans les réunions quotidiennes de Scrum avec la mêlée, cette technique de reprise du jeu après une faute qui remet une équipe de se remettre sur de bons rails grâce à l'effort collectif. Cette méthode de développement (orientée gestion de projet) se pratique depuis 1995 et inclue souvent des pratiques venant de XP.

Scrum ne suit pas un processus prédictif et les travaux à faire sont ajustés régulièrement au cours du projet, notamment à la fin de chaque itération, appelée le "Sprint".

L'idée essentielle de Scrum est de tenir compte de la réalité de la plupart des projets pour lesquels il n'est pas possible de tout définir dès le début : les spécifications fonctionnelles seront modifiées et précisées au fur et à mesure, des outils ou technologies inconnus entreront plus tard sur le tapis, etc..

Un projet utilisant Scrum a son cycle de vie composé de Sprints successifs

Scrum suppose donc une collaboration entre les différentes personnes impliquées. Le "gestionnaire" est nommé ScrumMaster : il a pour charge de faciliter l'application de Scrum par l'équipe.
Le processus Scrum repose sur deux journaux ou "backlog" :

  • backlog de produit : une liste des fonctionnalités pour le produit,
  • backlog de Sprint : recense les tâches du Sprint en cours .

Le Sprint dure au maximum quatre semaines. Pendant un Sprint, des réunions quotidiennes de moins de 15 minutes (appelées Scrum) permettent à toute l'équipe de faire le point.

Pendant un Sprint l'équipe développe un produit partiel. Elle va analyser, concevoir, développer, tester, documenter, intégrer... Chaque Sprint se termine par une revue. Le produit partiel obtenu et modifie au besoin le backlog de produit.

Rôles SCRUM

  • Propriétaire de produit (product owner)
  • Personne experte du domaine d'affaire
  • Possède tout un pouvoir décisionnel sur le produit
  • Doit être dédié au maximum à la réalisation du projet
  • La seule tête à trancher
  • Scrum Master
  • Facilitateur entre l'équipe de développement et le propriétaire de produit
  • S'assure que la méthode SCRUM est appliquée avec rigueur
  • Équipe de développement
  • Personnel impliqué dans un développement de qualité
  • Equipe multidisciplinaire compétente
  • Auto-organisée
  • Travail collaboratif

Les 10 principes essentiels de la méthode Agile

  • Parvenir à la satisfaction du client en générant un cycle rapide, récurrent et incrémental de versions fonctionnelles,
  • Se montrer apte à prendre en compte les changements à tout moment sur le projet,
  • Mmettre en place une coopération quotidienne entre toute l'équipe du projet,
  • Motiver les développeurs,
  • Faire simple, mais bien pensé,
  • Laisser l'équipe s'organiser.
  • Les individus sont privilégiés et leurs actions plutôt que les processus et les outils,
  • Préconiser l'utilisation logiciel plutôt que la documentation complète,
  • La coopération avec le client plutôt que la négociation du contrat,
  • Répondre au changement plutôt que suivre un plan.

A retenir

L'équipe projet est donc constituée 3 rôles possibles :

  • Le ScrumMaster : animateur d'équipe. il s'occupe de toutes les choses non liées au développement (ex: documents administratifs) pour ne pas déranger l'équipe.
  • Le ProductOwner : représentant du (des) client(s) au sein de l'entreprise. Il définit les priorités dans les tâches à réaliser (fonctionnalités à développer) et de valider / conseiller les choix effectués (ex: pour une IHM).
  • L'équipe : sans notion de hiérarchie. Les décisions se prennent ensemble et elles peuvent récupérer des informations auprès du ProductOwner.

Il y a 3 niveaux dans le planning de livraison du logicie l:

  • Un point quotidien (Daily Scrum)
  • Le sprint : correspond à une itération du projet livrée en interne.
    La release : constituée de plusieurs sprints, c'est l'état d'avancement où le produit doit pouvoir être mis en production.

Compléments d'informations

Planification et estimation (sprint 0)

  • Production d'une charte de projet
  • Production d'un "release plan"
  • Production du carnet du produit (liste des fonctionnalités triées par priorité)

Sprints (durée : 2 à 4 semaines)

  • Planification de sprint (sprint planning)
  • Production du carnet du sprint (liste des tâches à effecteur pendant le sprint)
  • Mêlée quotidienne (daily scrum)
  • Discussion autour des efforts déployés la journée précédente et qui seront déployées pendant la journée
  • Résolution de problèmes et conflits

Revue de sprint (sprint review)

  • Démonstration des fonctionnalités "terminées"
  • Inspection et rétrospective amenant la correction des méthodes de travail pouvant être améliorées