0% ont trouvé ce document utile (0 vote)
72 vues45 pages

Agile - CM Processus Agile

Transféré par

berenice.dartois
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
72 vues45 pages

Agile - CM Processus Agile

Transféré par

berenice.dartois
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Yannick

 Prié  
Département  Informatique  –  Faculté  des  Sciences  et  Technologies    
Université  Claude  Bernard  Lyon  1  
2011-­‐2012  
¡ 1/3  –  Méthodes  et  processus  
¡ 2/3  –  Processus  unifié  
¡ 3/3  –  Méthodes  Agile  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 2


¡ Principes  des  méthodes  Agile  
¡ XP  :  eXtreme  Programming  
¡ Scrum  
¡ Autres  méthodes  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 3


¡ Années  90  
§ réaction  contre  les  grosses  méthodes    
§ prise  en  compte  de  facteurs  liés  au  développement  logiciel  
¡ Fin  années  90  
§ méthodes  
▪ d’abord  des  pratiques  liées  à  des  consultants,  puis  des  livres  
▪ XP,  Scrum,  FDD,  Crystal…  
¡ 2001  
§ les  principaux  méthodologues  s’accordent  sur  le  «  Agile  
manifesto  »  
¡ Depuis  
§ projets  Agile  mixent  des  éléments  des  principales  
méthodes  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 4


¡ Rien  
§ «  code  and  fix  »  
§ marche  bien  sur  les  petits  projets,  suicidaire  ensuite  
¡ Monumental  
§ méthodes,  processus,  contrats  :  rationalisation  à  tous  les  étages  
§ problèmes  et  échecs  
▪ trop  de  choses  sont  faites  qui  ne  sont  pas  directement  liées  au  produit  
logiciel  à  construire  
▪ planification  trop  rigide  
¡ Agile  
§ trouver  un  compromis  :  le  minimum  de  méthode  permettant  de  
mener  à  bien  les  projets  en  restant  agile  
▪ capacité  de  réponse  rapide  et  souple  au  changement    
▪ orientation  vers  le  code  plutôt  que  la  documentation  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 5


¡ Méthodes  adaptatives  (vs.  prédictives)  
§ itérations  courtes  
§ lien  fort  avec  le  client  
§ fixer  les  délai  et  les  coûts,  mais  pas  la  portée  
¡ Insistance  sur  les  hommes    
§ les  programmeurs  sont  des  spécialistes,  et  pas  des  
unités  interchangeables  
§ attention  à  la  communication  humaine  
§ équipes  auto-­‐organisées  
¡ Processus  auto-­‐adaptatif  
§ révision  du  processus  à  chaque  itération  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 6


¡ Simplicité  
¡ Légèreté  
¡ Orientées  participants  plutôt  que  plan  
¡ Nombreuses    
§ XP  est  la  plus  connue  
¡ Pas  de  définition  unique  
¡ Mais  un  manifeste  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 7


¡ Février  2001,  rencontre  et  accord  sur  un  manifeste  
¡ Mise  en  place  de  la  «  Agile  alliance  »  
§ objectif  :  promouvoir  les  principes  et  méthodes  Agile  
§ http://www.agilealliance.com/    
¡ Les  signataires  privilégient  
§ les  individus  et  les  interactions  davantage  que  les  processus  et  les  
outils  
§ les  logiciels  fonctionnels  davantage  que  l’exhaustivité  et  la  
documentation  
§ la  collaboration  avec  le  client  davantage  que  la  négociation  de  contrat  
§ la  réponse  au  changement  davantage  que  l’application  d’un  plan  
¡ 12  principes  
§ (transparents  suivants)  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 8


http://agilemanifesto.org/principles.html

1. Our  highest  priority  is  to  satisfy  the  costumer  through  early  and  
continuous  delivery  of  valuable  software.  
2. Welcome  changing  requirements,  even  late  in  development.  
Agile  process  harness  change  for  the  customer´s  competitive  
advantage.    
3. Deliver  working  software  frequently,  from  a  couple  of  weeks  to  a  
couple  of  months,  with  a  preference  to  the  shorter  timescale.  
4. Business  people  and  developers  must  work  together  daily  
throughout  the  project.  
5. Build  projects  around  motivated  individuals.  Give  them  the  
environment  and  support  they  need,  and  trust  them  to  get  the  
job  done.  
6. The  most  efficient  and  effective  method  of  conveying  
information  to  and  within  a  development  team  is  face-­‐to-­‐face  
conversation.  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 9


http://agilemanifesto.org/principles.html

1. Working  software  is  the  primary  measure  of  progress  


2. Agile  processes  promote  sustainable  development.  The  
sponsors,  developers,  and  users  should  be  able  to  
maintain  a  constant  pace  indefinitely  
3. Continuous  attention  to  technical  excellence  and  good  
design  enhances  agility  
4. Simplicity  –  the  art  of  maximizing  the  amount  of  work  
not  done  –  is  essential  
5. The  best  architectures,  requirements,  and  designs  
emerge  from  self-­‐organizing  teams  
6. At  regular  intervals,  the  team  reflects  on  how  to  become  
more  effective,  then  tunes  and  adjusts  its  behavior  
accordingly  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 10


(Larman 2005, p.36-37)

¡ Utilisation  d’UML  
¡ La  modélisation  vise  avant  tout  à  comprendre  et  
à  communiquer  
¡ Modéliser  pour  les  parties  inhabituelles,  difficiles  
ou  délicates  de  la  conception.    
¡ Rester  à  un  niveau  de  modélisation  
minimalement  suffisant  
¡ Modélisation  en  groupe  
¡ Outils  simples  et  adaptés  aux  groupes  
¡ Les  développeurs  créent  les  modèles  de  
conception  qu’ils  développeront  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 11


¡ Principes  des  méthodes  Agile  
¡ XP  :  eXtreme  Programming  
¡ Scrum  
¡ Autres  méthodes  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 12


¡ Historique  
§ 1996  :  Ward  Cunningham  et  Kent  Beck    
§ Projet  Chrysler  Comprehensive  Compensation  (C3)  
§ Réorganisation  du  système  de  paie    
§ Propagation  mondiale  grâce  à  Internet  
§ Implantation  lente  en  France  
¡ Dimension  humaine  
§ considérée  comme  déterminante  pour  la  réussite  de  tout  projet  
¡ Principes  
§ Feedback  rapide  et  constant  
§ Compréhension  partagée  
§ Bien-­‐être  de  l  ’équipe  
§ Processus  fluide  et  continu  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 13


¡ Caractéristiques  principales  
§ Le  client  (maîtrise  d’ouvrage)  pilote  lui-­‐même  le  projet,  et  ce  de  très  près  grâce  
à  des  cycles  itératifs  extrêmement  courts  (1  ou  2  semaines).  
§ L’équipe  autour  du  projet  livre  très  tôt  dans  le  projet  une  première  version  du  
logiciel,  et  les  livraisons  de  nouvelles  versions  s’enchaînent  ensuite  à  un  
rythme  soutenu  pour  obtenir  un  feedback  maximal  sur  l’avancement  des  
développements.  
§ L’équipe  s’organise  elle-­‐même  pour  atteindre  ses  objectifs,  en  favorisant  une  
collaboration  maximale  entre  ses  membres.  
§ L’équipe  met  en  place  des  tests  automatiques  pour  toutes  les  fonctionnalités  
qu’elle  développe,  ce  qui  garantit  au  produit  un  niveau  de  robustesse  très  
élevé.  
§ Les  développeurs  améliorent  sans  cesse  la  structure  interne  du  logiciel  pour  
que  les  évolutions  y  restent  faciles  et  rapides.  
§ (extrait  de  http://www.design-­‐up.com/methodes/XP/)  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 14


http://www.swen.uwaterloo.ca/~kostas/ECE355-05/lectures/Lect3-Ch15-Unit2.ppt

toutes les
2 ou 3 semaines
Planning

Écriture des tests

Release Programmation par pairs développement


+ Refactoring piloté par les tests

Test

Integration
chaque jour
(intégration continue)

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 15


2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 16
¡ Comité  de  pilotage  
§ dirige  les  aspects  stratégiques  du  projet,    
§ définit  les  objectifs    
§ et  alloue  les  moyens  nécessaires  
¡ Client  interlocuteur  :      
§ le  plus  à  même  de  connaître  le  besoin  et  de  l’exprimer  
§ «  Client  interlocuteur  »  =  appui  du  «  sponsor  principal  »  
▪ directeur  des  systèmes  d’information    
▪ ou  porte-­‐parole  officiel  de  l’entreprise  disposant  d’une  autorité  suffisante  pour  
légitimer  le  projet  et  incarner  l’engagement  de  l’entreprise  
¡ En  phase  de  préparation,  il  faut  s’assurer  de:  
§ La  clarté  des  objectifs  du  projet    
§ Leur  compréhension  par  toutes  les  parties  prenantes  
§ Accord  de  l’entreprise  cliente  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 17


¡ Pratique  humaniste  favorisant    
§ l'élimination  progressive  des  risques  
§ l’établissement  d’un  rythme  de  travail  régulier,  sans  
heures  supplémentaires    
¡ But    
§ éliminer  le  stress,    
§ éliminer  les  tensions  a  l’intérieur  du  groupe,    
§ éliminer  les  tensions  entre  le  groupe  et  les  donneurs  
d’ordres,  
§ éliminer  le  risque  de  défection.  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 18


¡ Profils  intervenants  dans  une  équipe  XP  :  
§ Client  
§ Testeur  
§ Manager  
§ Coach  
§ Tracker  
§ Programmeur  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 19


¡ Le  client  :  
§ Membre  à  part  entière  de  l’équipe  
§ Présence  physique  imposé  dans  l’équipe  tout  au  long  du  
développement  
§ Spécifie  les  fonctionnalités  à  implémenter  et  tests  fonctionnels  
§ Rôle  pouvant  être  tenu  par  une  ou  plusieurs  personnes  
¡ Le  testeur  :  
§ Assistant  du  client  
§ Un  programmeur    
§ Implémente  (code)  les  tests  de  recette  le  plus  tôt  possible,  valide  le  
fonctionnement  du  code  et  vérifie  la  non  régression  
¡ Le  manager  :  
§ Responsable  de  l’infrastructure  dans  laquelle  l’équipe  travaille  
§ S’assure  la  non  existence  de  problèmes  étrangers  au  projet  ou  
logistiques  (espace  de  travail,  outillage,  documentation,  etc.)  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 20


¡ Le  coach  :  
§ S’  assure  de  la  bonne  compréhension  de  la  méthode  XP  et  de  son  application  correcte  
par  les  différents  acteurs  du  projet  
§ Généralement  «  expert  méthode  »  et  bon  communicateur  doublé  d’un  technicien  
crédible  et  respecté  
§ A  pour  objectif  de  se  faire  oublier  
¡ Le  tracker  :  
§ Contrôle  l’avancement  des  tâches  à  l’intérieur  d’une  itération.    
§ S’entretient  fréquemment  avec  chaque  programmeur  pour  s’enquérir  des  difficultés  
rencontrées  et  du  travail  déjà  effectué.    
§ Construit  régulièrement  une  vision  fiable  de  l’avancement  des  tâches  afin  de  détecter  le  
plus  tôt  possible  les  dérives  et  de  lancer  une  nouvelle  phase  si  nécessaire  
¡ Le  programmeur  :  
§ Estime  la  charge  nécessaire  à  l’implémentation  d’un  scénario  dans  le  cadre  du  jeu  de  la  
planification.    
§ Implémente  les  scénarios  en  s’appuyant  sur  l’écriture  de  tests  unitaires  
§ Est  aussi  analyste,  concepteur.  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 21


¡ Le  «  jeu  de  la  planification  »  
§ regroupement  des  intervenants  pour  planifier  l’itération  
§ les  développeurs  évaluent  les  risques  techniques  et  les  efforts  
prévisibles  liés  à  chaque  fonctionnalité  (user  story,  sortes  de  
scénarios  abrégés)  
§ les  clients  estiment  la  valeur  (l’urgence)  des  fonctionnalités,  et  
décident  du  contenu  de  la  prochaine  itération  
¡ Temps  court  entre  les  releases  
§ au  début  :  le  plus  petit  ensemble  de  fonctionnalités  utiles  
§ puis  :  sorties  régulières  de  prototypes  avec  fonctionnalités  
ajoutées      
¡ Métaphore  
§ chaque  projet  a  une  métaphore  pour  son  organisation,  qui  
fournit  des  conventions  faciles  à  retenir  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 22


¡ Conception  simple  
§ toujours  utiliser  la  conception  la  plus  simple  qui  fait  ce  qu’on  
veut    
▪ doit  passer  les  tests    
▪ assez  claire  pour  décrire  les  intentions  du  programmeur  
§ pas  de  généricité  spéculative  
¡ Tests    
§ développement  piloté  par  les  tests  :  on  écrit  d’abord  les  tests,  
puis  on  implémente  les  fonctionnalités  
§ les  programmeurs  s’occupent  des  tests  unitaires  
§ les  clients  s’occupent  des  tests  d’acceptation  (fonctionnels)  
¡ Refactoring    
§ réécriture,  restructuration  et  simplification  permanente  du  code  
§ le  code  doit  toujours  être  propre  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 23


¡ Programmation  par  paires  (pair  programming)  
§ tout  le  code  de  production  est  écrit  par  deux  programmeurs  
devant  un  ordinateur    
§ l’un  pense  à  l’implémentation  de  la  méthode  courante,  l’autre  à  
tout  le  système  
§ les  paires  échangent  les  rôles,  les  participants  des  paires  
changent  
§ permet  de    
▪ se  contrôler  mutuellement    
▪ diminuer  les  erreurs  de  conception  
▪ mieux  se  concentraer  sur  le  travail  
▪ éliminer  le  risque  de  dépendance  à  un  développeur  
▪ lisser  les  inégalités  d’expériences  en  associant  «  confirmé  &  débutant  »  
▪ faire  circuler  la  connaissance  à  l’intérieur  du  projet  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 24


¡ Propriété  collective  du  code  
§ tout  programmeur  qui  voit  une  opportunité  
d’améliorer  toute  portion  de  code  doit  le  faire,  à  
n’importe  quel  moment  
¡ Intégration  continue  
§ utilisation  d’un  gestionnaire  de  versions  (e.g.,  CVS)  
§ tous  les  changements  sont  intégrés  dans  le  code  de  
base  au  minimum  chaque  jour  :  une  construction  
complète  (build)  minimum  par  jour  
§ 100%  des  tests  doivent  passer  avant  et  après  
l’intégration    
2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 25
¡ Semaine  de  40  heures  (35  en  France  ?)  
§ les  programmeurs  rentrent  à  la  maison  à  l’heure  
§ faire  des  heures  supplémentaire  est  signe  de  
problème  
§ moins  d’erreurs  de  fatigue,  meilleure  motivation  
¡ Des  clients  sur  place  
§ l’équipe  de  développement  a  un  accès  permanent  à  un  
vrai  client/utilisateur  (dans  la  pièce  d’à  côté)  
¡ Des  standards  de  codage  
§ tout  le  monde  code  de  la  même  manière    
▪ tout  le  monde  suit  les  règles  qui  ont  été  définies  
▪ il  ne  devrait  pas  être  possible  de  savoir  qui  a  écrit  quoi  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 26


¡ Règles  
§ l’équipe  décide  des  règles  qu’elle  suit,  et  peut  les  
changer  à  tout  moment  
¡ Espace  de  travail  
§ tout  le  monde  dans  la  même  pièce  
▪ awareness  
§ tableaux  au  murs  
§ matérialisation  de  la  progression  du  projet  
▪ par  les  histoires  (user  stories)  réalisées  et  à  faire  
▪ papiers  qui  changent  de  position,  sont  réorganisés  
▪ par  les  résultats  des  tests  
▪ …  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 27


¡ Formation  
¡ Mise  à  niveau  des  ressources  avant  le  lancement  du  projet  :    
§ Phase  d’apprentissage  théorique  par  un  formateur  professionnel  
§ Mise  en  pratique  dans  le  cadre  d’un  projet  pilote  
¡ Projet  partagé  en  2  phases  :  
§ Phase  coaching,  peu  productive,  avec  pour  objectifs  de    
▪ réaliser  en  situation  le  potentiel  de  chaque  membre  
▪ gérer  les  parcours  individualisé  avec  le  soutien  pédagogique  de  moniteurs  (les  coachs)  
§ Phase  productive  lors  de  la  première  phase  du  vrai  projet  
¡ Montée  en  compétence  de  l’équipe  
¡ Objectifs    
§ Maximiser  la  rentabilité  de  l’investissement  pour  la  montée  en  compétences  
des  ressources  
§ Éviter  l’écueil  80/20  :  l’acquisition  des  20%  de  connaissances  les  plus  pointues  
requiert  80%  des  efforts  (et  de  l’investissement)  en  formation.    
▪ Faire  confiance  au  temps  et  considérer  l’uniformisation  des  compétences  collectives  
2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 28
¡ Planning   ¡ Coding  
§ User  stories  are  written.   § The  customer  is  always  available.  
§ Release  planning  creates  the  schedule.   § Code  must  be  written  to  agreed  
§ Make  frequent  small  releases.   standards.  
§ The  Project  Velocity  is  measured.   § Code  the  unit  test  first.  
§ The  project  is  divided  into  iterations.   § All  production  code  is  pair  programmed.  
§ Iteration  planning  starts  each  iteration.   § Only  one  pair  integrates  code  at  a  time.  
§ Move  people  around.   § Integrate  often.  
§ A  stand-­‐up  meeting  starts  each  day.   § Use  collective  code  ownership.  
§ Fix  XP  when  it  breaks.   § Leave  optimization  till  last.  
¡ Designing   § No  overtime.  
§ Simplicity.   ¡ Testing  
§ Choose  a  system  metaphor.   § All  code  must  have  unit  tests.  
§ Use  CRC  cards  for  design  sessions.   § All  code  must  pass  all  unit  tests  before  it  
can  be  released.  
§ Create  spike  solutions  to  reduce  risk.  
§ When  a  bug  is  found  tests  are  created.  
§ No  functionality  is  added  early.  
§ Acceptance  tests  are  run  often  and  the  
§ Refactor  whenever  and  wherever   score  is  published.    
possible.  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 29


¡ Concept  intégré  et  simples  
¡ Pas  trop  de  management    
§ pas  de  procédures  complexes  
§ pas  de  documentation  à  maintenir  
§ communication  directe  
§ programmation  par  paires  
¡ Gestion  continuelle  du  risque  
¡ Estimation  permanente  des  efforts  à  fournir  
¡ Insistance  sur  les  tests  :  facilite  l’évolution  et  la  
maintenance  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 30


¡ Approprié  pour  de  petites  équipes  (pas  plus  
de  10  développeurs),  ne  passe  pas  à  l’échelle  
§ pour  des  groupes  plus  gros,  il  faut  plus  de  
structure  et  de  documentation  (ceremony)  
¡ Risque  d’avoir  un  code  pas  assez  documenté  
§ des  programmeur  qui  n’auraient  pas  fait  partie  de  
l’équipe  de  développement  auront  sans  doute  du  
mal  à  reprendre  le  code  
¡ Pas  de  design  générique    
§ pas  d'anticipation  des  développements  futurs    

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 31


¡ Principes  des  méthodes  Agile  
¡ XP  :  eXtreme  Programming  
¡ Scrum  
¡ Autres  méthodes  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 32


http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt

¡ Scrum  :  mêlée  
¡ Phases  
§ Initiation  /  démarrage  
▪ Planning    
▪ définir  le  système  :  product  Backlog  =  liste  de  fonctionnalités,  
ordonnées  par  ordred  de  priorité  et  d’effort  
▪ Architecture    
▪ conception  de  haut-­‐niveau  
§ Développement  
▪ Cycles  itératifs  (sprints)  :  30j  
▪ amélioration  du  prototype  
§ Clôture  
▪ Gestion  de  la  fin  du  projet  :  livraison…  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 33


http://fr.wikipedia.org/wiki/Scrum

¡ Isolement  de  l'équipe  de  développement    


§ l'équipe  est  isolée  de  toute  influence  extérieure  qui  
pourrait  lui  nuire.  Seules  l'information  et  les  tâches  reliées  
au  projet  lui  parviennent  :  pas  d’évolution  des  besoins  dans  
chaque  sprint.  
¡ Développement  progressif  
§ afin  de  forcer  l'équipe  à  progresser,  elle  doit  livrer  une  
solution  tous  les  30  jours.  Durant  cette  période  de  
développement  l'équipe  se  doit  de  livrer  une  série  de  
fonctionnalités  qui  devront  être  opérationnelles  à  la  fin  des  
30  jours.  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 34


http://fr.wikipedia.org/wiki/Scrum

¡ Pouvoir  à  l'équipe  
§ l'équipe  reçoit  les  pleins  pouvoirs  pour  réaliser  les  
fonctionnalités.  C'est  elle  qui  détient  la  responsabilité  de  
décider  comment  atteindre  ses  objectifs.  Sa  seule  
contrainte  est  de  livrer  une  solution  qui  convienne  au  client  
dans  un  délai  de  30  jours.  
¡ Contrôle  du  travail  
§ le  travail  est  contrôlé  quotidiennement  pour  savoir  si  tout  
va  bien  pour  les  membres  de  l'équipe  et  à  la  fin  des  30  
jours  de  développement  pour  savoir  si  la  solution  répond  
au  besoin  du  client.  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 35


http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt

¡ Product  owner    
§ responsable  officiel  du  projet  
¡ Scrum  Master    
§ expert  de  l’application  de  Scrum  
¡ Scrum  Team    
§ équipe  projet.  
¡ Management    
§ prend  les  décisions  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 36


http://web.engr.oregonstate.edu/~cook/classes/cs569.agile.ppt

¡ Product  Backlog    
§ état  courant  des  tâches  à  accomplir    
¡ Effort  Estimation    
§ permanente,  sur  les  entrées  du  backlog  
¡ Sprint    
§ itération  de  30  jours  
¡ Sprint  Planning  Meeting    
§ réunion  de  décision  des  objectifs  du  prochain  sprint  et  de  la  manière  
de  les  implémenter  
¡ Sprint  Backlog    
§ Product  Backlog  limité  au  sprint  en  cours  
¡ Daily  Scrum  meeting    
§ ce  qui  a  été  fait,  ce  qui  reste  à  faire,  les  problèmes  
¡ Sprint  Review  Meeting    
§ présentation  des  résultats  du  sprint  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 37


¡ Principes  des  méthodes  Agile  
¡ XP  :  eXtreme  Programming  
¡ Scrum  
¡ Autres  méthodes  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 38


¡ Alistair  Cockburn  (2002).  Agile  Software  
Development.    
Addison  Wesley  
¡ Le  développement  logiciel  vu  comme  un  jeu  
coopératif  de  communication  et  d’invention    
§ des  projets  différents  et  des  méthodes  différentes    
§ le  projet  change  à  mesure  que  les  gens  changent  
¡ Choix  de  la  méthode  en  fonction  de  différents  
facteurs  
§ taille  en  nombre  de  personnes    
§ criticité  pour  le  client  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 39


(defects cause loss of...)
. . . Prioritized for Legal Liability
air-traffic
Criticality

Prioritized for Productivity & Tolerance


control system Life
(L)
L6 L20 L40 L100 L200 L500 L1000 banking system
Essential
money
(E) E6 E20 E40 E100 E200 E500 E1000

Discretionary
money
(D) D6 D20 D40 D100 D200 D50 D1000

Comfort
medium-sized
small (C)
C6 C20 C40 C100 C200 C500 C1000 productivity tool
utilities 1-6 - 20 - 40 - 100 - 200 - 500 - 1,000
Number of people involved

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 40


¡ Familles  conçues  à  partir  de  l'observation  et  des  interviews  
¡ Trouver  à  chaque  fois  la  méthode  la  moins  rigide  qui  réussira  
quand  même  
§ haute  productivité,  haute  tolérance  
§ focus  sur  la  communication  
L6 L20 L40 L80
¡ Exemples  
§ Crystal  Clear  
E6 E20 E40 E80
§ Crystal  Yellow  
§ Crystal  Orange   D6 D20 D40 D80
§ Crystal  Red  
C6 C20 C40 C80
Orange Red
Clear Yellow

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 41


¡ LEAN    
§ méthode  de  gestion  de  production  de  chez  Toyota  
§ s’applique  aux  développements  informatiques    
▪ méthode  Agile  
¡ Coders’  dojo  
§ parallèle  arts  martiaux  /  conception-­‐programmation  OO    
▪ il  faut  s’entraîner  à  appliquer  des  «  routines  »  connues  avant  de  pouvoir  
commencer  à  les  utiliser  de  façon  créative,  voire  à  en  inventer  de  
nouvelles  
▪ les  débutant  doivent  apprendre  des  maîtres  
§ un  exemple  de  formation  
▪ http://www.xpday.net/Xpday2005/CodersDojo.html  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 42


¡ «  There  is  no  silver  bullet  »  :  le  retour  
§   Même  si  le  développement  incrémental  permet  de  
s’affranchir  de  beaucoup  de  problèmes,  il  y  aura  
quand  même  des  problèmes.  Mais  ceux-­‐ci  seront  
normalement  d’ampleur  plus  faible,  et  mieux  gérés.  
¡ Toute  méthode  est  adaptable  et  doit  être  
adaptée  
§ Mais,    lorsque  l’on  débute,  il  vaut  mieux  ne  pas  trop  
s’écarter  de  la  voie  décrite  pour  bien  comprendre  au  
départ  (cf.  musique)  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 43


¡ Gestion  par  aspects  du  code  «  transversal  »      

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 44


¡ J.L.  Sourrouille  (INSA  de  Lyon)  :  UP  
¡ Nicolas  Chan  Shin-­‐Yu  (ex.  étudiant  MIAGE)  :  XP  
¡ Sources  
§ http://www.swen.uwaterloo.ca/~kostas/ECE355-­‐05/
lectures/Lect3-­‐Ch15-­‐Unit2.ppt  
§ http://web.engr.oregonstate.edu/~cook/classes/
cs569.agile.ppt  

2011-2012 / Yannick Prié - Université Claude Bernard Lyon 1 45

Vous aimerez peut-être aussi