Magazine High tech

Les méthodes agiles

Publié le 14 février 2011 par Vincent Schweitzer @vschweitzer

Voici une petite présentation synthétiques sur les méthodes agiles. Cela vient en préparation d’un article sur les méthodes qui peuvent permettre de réduire les risques de défaillance d’un projet.

Contexte

Les risques

  • Dépassement des délais
  • Abandon du projet
  • Détérioration du système
  • Taux de défaillances
  • Incompréhension de l’aspect fonctionnel
  • Changement des besoins fonctionnels
  • Fausse fonctionnalité
  • Turn-over

Equation logicielle

4 variables d’ajustement sur un projet :

  • coût
  • qualité
  • durée
  • périmètre fonctionnel

Le client à le droit de fixer 3 variables et l’équipe de développement ajuste la dernière.
Le périmètre fonctionnel est la variable qui fournit la maîtrise la plus efficace.

Manifeste agile

Les quatre valeurs fondamentales Agiles sont de valoriser :

  • l’interaction avec les personnes plus que les processus et les outils.
  • un produit opérationnel plus qu’une documentation pléthorique.
  • la collaboration avec le client plus que la négociation de contrat.
  • la réactivité face au changement plus que le suivi d’un plan..

Les 12 principes

  • Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles.
  • Le changement est accepté, même tardivement dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client.
  • Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte.
  • Les experts métier et les développeurs doivent collaborer quotidiennement au projet.
  • 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.
  • La méthode la plus efficace pour transmettre l’information est une conversation en face à face.
  • Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet.
  • Les processus agiles promeuvent un rythme de développement durable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment.
  • Une attention continue à l’excellence technique et à la qualité de la conception améliore l’agilité.
  • La simplicité – l’art de maximiser la quantité de travail à ne pas faire – est essentielle.
  • Les meilleures architectures, spécifications et conceptions sont issues d’équipes qui s’auto-organisent.
  • À intervalle régulier, l’équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens.

Méthodes de mise en pratique

  • DSDM (Dynamic Software Development Method)
  • Crystal Clear
  • Adaptive Software Dévelopment
  • XP (Extreme Programming)
  • Scrum

Extreme Programming

Valeurs

  • Communication
  • Simplicité
  • Feedback
  • Courage
  • Respect (ajouté en v2)

Rôles

  • Développeur
    • Travaille en binôme, communiqué
    • Doit être autonome
    • A une double competence : développeur – concepteur
  • Client
    • Doit apprendre à exprimer ses besoins sous forme d’user-stories
    • A à la fois le profil de l’utilisateur et une vision plus élevé sur le problème et l’environnement du business
    • Doit apprendre à écrire les cas de tests fonctionnels
  • Testeur
    • A pour rôle d’aider le client à choisir et à écrire ses tests fonctionnels
  • Tracker
    • Aide l’équipe à mieux estimer le temps nécessaire à l’implémentation de chaque user story
    • Contrôle la conformité de l’avancement du planning
  • Coach
    • Recadre le projet
    • Ajuste les procédures
    • Doit intervenir de la manière la moins intrusive possible
  • Consultant
    • N’apporte pas de solution toute faite
    • Apporte à l’équipe les connaissances nécessaires pour qu’elle résolve elle-même les problèmes
  • Grand chef
    • Apporte à l’équipe courage et confiance

Pratique

  • Client sur site (on-site customer)
  • Séance de planification (planning game)
  • Intégration continue (continuous integration)
  • Livraisons fréquentes (frequent releases)
  • Rythme soutenable (forty-hour week)
  • Tests de recette (acceptance tests)
  • Tests unitaires (unit tests)
  • Conception simple (simple design)
  • Métaphore (metaphor)
  • Remaniement continu ou refactorisation de code (refactoring)
  • Convention de codage (coding standard)
  • Programmation en binôme (pair programming)
  • Propriété collective du code (collective code ownership)

Scrum

Rôles

  • Directeur de produit
  • ScrumMaster
  • Equipe
  • Intervenants

Réunions

  • Planification du sprint (2 x 4h)
  • Revue du sprint (2 à 4h)
  • Rétrospective du sprint (2 à 4h)
  • Scrum quotidien (15 min debout)

Documents

  • Backlog de produit
  • But du sprint
  • Backlog de sprint
  • Burndown chart
  • Charte projet

Retour à La Une de Logo Paperblog

A propos de l’auteur


Vincent Schweitzer 6 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte