Extreme Programming - Thierry Cros

http://agile.thierrycros.net
Avec une présentation http://agile.thierrycros.net/xp/presentation_XP2007_t3.html

La definition du "projet" est primordiale pour eviter les flous qui peuvent amener a des malentendus et des quiproquos.

Les demandes s'affinent au fur et a mesure que le projet avance.
Le service informatique
  • Developper un systeme, c'est instrumenter un processus metier
  • Le developpement est alors au service des utilisateurs
    • Le produit offre une valeur ajoutée
    • Le processus de developpement lui participe a l'amelioration du metier
Client : Les attentes
  • Des cycles toujours plus courts : les metiers s'accelerent
  • Une maitrise des variables projet :
    • Perimetre
    • Coute
    • Planning
    • Qualité
Réponse habituelle des DSI
  • La grosse artillerie
    • Un document prouve l'avancement
    • La qualité a tendance a gommer l'ecart-type inhérent a l'humain
    • On essaye de créer des variables predictive a outrance
  • Acteurs hyper-specialisés
  • De nombreux documents
  • De nombreux controles... pas toujours les bons
Etre Agile : vision
  • Logique metier : les changements sont normaux et font partis intégrantes du projet
  • Un developpement est un engagement
    • Des materiaux complexes - langages de productions
    • C'est une affaire humaine
  • En 2001 : manifeste du developpement Agile : www.agilemanifesto.org
    • Manifesto for Agile Software Development

      We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

      Individuals and interactions over processes and tools
      Working software over comprehensive documentation
      Customer collaboration over contract negotiation
      Responding to change over following a plan

      That is, while there is value in the items on the right, we value the items on the left more.
Extreme programming : Méthode Agile
  • 90's : XP est concu (projet Chrysler)
  • 1999 : premier ouvrage de Kent Beck (Extreme Programming Explained: Embrace Change)
  • 2000 : Les débuts en france
    • Adoption confidentielle
    • Pléthore de XP Canada Dry
    • Une progression lente et régulière
    • 2005 : Les premiers XP Days en France
  • Fin 2004 : XPE 2eme édition
Les risques adressés
  • Spécifications molle
  • Inconnu : difficultés, pannes
  • Qualité intrinséque : ce qui marche, ce qui ne marche pas
XP : le cadre
  • Une équipe d'environ 10 personnes
  • Des demandes qui changent
  • Des techniques qui autorisent le remaniement du produit (refactoring)
  • Des équipiers assertifs et responsables (voir Développement Responsable)
Le plan : Shu Ha Ri
  • Shu : appliquer strictement XP pour comprendre vraiment
  • Ha : Break the rules
  • Ri : Adapter XP

Cout, délais, Qualité, Portée
  • Quatre leviers pour gérer les projets
  • Mieux vaut jouer sur la portée
  • Le client fixe trois valeur sur quatre
  • Le développeur gère la quatrième
  • Le client fixe cout, délai, portée ? le développeur adapte la qualité en fonction du reste.
CQFD
  • Cout : le budget qui autorise les ressources
  • Qualité : adéquation, fiabilité
  • Fonctionnalité ou perimetre
  • Delais : les dates de déploiement
XP : Cycle de vie
  • Exploration
  • Engagement
  • Pilotage par feedback
    • Cycles cours : release 1 a 6 mois, itération de 1 a 3 semaines
Exploration
  • Client et développeurs explorent leurs roles respectifs
  • Le client affine la vision
  • Le développeur explore les solutions techniques (carottages)
  • Chacun se prépare a l'engagement
  • Maximum 2 mois pour eviter l'analyse paralysante
Engagement
  • Fixer les valeurs initiales des variables CQFD
  • Le projet s'incrit dans un certain éco-systeme ( acteurs tels que utilisateurs, exploitants..)
Pilotage par feedback
  • Feedback de chaque itération (yesterday weather)
  • Changements => Ajustements des variables CQFD
  • Cette période est parfois appelée réalisation ou construction. Ici l'accent est mis sur le pilotage et le feedback
Client, manager vous avez le droit de...
  • Disposer d'un plan global, de connaitre ce qui etre fait quand et a quel cout
  • Obtenir le plus possible de chaque semaine de programmation
  • Voir les progres d'un systeme executable, dont il est prouve qu'il fonctionne grace a des testees repetables que vous avez specifié
  • Changer d'avis, remplacer des fonctionnalités, changer les priorités sans avoir a payer des prix exorbitant
  • Etre informé des changements de planning en temps utile de facon a pouvoir changer l'etendue de l'iteration pour conserver la date initiale de livraison. Vous pouvez meme annuler le projet a n'importe quel moment de disposer d'un systeme utilisable, qui reflete vos investissements jusqu'a ce jour.
Developpeur vous avez le droit...
  • Connaitre les besoins et une definition precise des priorités
  • Produire un travail de qualité, tout le temps
  • Demander et recevoir de l'aides des binomes, du management, des clients
  • Faire et mettre a our vos estimations
  • Decider de vos responsabilité plutot que de vous les voir imposées
Droits et responsabilité
  • Droit du client, du manager
  • Responsabilité du developpeur
  • Droit du developpeur : connaitre les priorités
  • Responsabilité du client, du manager : fixer les priorités
Les 5 valeurs d'XP
  • Communication
    • A l'origine d'un probleme : souvent une non-communication
  • Simplicité
    • Le pari de l'XP : le mieu est l'ennemi du bien
  • Feedback
    • Le remede contre un trop plein d'optimiste
    • Plus de feedback, plus de capacité a réagir
  • Courage
    • Changement dans la perception du soft
    • Adopter de nouvelles pratiques
    • jeter le code qui pue
  • Respect
    • Le socle humain
Principes essentielles de XP
  • Feedback concret et rapide
  • Assumer la simplicité
  • Changement incrémental
  • Accueillir le changement
  • Travail de qualité
Autres principes de XP
  • Apprenez a apprendre
  • Petit investissement de départ
  • Jouer pour gagner
  • Experimentation concrete
  • Communication honnete et ouverte
  • Travailler avec l'instinct des personnes
  • Choississez les responsabilités
  • Adaptation locale
  • Voyager léger
  • Métrique honnetes
Pratiques de XP
  • Planification
  • Versions fréquentes
  • Test-client
  • Métaphore, vocabulaire commun
  • Conception simple
  • Pilotage par les tests
  • Remaniement du code
  • Binome
  • Propriété collective
  • Intégration continue
  • Rythme durable
  • Client sur site
  • Standards de codage
  • Plateau projet, équipe complète




XP games : simulation de gestion de projet via des jeux a estimer...

Les variables présentent dans le jeu
La vélocité = Capacité de production/2 = ((jour par itération) x effectif)/2
Estimation en carambars
Valeur ajoutée

Kanban
Gestion de la production

Aucun commentaire: