MethodesAgiles

mercredi 4 juillet 2007

Cet article résume l’essentiel de ce que j’ai pu apprendre sur les méthodes agiles au cours d’une formation menée par Claude Aubry. Cette formation présentait l’essentiel sur les méthodes agiles et s’interessait plus particulièrement à Scrum.

Qu’est ce que l’agilité

Manifeste agile

L’agilité se base sur un manifeste appelé Manifeste Agile issu de http://www.agilemanifesto.org, en particulier l’agilité s’attache:

  • Aux personnes et leurs interactions
  • A un logiciel qui fonctionne
  • A la collaboration du client dans le projet
  • A l’adaptation au changement

Définition

Définition: “L’agilité est la capacité à favoriser le changement et à y répondre en vue de s’adapter au mieux à un environnement turbulent.” (Jim Highsmith)

Valeurs Agiles

  • Communication
  • Feedback
  • Simplicité
  • Courage
  • Respect
  • Eviter de gaspiller

Principes Agiles

  • Fournir rapidement et fréquemment des versions opérationnelles
  • Accueillir favorablement le changement
  • Assurer une copération forte entre le client et l’équipe de développement
  • Mesurer l’avancement et être transparent
  • Garder un rythme raisonnable
  • Garder un niveau de motivation
  • Se remettre en cause régulièrement

Points essentiels

  • Développement par itérations de 2/3 semaines
  • Approche empirique: basée sur l’expérience
  • Communication avec le métier
  • Responsabilité de l’équipe

Responsabilisation de l’équipe

Contrairement à une approche traditionnelle, l’équipe est responsable:

  • elle connaît les besoins et les priorités
  • elle fait les estimations
  • elle décide de son organisation
  • elle produit un travail de qualité
  • elle remonte les problèmes

Bénéfices

L’agilité augmente la valeur par une prioritisation des livraisons à forte valeur, des releases fréquentes, une autonomie de l’équipe, une réponse favorables aux changements,…

L’agilité réduit les coûts par une réduction des activités qui ne produisent pas de valeur, par une communication rapide et régulière, par des outils permettant de faire de la qualité.

Scrum

Scrum est un processus agile qui permet de produire la plus grande valeur métier dans la durée la plus courte. Du logiciel qui fonctionne est produit à chaque sprint, c’est à dire toutes les 3 / 4 semaines. Le métier définit les priorités, l’équipe s’organise elle-même pour déterminer la meilleure façon de produire les exigences les plus prioritaires. A chaque fin de sprint, tout le monde peut voir fonctionner le produit courant et décider soit de le livrer dans l’état, soit de continuer à l’améliorer pendant un sprint supplémentaire.

Le cadre Scrum

Rôles

  • Un directeur de produit qui est soit le client, soit une personne représentant le client, il:
    • définit les fonctionnalités du produit
    • choisit la date et le contenu de la release
    • responsable du retour sur investissement
    • définit les priorités dans le backlog en fonction de la valeur métier
    • ajuste les fonctionnalités et les priorités à chaque sprint si nécessaire
    • accepte et rejette les résultats
  • Un ScrumMaster qui:
    • représente le management de projet
    • est responsable de faire appliquer les valeurs et les pratiques de Scrum par l’équipe
    • résout les problèmes
    • s’assure que l’équipe est complètement fonctionnelle et productive
    • facilite une coopération poussée entre tous les rôles et fonctions
    • protège l’équipe des interférences extérieures
  • Les équipiers qui:
    • se composent de 5 à 10 personnes
    • regroupent tous les rôles: architecte, concepteur, analyste, développeur, testeur, …
    • est à plein temps sur le projet
    • s’organisent eux-mêmes
    • ne changent pas de composition pendant un sprint

Réunions

  • Planification de sprint:
  • Revue de sprint:
  • Rétrospective:
  • Scrum quotidien

Artéfacts

  • Backlog de produit: liste ordonnée des exigences qui apporte chacune de la valeur métier
  • Backlog de sprint: liste des tâches définie à partir des éléments du produit
  • Graphes d’activité: permet entre deux itérations de connaître la velocité de l’équipe

Le déroulement d’un projet

  • Démarrage: écriture d’une vision, des histoires utilisateurs
  • Estimation et planification
  • Déroulement d’une itération

Vision

Exemple: Pour les professionnels qui souhaitent écrire des articles rapidement avec un système de gestion des versions, le wiki ajax subversion qui permet d’écrire rapidement des articles sous le format wikimodel et qui bénéficie des raccourcis clavier et de la technologie Ajax avec un stockage dans un repository subversion contrairement à d’autres produits comme DokuWiki répondra à leurs besoins.

Histoire utilisateur

Exemple: En tant que redacteur, j’écris des articles au format wiki.

Estimation et planification

Une release se compose de plusieurs itérations, chaque itération contient 2 à 3 histoires utilisateurs. Chaque histoire utilisateur se découpe en tâches. Chaque tâche possède un nombre de points qui correspond à la taille de son exigence en terme de travail et de complexité. Les différents acteurs participent sur l’attributions des points de toutes les tâches et se mettent d’accord. Une fonctionnalité avec un point précis sert de référence pour l’estimation des points des autres tâches. Les points suivent la suite de Fibonacci: 1 2 3 5 8 13.

Dans le cadre du suivi, seul le reste à faire est pris en compte. Le reste à faire se compte en heures. La vélocité de l’équipe correspond au nombre de points faits pendant une itération. Le suivi peut se faire à l’aide d’un graphe d’activité de l’équipe (burndown).

Ressources

0 commentaires:

Enregistrer un commentaire

Abonnement Publier les commentaires [Atom]

<< Accueil