Vous êtes sur la page 1sur 20

IFT3912!

–&Développement&et&maintenance&de&logiciels& Modèles&de&développement&
!  Développement&en&cascade:&modèle&séquenEel&
!  Développement&itéraEf:&modèle&cyclique,&
incrémental&
!  Développement&par&réuElisaEon:&basé&sur&la&
Développement&agile& réuElisaEon&massive&de&composants&existants&
•  Peut&être&combiné&aux&autres&modèles&de&développement&
•  Ex:&Composants&COTS&(commercial)off+the+shelf),&J2EE,&
intergiciels,&services&web,&etc.&

Bruno&Dufour&
Université&de&Montréal&
dufour@iro.umontreal.ca&
2&

Processus&de&développement&tradiEonnel& Développement&en&cascade&
!  Modèle&de&développement&séquenEel&basé&sur&les&
Analyse& documents&(document+driven)&
•  Analyse:&clarifier&et&établir&un&ensemble&de&besoins&
ConcepEon& •  ConcepEon:&concevoir&un&système&basé&sur&ces&besoins&
•  ImplémentaEon:&programmer&conformément&à&la&
ImplémentaEon& spécificaEon&résultant&de&l’analyse&et&de&la&concepEon&
•  Tests:&évaluer&la&qualité&du&logiciel&produit&
Tests& •  InstallaEon:&livraison&/&déploiment&du&logiciel&chez&le&client&
&
InstallaEon&

Maintenance&

3& 4&
Problèmes&du&modèle&en&cascade& Problèmes&du&modèle&en&cascade&
!  Rigidité&du&processus& !  Difficulté&à&s’adapter&aux&changements&
•  Analyse:&le&processus&fait&l’hypothèse&que&les&besoins& •  Les&changements&imprévus&peuvent&invalider&beaucoup&de&
peuvent&être&complètement&précisés&et&capturés&au&début& travail&des&phases&antérieures&
du&projet& !  Le&client&ne&voit&que&le&système&final&
!  Les&changements&aux&besoins&sont&très&communs& •  La&quasibtotalité&du&développement&s’effectue&sans&
!  Le&client&peut&changer&d’avis&après&avoir&uElisé&le&logiciel& commentaires&du&client&
•  ConcepEon:&le&processus&fait&l’hypothèse&que&la& !  Le&développement&peut&facilement&dévier&des&besoins&réels&du&
client&
concepEon&peut&être&complétée&avant&de&débuter& !  Le&client&modifie&souvent&sa&percepEon&du&problème&et&par&
l’implémentaEon& conséquent&ses&besoins&après&avoir&uElisé&le&système&
!  Irréaliste&dans&les&cas&où&la&soluEon&n’est&pas&bien&comprise&
!  Les&problèmes&difficiles&ne&sont&pas&adaqués&en&
!  Un&changement&des&besoins&peu&invalider&la&concepEon&
premier&
•  Peut&mener&à&l’abandon&de&certains&projets&

5& 6&

UElisaEon&des&foncEonnalités&demandées& Le&changement&dans&le&développement&
40"

7%

Changements des besoins (%)"


35"

13% 30"

45% 25"

16% 20"

15"

19% 10"

5"

0"
Jamais Rarement Parfois 10" 100" 1000" 10000"
Souvent Toujours Taille du projet (en FP)"

7& Source:&Craig&Larman,&“Applying&UML&and&Paderns”,&PrenEce&Hall&2004.& 8&


Coût&des&changements& Faire&face&aux&changements&
!  Les&changements&sont&coûteux&puisque&qu’ils& !  Prototype:&une&version&du&système&parEel&ou&
nécessitent&de&refaire&une&parEe&du&travail& complet&développée&rapidement&
!  2&stratégies&principales&pour&réduire&ce&coût& •  Permet&d’obtenir&les&commentaires&du&client&très&
•  Éviter!les!changements:&on&inclut&des&acEvités&au&projet& rapidement,&et&de&réduire&le&risque&de&changements&des&
besoins&(évite&les&changements)&
qui&permedent&d’anEciper&les&changements&avant&que&
beaucoup&de&travail&ne&soit&à&refaire& •  Permet&d’explorer&des&soluEons&spécifiques&et&d’évaluer&
!  Ex:&uElisaEon&d’un&prototype& leur&faisabilité&
•  Tolérer!les!changements:&on&uElise&un&processus&de& •  Facilite&la&concepEon&des&interfaces&graphiques&
développement&qui&permet&de&s’adapter&facilement&aux& !  Le&prototype&est&généralement&composé&de&code&
changements&qui&surviennent& jetable&qui&ne&sera&pas&intégré&au&système&final&
!  Ex:&développement&itéraEf&

9& 10&

Faire&face&aux&changements&
!  Livraison&incrémentale:&des&versions&successives&et&
parEelles&du&système&sont&livrées&au&client&pour&
permedre&l’expérimentaEon&et&recueillir&ses&
commentaires&
•  Le&processus&facilite&l’apport&de&changements&au&système&
•  Les&foncEonnalités&du&noyau&sont&implémentées& Développement&itéraEf&&&méthodologies&agiles&
rapidement&et&donc&testées&de&manière&plus&approfondie&
•  Les&uElisateurs&peuvent&se&familiariser&avec&le&système&
plus&rapidement&(contrairement&au&prototype,&le&système&
parEel&sera&intégré&au&système&final)&
•  Le&client&peut&bénéficier&rapidement&d’un&système&parEel&

11& 12&
Développement&itéraEf& Développement&itéraEf&et&évoluEon&
!  Le&cycle&de&vie&du&logiciel&est&consEtué&de&minibprojets& !  Le&système&s’agrandit&progressivement,&itéraEon&par&
appelés&itéra3ons! itéraEon&
•  Chaque&itéraEon&inclut&des&acEvités&d’analyse,&de&concepEon,& •  Le&système&peut&ne&devenir&convenable&pour&un&environnement&
d’implémentaEon&et&de&test& de&producEon&qu’après&plusieurs&itéraEons&
•  Le&but&d’une&itéraEon&est&de&produire&une&version&stable,&testée& !  Le&cycle&de&vie&du&logiciel&est&basé&sur&le&raffinement&
et&par3elle&d’un&logiciel& successif&et&l’évoluEon&du&système&à&travers&une&série&
•  Le&résultat&d’une&itéraEon&n’est&pas&un&prototype,&mais&une& d’itéraEons&avec&rétroacEon&et&adaptaEon&
version&incomplète&du&système&final&
•  Les&besoins&doivent&être&stables&à&l’intérieur&d’une&itéraEon&
•  Le&résultat&de&la&dernière&itéraEon&est&le&logiciel&complété.& pour&éviter&le&chaos&
•  Les&versions&intermédiaires&peuvent&être&internes&ou&externes& •  Aucune&acEvité&ne&devrait&être&ajoutée&ou&modifiée&au&cours&
•  Chaque&itéraEon&ajoute&des&foncEonnalités&au&logiciel& d’une&itéraEon&
•  Occasionnellement,&une&itéraEon&peut&être&consacrée&à& •  Des&acEvités&peuvent&être&remises&à&d’autres&itéraEons&si&le&
l’amélioraEon&(ex:&performance),&sans&ajout&de&foncEonnalité& travail&ne&peut&être&complété&à&temps&

13& 14&

ÉvoluEon&et&convergence&& Durée&des&itéraEons&
!  Chaque&projet&doit&fixer&une&durée&pour&les&itéraEons&
Les&premières&itéraEons&s’éloignent&du&
Early iterations are farther from the "true
•  La&durée&typique&d’une&itéraEon&est&2b6&semaines&
«&vrai&système&».&À&travers&la&rétroacEon& Un&changement&majeur&est&rare&dans&les&
In late iterations, a significant change in
path" of the system. Via feedback and
et&l’adaptaEon,&le&système&converge&vers&
adaptation, the system converges towards itéraEons&finales,&mais&peut&tout&de&
requirements is rare, but can occur. Such •  Une&durée&de&2b3&semaine&est&très&répandue&
les&besoins&et&la&concepEon&la&plus&
the most appropriate requirements and même&se&produire&(peut&consEtuer&un&
late changes may give an organization a
appropriée.&&
design. avantage&d’affaires).& advantage.
competitive business
!  Des&itéraEons&courtes&permedent&la&rétroacEon&et&
l’adaptaEon&rapide&aux&changements&
•  Des&itéraEons&longues&augmentent&les&risques&
!  Les&itéraEons&ont&toutes&la&même&durée&(4meboxing)&
•  Si&certaines&tâches&ne&peuvent&être&effectuées&à&temps,&
one iteration of design,
Une&itéraEon&de&concepEon,& elle&sont&remises&à&une&itéraEon&ultérieure&
implement, integrate, and test
implémentaEon,&intégraEon&et&
test&
•  Une&itéraEon&ne&doit&jamais&se&terminer&en&retard&

Source:&Craig&Larman,&“Applying&UML&and&Paderns”,&PrenEce&Hall&2004.& 15& 16&


Avantages&du&développement&itéraEf&
!  Permet&les&changements&
•  Le&développement&peut&s’adapter&aux&changements&au&
cours&des&itéraEons&subséquentes.&
!  Permet&l’évoluEon&des&besoins&
•  Les&uElisateurs&peuvent&donner&leurs&commentaires&suite&
à&l’uElisaEon&du&système&opéraEonnel&
•  Les&nouveaux&besoins&peuvent&être&pris&en&compte&de&
Méthodologies&agiles&
façon&incrémentale&
!  RéducEon&des&risques&
•  Les&risques&sont&idenEfiés&rapidement&
!  Architecture&robuste&
•  L’architecture&peut&être&évaluée&et&améliorée&très&tôt&

17& 18&

CaractérisEques&des&méthodologies&agiles&
!  Agilité&:&réponse&rapide&et&flexible&aux&changements&
!  Plusieurs&méthodologies&existent,&mais&ont&des&
caractérisEques&communes&
•  ItéraEons&à&durée&fixe&
•  Développement&évoluEf&
!  Raffinement&progressif&des&besoins&et&de&la&concepEon&
•  PlanificaEon&adapEve&
•  Livraisons&incrémentales&

19& 20&
Analyse&et&concepEon&évoluEves& Le&manifeste&Agile&
20&itéraEons& 1 2 3 4 5 ... 20

«&Nous&découvrons&de&meilleurs&façons&de&développer&des&logiciels&en&faisant&
et&en&aidant&d’autres&à&le&faire.&Par&ce&travail,&nous&en&sommes&venus&à&
requirements workshops

Imagine this will


ultimately be a 20-
Les&besoins&
iteration project.
préférer:&»&

requirements

requirements
software

software
évoluent&au&cours&
In evolutionary iterative
development, the !  Les&individus&et&interacEons& aux&processus&et&ouEls&
des&premières&
requirements evolve

!  Les&logiciels&foncEonnels& à&la&documentaEon&complète&
over a set of the early
itéraEons.&Par&
iterations, through a
series of requirements
90% 90%
exemple,&après&4&
workshops (for
example). Perhaps !  La&collaboraEon&avec&le&client& à&la&négociaEon&de&contrat&
itéraEons,&90%&
after four iterations and
50%
!  Répondre&aux&changements& à&suivre&un&plan&
workshops, 90% of the
des&besoins&sont&
requirements are
defined and refined. 20%
30%
20%
10%
définis&ou&
Nevertheless, only
10% of the software is
Iteration 1
2%
Iteration 2
5% 8%
Iteration 3 Iteration 4 Iteration 5
redéfinis,&alors&
built.
a 3-week iteration
«&Bien&que&nous&reconnaissons&la&valeur&des&
que&seulement&
items&de&droite,&vous&valorisons&les&items&de&
10%&du&logiciel&a& week 1 week 2 week 3

été&implémenté.& M T W Th F M T W Th F M T W Th F gauche.&»&

kickoff meeting team agile start de-scope final check-in demo and next
clarifying iteration modeling & coding & iteration and code- 2-day iteration
goals with the team. design, testing goals if freeze for the requirements planning
1 hour UML too much iteration workshop meeting;
whiteboard work baseline 2 hours
sketching.
5 hours Most OOA/D and
Source:&Craig&Larman,&“Applying&UML& applying UML during
Use-case modeling
21& 22&
during the workshop
and&Paderns”,&PrenEce&Hall&2004.& this period

Les&principes&agiles& Les&principes&agiles&
1.  Notre&priorité&la&plus&importante&est&de&saEsfaire&le&client& 6.  La&méthode&la&plus&efficace&de&transmedre&des&informaEons&
grâce&à&la&livraison&rapide&et&conEnue&de&logiciels&uEles& vers&et&au&sein&d'une&équipe&de&développement&est&la&
2.  Accueillez&l’évoluEon&des&besoins,&même&tard&dans&le& conversaEon&facebàbface.&
développement.&Les&processus&agiles&exploitent&les& 7.  Un&logiciel&foncEonnel&est&la&principale&mesure&de&progrès.&
changements&pour&l'avantage&concurrenEel&du&client.& 8.  Les&processus&agiles&font&la&promoEon&du&développement&
3.  Livrez&des&logiciels&foncEonnels&fréquemment,&de&quelques& durable.&Les&promoteurs,&les&développeurs&et&les&uElisateurs&
semaines&à&quelques&mois,&avec&une&préférence&pour&les& devraient&être&en&mesure&de&maintenir&un&rythme&constant&
échelles&de&temps&courtes.& indéfiniment.&
4.  Les&gens&d’affaires&et&les&développeurs&doivent&travailler& 9.  Une&adenEon&conEnue&à&l'excellence&technique&et&à&la&
ensemble&à&chaque&jour&au&cours&du&projet.& bonne&concepEon&améliore&l'agilité.&
5.  Construisez&des&projets&autour&d'individus&moEvés.&Donnezb
leur&l'environnement&et&le&souEen&dont&ils&ont&besoin,&et&
faitesbleur&confiance&pour&effectuer&le&travail.&
23& 24&
Les&principes&agiles& Priorités&du&mouvement&agile&
10.  La&simplicité&—&l'art&de&maximiser&la&quanEté&de&travail&non& !  CommunicaEon&et&rétroacEon&
effectué&—,&est&essenEelle.& •  Dans&l’équipe&et&avec&le&client&
11.  Les&meilleures&architectures,&exigences,&et&concepEons&
émergent&des&équipes&qui&s’autoborganisent.&
!  Individus&et&équipe&
•  Le&développement&est&une&acEvité&humaine&
12.  À&intervalles&réguliers,&l'équipe&réfléchit&sur&la&façon&de&
devenir&plus&efficace,&puis&ajuste&son&comportement&en& •  Des&développeurs&heureux&sont&plus&producEfs&
conséquence.& !  Simplicité&
•  Processus&et&ouEls&
!  Processus&empirique&
•  Modifié&dynamiquement&en&se&basant&sur&des&mesures&
!  État&d’esprit&
•  Le&développement&agile&est&plus&qu’un&processus&
25& 26&

GesEon&de&projet&agile& Les&méthodes&agiles&en&praEque&
!  La&planificaEon&et&le&contrôle&sont&effectués&en& !  La&recherche&montre&que&les&projets&ayant&le&plus&de&
équipe,&et&non&par&un&chef&de&projet& succès&possèdent&certaines&caractérisEques&
•  Inclut&le&WBS,&échéancier,&esEmés,&etc.& favorisées&par&les&méthodes&agiles&:&
!  Le&chef&de&projet&ne&dit&(généralement)&pas&aux& •  &Cycle&de&vie&itéraEf&
autres&membres&de&l’équipe&quoi&faire& •  IntégraEon&quoEdienne&
!  Le&chef&de&projet&n’assigne&pas&les&rôles&et&les& •  Beaucoup&de&rétroacEon&et&de&parEcipaEon&des&
uElisateurs/clients&
responsabilités&
•  Courte&durée&/&taille&du&projet&
!  Le&rôle&du&chef&de&projet&inclut&l’entraîner&le& •  Livraisons&incrémentales&
personnel,&fournir&les&ressources&nécessaires,&
éliminer&les&obstacles,&maintenir&la&vision,&
promouvoir&la&méthodologie&agile,&etc.&
27& 28&
Méthodologies&agiles&
!  Processus&unifié&([R]UP)&agile&
!  Scrum&
!  Extreme&Programming&(XP)&
!  Et&bien&d’autres&
•  Crystal&
Processus&Unifié&
•  Evo&
•  etc.&

29& 30&

Processus&Unifié& Phases&du&processus&unifié&
!  Processus&de&développement&itéraEf&qui&vise&la& 1.  CréaEon&(Incep4on)&
producEon&d’un&système&de&haute&qualité&qui& •  Vision&approximaEve,&définiEon&de&l’étendue&du&projet,&
rencontre&les&besoins&du&client&selon&un&budget&et&un& esEmés&vagues&
échéancier&prévisibles& •  Le&projet&estbil&réalisable?&
•  Un&cadre&flexible&plutôt&qu’un&processus&rigide& 2.  ÉlaboraEon&
•  Peut&être&adapté&et&personnalisé&par&une&entreprise&ou& •  Vision&raffinée,&développement&itéraEf&de&l’architecture&de&
une&équipe&selon&leurs&besoins&spécifiques& base,&résoluEon&des&risques&les&plus&élevés,&idenEficaEon&
•  Presque&tous&les&artéfacts&(documents,&modèles,&etc.)&et& de&la&plupart&des&besoins,&esEmés&plus&réalistes&
acEvités&sont&opEonnels& 3.  ConstrucEon&
!  Pas&de&plan&détaillé& •  ImplémentaEon&itéraEve&des&éléments&plus&simples&/&à&
•  Un&plan&de&phase&(haut&niveau):&date&de&fin&de&projet,& plus&faible&risque,&préparaEon&pour&le&déploiement&
jalons& 4.  TransiEon&
•  Plan&d’itéraEon:&développé&pour&la&prochaine&itéraEon& •  Tests&«&béta&»,&déploiement&
31& 32&
Phases&et&itéraEons& Phase&de&créaEon&
development cycle !  La&créaEon&vise&à&répondre&à&plusieurs&quesEons&:&
iteration phase •  Quelle&est&la&vision&du&projet?&
•  Le&projet&estbil&réalisable?&
•  Que&doitbon&construire&et/ou&acheter?&
inc. elaboration construction transition •  Quel&est&le&coût&esEmé&du&projet?&
•  Devraitbon&aller&de&l’avant?&
!  Si&le&projet&a&suffisamment&de&valeur,&une&analyse&plus&
milestone release increment final production approfondie&sera&menée&durant&l’élaboraEon&
release
An iteration end- A stable executable The difference
(delta) between the At this point, the
!  Plusieurs&artéfacts&peuvent&être&produits:&exposé&général&
point when some subset of the final
significant decision product. The end of releases of 2 system is released du&projet,&cas&d’uElisaEon&,&analyse&de&risques,&
subsequent for production use.
or evaluation
occurs.
each iteration is a
minor release. iterations. prototypes,&etc.&
•  Les&artéfacts&seront&complétés&lors&des&phases&subséquentes&

Source:&Craig&Larman,&“Applying&UML&and&Paderns”,&PrenEce&Hall&2004.& 33& 34&

Phase&d’élaboraEon& Phases&de&construcEon&et&de&transiEon&
!  Au&cours&de&l’élaboraEon,&la&plupart&des&besoins& !  La&construcEon&vise&a&terminer&implémentaEon&du&
deviennent&bien&compris&et&définis& système&
!  L’implémentaEon&est&concentrée&sur&deux&principaux& •  Peut&inclure&l’analyse&des&besoins&restants&à&définir&
aspects&:& •  Inclut&souvent&des&tests&de&système&(alpha+tes4ng)&
•  Les&parEes&du&systèmes&qui&présentent&plus&de&risques& !  La&construcEon&se&termine&lorsque&
•  Les&parEes&centrales&de&l’architecture&du&système&(noyau)& •  le&système&est&prêt&pour&le&déploiement&
•  tout&le&matériel&de&support&est&prêt&(manuel&d’uElisaEon,&
matériel&d’entraînement,&etc.)&
!  La&transiEon&vise&à&implanter&le&système&dans&un&
environnement&de&producEon&
•  Peut&inclure&des&tests&addiEonnels&(beta+tes4ng)&

35& 36&
Disciplines&du&PU& Disciplines&du&PU&
!  Disciplines&d’ingénierie& Une&itéraEon&inclut&du&travail&
A four-week iteration (for example).
A mini-project that includes work in most
dans&plusieurs&disciplines.& Note that
•  ModélisaEon&du&processus&d’affaires:&permet&de&visualiser&et& disciplines, ending in a stable executable. although an
iteration includes
définir&les&concepts&importants&du&domaine&de&l’applicaEon& Sample
work in most
disciplines, the
•  Analyse&des&besoins& UP Disciplines relative effort and
emphasis change
Business Modeling
•  ConcepEon& Focus
over time.

of this Requirements
•  ImplémentaEon&(inclut&les&tests&unitaires)& book
This example is
suggestive, not
Design literal.
•  Test& Implementation
•  Déploiement& Test

!  Disciplines&de&support& Deployment

•  GesEon&des&configuraEons&et&des&changements& Configuration & Change


Management
•  GesEon&de&projet& Project Management
•  Environnement:&mise&en&place&des&ouEls&nécessaires&et& Environment
personnalisaEon&du&processus&(souvent&en&conEnu)&
Iterations

37& Source:&Craig&Larman,&“Applying&UML&and&Paderns”,&PrenEce&Hall&2004.& 38&

Disciplines&et&phases& Autres&praEques&du&PU&
!  BâEr&un&noyau&uni&durant&les&premières&itéraEons&
!  ConEnuellement&vérifier&la&qualité&
Sample incep-
elaboration construction
transi- •  Tester&tôt,&souvent&et&de&façon&réaliste&
UP Disciplines tion tion

Business
The relative effort in
disciplines shifts
!  Appliquer&les&cas&d’uElisaEon&lorsqu’ils&sont&
Modeling across the phases.
appropriés&
Requirements This example is

Design
suggestive, not literal. !  UEliser&la&modélisaEon&visuelle&(UML)&
Implementation &
...
...

L’effort&associé&à&chaque&discipline&varie&
selon&la&phase&du&développement.&

Source:&Craig&Larman,&“Applying&UML&and&Paderns”,&PrenEce&Hall&2004.& 39& 40&


PU&vs&modèle&tradiEonnel&
!  Le&modèle&en&cascade&ne&doit&pas&être&superposé&au&
PU&:&
•  CréaEon&≠&analyse,&élaboraEon&≠&concepEon,&etc.&
!  La&majorité&de&l’analyse&est&effectuée&durant&l’élaboraEon&
•  L’analyse,&la&concepEon&et&l’implémentaEon&font&parEe&de&
chaque&phase,&à&différents&degrés& ProgrammaEon&extrême&
!  Les&itéraEons&sont&nedement&plus&courtes&(mois&vs&
semaines)&
!  Le&PU&n’impose&pas&d’acEvités&ou&d’artéfacts&

41& 42&

IntroducEon& PraEques&
!  La&programmaEon&extrême&(Extreme&Programming,& !  Client&membre&de&l’équipe&
XP)&est&une&méthodologie&agile&très&répandue& !  Jeu&de&la&planificaEon&/&histoires&d’uElisateurs&
•  Idée&principale:&pousser&à&l’extrême&les&bonne&praEques&et& !  ProgrammaEon&en&paires&
valeurs&de&développement&
•  Par&exemple:&les&tests&sont&uEles&donc& !  Développement&piloté&par&les&tests&
!  les&tests&seront&effectués&chaque&jour& !  Réusinage&fréquent&
!  les&tests&seront&développés&avant&de&coder& !  Propriété&collecEve&du&code&
!  XP&uElise&un&modèle&de&développement& !  IntégraEon&conEnue&
itéraEf&avec&itéraEons&très&courtes&(1b3& !  (et&quelques&autres&praEques&qui&ne&seront&pas&
semaines).& abordées&dans&le&cours)&

43& 44&
Client&membre&de&l’équipe& Histoires&d’uElisateurs&
!  Le&client&est&considéré&comme&un&membre&de& !  XP&exprime&les&besoins&sous&forme&d’histoires!
l’équipe&à&part&enEère& d’u3lisateurs!
•  Le&client&est&ulEmement&la&personne&qui&devra&uEliser&le& •  Les&histoires&ne&conEennent&que&suffisamment&
système.& d’informaEon&pour&pouvoir&esEmer&l’effort&requis&pour&
•  Un&représentant&du&client&devrait&être&disponible&en&tout& développer&une&foncEonnalité&
temps&pour&répondre&aux&quesEons.& •  L’esEmé&est&produit&rapidement&pour&permedre&à&l’équipe&
!  Rôles&du&client& de&prendre&des&décisions&
•  Écrire&les&histoires&d’uElisateurs& !  Les&histoires&sont&généralement&inscrites&sur&des&
•  Écrire&les&tests&d’acceptaEon& cartes&qui&peuvent&être&manipulées&et&placées&sur&un&
•  Choisir&les&histoires&lors&du&jeu&de&la&planificaEon& mur&ou&tableau&

45& 46&

Exemple&–&Carte&d’histoire&d’uElisateur& Exemple&–&DisposiEon&des&cartes&

Enregistrement avec compression 8 hrs

Présentement, les options de compressions


se trouvent dans une boîte de dialogue
subséquente à celle de la sauvegarde. Il faut les
déplacer vers le dialogue d'enregistrement lui-
même.

47& Source:&Kent&Beck,&“Extreme&Programming&Explained:&Embrace&Change”,&AddisonbWesley&2004.& 48&


Jeu&de&la&planificaEon&
!  Pour&une&itéraEon&:&
•  But&:&choisir&les&histoires&à&implémenter,&planifier&et&allouer&les&
tâches&à&effectuer&
•  Le&client&choisit&les&cartes&pour&la&prochaine&itéraEon,&les&
développeurs&créent&les&tâches.&
•  Une&tâche&qui&est&esEmée&à&>&2&jours&est&divisée&à&nouveau.&
!  Pour&la&livraison&d’une&version&du&logiciel&
•  But&:&définir&la&portée&de&la&prochaine&version&opéraEonnelle&
•  Typiquement,&le&client&écrit&les&histoires&et&les&développeurs&en&
font&l’esEmaEon&au&cours&d’un&atelier&d’une&demibjournée&
•  Les&cartes&peuvent&être&choisies&en&foncEon&d’une&date&fixe,&ou&
la&date&peut&être&déterminée&en&foncEon&des&cartes&
sélecEonnées.&

49& 50&

ProgrammaEon&en&paires&
!  Tout&le&code&est&écrit&par&une&paire&de&
programmeurs&travaillant&ensemble&sur&une&même&
machine&
•  Un&programmeur&écrit&le&code&et&les&tests&pendant&que&
l’autre&observe&dans&le&but&d’idenEfier&les&erreurs&et&les&
amélioraEons&potenEelles&
•  Les&rôles&sont&inversés&fréquemment&
!  Les&paires&sont&redistribuées&fréquemment&(ex:&une&
fois&par&jour)&
•  Cede&praEque&permet&de&distribuer&les&connaissances&du&
code&rapidement&à&travers&l’équipe&
!  En&praEque,&le&code&produit&conEent&moins&d’erreur&
sans&affecter&la&producEvité&de&façon&mesurable&
51& 52&
Développement&piloté&par&les&tests& Réusinage&fréquent&
!  Le&code&de&producEon&est&écrit&de&façon&à&faire&réussir& !  But&:&améliorer&le&code&sans&changer&sa&
des&tests&unitaires& foncEonnalité&
•  Avant&d’implémenter&une&foncEonnalité,&un&test&est&ajouté.&Ce& •  Idéalement&effectué&à&l’aide&d’ouEls&automaEsés.&
test&échoue&lorsque&la&foncEonnalité&n’est&pas&présente.&
•  Les&tests&existants&permedent&de&vérifier&que&le&
•  Le&code&qui&fait&réussir&le&test&est&écrit.&
comportement&observable&demeure&inchangé.&
•  Le&code&est&développé&en&itéraEons&successives&d’écriture&de&
tests&et&de&code.& •  Exemples&de&réusinages&:&restructurer&la&hiérarchie&des&
classes,&éliminer&la&duplicaEon&
•  L’uElisaEon&d’ouEls&de&test&automaEsés&est&essenEelle&à&la&
réussite&de&cede&approche.& •  MoEvaEon&:&la&concepEon&est&plus&efficace&lorsque&
effectuée&près&de&son&uElisaEon&
!  Résultat&:&&
•  un&jeu&de&tests&unitaires&très&complet&est&développé&pour&le&
•  Résultat&:&le&système&demeure&plus&simple&et&plus&facile&à&
système&enEer& développer&pour&une&plus&longue&période&
•  très&peu&de&code&inuEle&est&développé& !  (plus&de&détails&à&venir&dans&la&2e&parEe&du&cours)&
53& 54&

IntégraEon&conEnue&
!  «&Diviser,&régner&et&intégrer&»&:&tous&les&changements&
doivent&être&testés&et&intégrés&fréquemment&
•  Fréquemment&=&plusieurs&fois&par&jour&
•  Peut&nécessiter&la&résoluEon&de&conflits&si&plusieurs&
programmeurs&ont&modifié&le&même&code&
!  2&stratégies&:&
•  IntégraEon&asynchrone&:&les&tests&sont&exécutés&après&un&
changement&ou&à&intervalles&réguliers,&les&programmeurs&
sont&avisés&si&leurs&changements&causent&des&régressions.&
•  IntégraEon&synchrone&:&les&programmeurs&exécutent&euxb
mêmes&les&tests&et&adendent&les&résultats&avant&de&passer&
à&la&prochaine&étape&(permet&de&conserver&le&contexte,&
favorise&la&communicaEon).&
Source:&xkcd.com&

55& 56&
Propriété&collecEve&du&code& XP&–&Phases&de&développement&
!  Une&paire&de&programmeurs&peut&travailler&sur& 1.  ExploraEon&
n’importe&quelle&parEe&du&code&et&l’améliorer& •  But&:&produire&suffisamment&de&cartes&d’histoires&pour&une&
première&version,&déterminer&si&le&projet&est&réalisable.&
•  Les&développeurs&ne&sont&pas&responsables&d’un&ou&
plusieurs&modules&en&parEculier& •  AcEvités&:&prototypes,&programmaEon&exploratoire&(preuve&de&
technologie),&écriture&de&cartes&et&esEmaEon&
•  MoEvaEon&:&si&une&parEe&du&code&est&défectueuse,&elle&
devrait&être&corrigée&le&plus&tôt&possible.& 2.  PlanificaEon&:&&
•  But&:&déterminer&la&date&et&les&cartes&de&la&première&livraison&
!  AdenEon&aux&risques&par&contre!&&
•  AcEvités&:&jeu&de&planificaEon&(version),&écriture&de&cartes&et&
•  Cede&praEque&est&à&éviter&si&l’équipe&n’a&pas&encore& esEmaEon&
développé&une&responsabilité&collecEve&
3.  ItéraEons&et&première&livraison&:&
•  Un&membre&de&l’équipe&ne&doit&pas&modifier&du&code&sans& •  But&:&Implémenter&un&système&complet&prêt&à&être&livré.&
se&soucier&de&celui&qui&aura&à&le&modifier&et&le&maintenir.&
•  AcEvités&:&programmaEon,&tests,&jeu&de&planificaEon&(itéraEons)&
élaboraEon&des&tâches&et&esEmaEon&
57& 58&

XP&–&Phases&de&développement& XP&b&Valeurs&&
4.  «&ProducEsaEon&»& !  CommunicaEon&
•  But&:&déploiement& •  Des&problèmes&de&communicaEon&sont&à&la&base&de&la&
•  AcEvités&:&documentaEon,&formaEon,&commercialisaEon,& majorité&des&difficultés&de&projet&
etc.& •  XP&fait&la&promoEon&de&la&communicaEon&:&
5.  Maintenance& !  entre&programmeurs&:&programmaEon&en&paires,&
•  But&:&correcEons,&amélioraEons,&nouvelles&versions& réunion&quoEdienne,&jeu&de&la&planificaEon&
!  avec&le&client&:&tests&d’accepEon,&jeu&de&la&planificaEon&
•  AcEvités&:&répéEEon&des&phases&précédentes&
!  Simplicité&
•  &«&faire&la&chose&la&plus&simple&qui&puisse&foncEonner&»&
•  S’applique&aux&besoins,&à&la&concepEon,&artéfacts&de&
projet,&etc.&

59& 60&
XP&b&Valeurs&&
!  RétroacEon&
•  Court&terme:&développement&piloté&par&les&tests&unitaires,&
intégraEon&conEnue,&cartes&d’histoires&
•  Long&terme:&tests&d’acceptaEon,&itéraEons&courtes&
(permedent&au&client&de&clarifier&les&besoins)&
!  Courage&
•  Le&courage&de&développer&rapidement&et&d’effectuer&des&
Scrum&
changements&rapides&découle&des&autres&valeurs&et&
praEques&de&la&programmaEon&extrême&et&des&ouEls&
modernes&
•  Par&exemple,&effectuer&des&changements&architecturaux&
sans&un&ensemble&de&tests&et&des&ouEls&automaEsés&est&
difficile&et&risqué.&

61& 62&

IntroducEon& CaractérisEques&
!  Scrum&est&une&méthodologie&agile&axée&sur&la&gesEon& !  Processus&itéraEf&
de&projet& •  ItéraEons&plus&longues&que&d’autres&méthodologies&(30&
•  Complémentaire&à&d’autres&praEques&agiles& jours)&
•  &L’origine&du&nom&est&un&terme&de&Rugby&:&mêlée& !  Équipe&autobgérée&
•  Analogie:&les&membres&de&l’équipe&doivent&adeindre& •  Pas&de&processus&rigide&
l’objecEf&en&équipe,&comme&les&joueurs&qui&se&passent&le& •  Le&développement&est&adapté&empiriquement&
ballon.&
!  Réunion&debout&quoEdienne&(mêlée,&ou&scrum)&
!  DémonstraEons&du&système&après&chaque&itéraEon&
!  PlanificaEon&impliquant&le&client&après&chaque&
itéraEon&

Source:&Wikipedia& 63& 64&


Phases& Rôles&
1.  PlanificaEon& !  «&Scrum&Master&»&
•  Établir&la&vision&du&projet,&les&adentes&et&assurer&le&financement& •  Élimine&les&obstacles&
•  AcEvités&:&définiEon&du&carnet&de&produit&iniEal,&esEmés,&concepEon&
exploratoire,&prototypes& !  Idéalement&en&<&1&jour&(avant&la&prochaine&mêlée)&
Avantb
2.  Mise&en&scène&(staging)& match&
•  Prend&des&décisions&lorsque&nécessaire&&
•  IdenEficaEon&de&plus&de&besoins,&priorisaEon&suffisante&pour&une& !  Idéalement&en&<&1&heure:&une&mauvaise&décision&est&préférable&à&
première&itéraEon& aucune&décision&
•  AcEvités&:&planificaEon,&concepEon&exploratoire,&prototypes& •  Agit&comme&écran&(firewall)&pour&s’assurer&que&l’équipe&n’est&pas&
3.  Développement& interrompue&par&des&requêtes&venant&de&l’extérieur&
•  ImplémentaEon&d’un&système&par&une&série&d’itéraEons&de&30&jours& •  Renforce&la&vision&du&projet&
(sprints)& •  Un&Scrum&Master&inefficace&doit&être&remplacé&
•  AcEvités&:&planificaEon&de&sprint,&définiEon&du&carnet&de&sprint,&mêlée&
quoEdienne,&revue&de&sprint& !  Équipe&
4.  Livraison&d’une&version&du&système&(release)& •  Scrum&recommande&que&les&équipes&soient&limitées&à&7b10&personnes&
•  Déploiement& •  Les&grands&projets&conEennent&plusieurs&équipes&
•  AcEvités&:&formaEon,&documentaEon,&commercialisaEon,&etc.&

65& 66&

Rôles& Carnets&(Backlogs)&
!  Propriétaire&du&produit&(Product)Owner)) !  Carnet&de&produit&
•  Un&représentant&du&client& •  ApparEent&au&propriétaire&du&produit&
•  Assigne&les&priorités&dans&le&carnet&du&produit&
•  ConEent&les&besoins&de&haut&niveau,&leur&priorité,&leur&
•  Choisit&les&besoins&à&inclure&dans&une&itéraEon&
value&d’affaire&et&un&esEmé&de&l’effort&requis&
!  «&Chickens&»&
•  Durant&la&planificaEon&d’avantbmatch,&tous&les&
•  Personnes&qui&ne&parEcipent&pas&directement&au&projet&mais&dont&les&
intérêts&doivent&être&pris&en&compte& intervenants&(stakeholders)&peuvent&ajouter&des&
!  Ex:&uElisateurs,&clients&(autre&que&le&propriétaire&du&produit),& foncEonnalités,&des&cas&d'uElisaEon,&des&amélioraEons&et&
gesEonnaires,&etc.& des&défauts&au&carnet&de&produit&
•  En&référence&à&une&blague&:&& !  Carnet&de&sprint&
A&pig&and&chicken&discussed&the&name&of&their&new&restaurant.&The&
chicken&suggested&Ham)n')Eggs.&«&No&thanks,&»&said&the&pig,&«&I'd&be&
•  ApparEent&à&l’équipe&
commided,&but&you'd&only&be&involved!&»& •  ConEent&des&tâches&et&un&esEmé&de&l’effort&requis&/&
restant&

67& 68&
Exemple&–&Carnet&du&produit& Exemple&–&Carnet&de&sprint&

Heures!de!travail!restantes!
Besoin! Num.! Cat.! État! Pri.! Est.! Sprint!
Besoin! Resp.! État! 6! 7! 8! 9! 10!
Enregistrement&des& 17& FoncEonnalité& En&cours& 5& 2& 1& 362! 322! 317! 317! 306!
paiements&dans&le&
Rencontre&pour& JM/SR& Terminé& 20& 10& 0& 0& 0&
registre& discuter&des&objecEfs&
Plan&de&financement&à& 232& AmélioraEon& Terminé& 4& 38& 1& Déplacer&les&calculs& AW& Pas& 8& 8& 8& 8& 8&
long&terme& hors&du&module&…& débuté&
Calcul&de&la&commission& 12& Défaut& Pas& 2& 14& 2& Obtenir&les&données& TN& Terminé& 12& 0& 0& 0& 0&
de&vente& débuté& …&
ApprobaEon&de&crédit& 321& Problème& En&cours& 5& 2& 1& Créer&et&iniEaliser&la& GP& En&cours& 24& 20& 30& 25& 20&
lente& base&de&données&
…&

69& 70&

Sprints& Mêlée&quoEdienne&(scrum)&
!  Deux&réunions&sont&tenues&avant&le&début&d’une& !  Tenue&à&chaque&jour,&à&la&même&heure&et&au&même&endroit&
itéraEon&(sprint)& •  Doit&débuter&à&l’heure,&il&est&fréquent&d’imposer&des&amendes&aux&
retardataires&qui&sont&ensuite&uElisées&comme&dons&de&charité&
•  1ère&&réunion&:&les&intervenants&priorisent&le&carnet&de&
!  Doit&répondre&à&5&quesEons&:&
produit,&habituellement&en&foncEon&de&la&valeur&d’affaires&
•  Qu’avezbvous&fait&depuis&le&scrum&précédant?&
et&des&risques.&
•  Qu’allezbvous&faire&entre&maintenant&et&le&scrum&suivant?&
•  2ème&réunion&:&le&propriétaire&du&produit&et&l’équipe& •  Qu’estbce&qui&entrave&l’adeinte&des&buts&de&l’itéraEon&en&cours?&
déterminent&comment&adeindre&les&objecEfs&demandés,& •  Y&a&t’il&&des&tâches&à&ajouter&au&backlog?&
et&produisent&le&carnet&de&sprint& !  Tâche&manquantes,&pas&de&nouveaux&besoins&
!  Le&carnet&de&sprint&est&mis&à&jour&à&mesure&que& •  Avezbvous&appris&ou&décidé&quelque&chose&de&nouveau&qui&serait&uEle&
l’itéraEon&progresse.& aux&autres&membres&de&l’équipe?&
!  Aucune&autre&discussion&n’est&permise&
•  Le&Scrum&Master&peut&recentrer&la&discussion&au&besoin&

71& 72&
Mêlée&quoEdienne&(scrum)& Revue&de&sprint&
!  Idéalement&tenue&debout&en&cercle&pour&encourager&la& !  À&la&fin&de&chaque&itéraEon,&le&Scrum&Master&
brièveté.& organise&la&revue&de&sprint&
!  Doit&se&tenir&près&d’un&tableau&où&les&tâches&sont&inscrites& •  Maximum&4&heures&
!  Dure&en&moyenne&15b20&minutes&pour&une&équipe&de&7b10& •  Tous&les&intervenants&parEcipent&à&la&revue&
personnes&
•  Des&réunions&plus&longues&sont&communes&au&début&d’une&itéraEon& !  L’équipe&fait&la&démonstraEon&du&système&au&client&
!  Les&membres&qui&sont&absents&doivent&parEciper&par&hautb •  Le&client&est&informé&des&foncEons&du&système,&de&la&
parleur& concepEon,&des&forces&et&faiblesses&du&système,&de&l'effort&
de&l'équipe&et&des&problèmes&potenEels&à&venir&
!  Les&nonbmembres&de&l’équipe&(chickens)&sont&à&l’extérieur&du&
cercle& •  Le&client&peut&donner&ses&commentaires&
•  Ils&ne&parlent&pas&et&ne&posent&pas&de&quesEons& •  Pas&de&transparents,&le&produit&doit&être&montré&
•  ExcepEon:&commentaires&des&gesEonnaires&(ex:&explicaEon&de&la& •  Les&engagements&sont&pris&lors&de&la&planificaEon&du&
perEnence&du&travail&de&l'équipe)& prochain&sprint,&et&non&pas&lors&de&la&revue.&
73& 74&

PU&+&XP&
!  La&majorité&des&praEques&de&XP&sont&compaEbles&avec&celles&
du&PU&:&
•  Ex:&documentaEon&minimale,&TDD&/&vérificaEon&conEnue&de&la&qualité&
•  Plusieurs&praEques&de&XP&sont&une&spécialisaEon&des&praEques&du&PU,&
et&peuvent&donc&être&uElisées&dans&un&projet&basé&sur&le&PU&
!  Différences&:&
•  ModélisaEon&:&Le&PU&considère&une&demibjournée&de&modélisaEon&
Combinaisons&de&méthodes& acceptable&pour&une&itéraEon&de&2&semaines,&alors&que&XP&suggère&une&
limite&de&10b20&minutes.&
•  Risques:&Le&PU&met&l’emphase&sur&les&risques&élevés&dans&les&
premières&itéraEons,&alors&qu’il&n’y&a&pas&d’effort&similaire&en&XP.&
•  Besoins&:&Le&PU&permet&et&encourage&la&créaEon&de&documents&
d’analyse&détaillés&(de&façon&incrémentale),&pour&les&cas&où&le&client&
n’est&pas&disponible&sur&le&site.&En&XP,&le&client&fait&parEe&de&l’équipe&et&
de&tels&documents&ne&sont&pas&uElisés.&

75& 76&
PU&+&Scrum& XP&+&Scrum&
!  Les&praEques&de&Scrum&sont&compaEbles&avec&celles&du&PU& !  La&plupart&des&praEques&sont&compaEbles&
•  Carnet&du&produit&(Scrum)&≈&plan&de&projet&(PU)& •  Ex:&mêlée&(Scrum)&est&un&raffinement&de&la&réunion&de&XP&
•  Carnet&de&sprint&(Scrum)&≈&plan&d’itéraEon&
•  La&démo&à&la&fin&d’une&itéraEon&(Scrum)&s’inscrit&dans&le&
•  Plusieurs&praEques&de&Scrum&sont&une&spécialisaEon&des&praEques&du&
PU,&et&peuvent&donc&être&uElisées&dans&un&projet&basé&sur&le&PU& cadre&des&efforts&de&communicaEon&et&rétroacEon&de&XP&
•  Lorsque&des&artéfacts&sont&requis&en&Scrum,&les&versions&du&PU&sont& •  Les&histoires&d’uElisateurs&de&XP&sont&souvent&uElisées&
acceptables& dans&les&carnets&de&Scrum&
!  Conflit&potenEel& !  Conflits:&
•  Le&PU&indique&certaines&dépendances&entre&acEvités&opEonnelles&(ex:&
la&vision&d’un&projet&est&définie&avant&l’analyse,&etc.).&Scrum&rejede&le&
•  Les&itéraEons&de&30&jours&sont&trop&longues&pour&XP&
concept&d’ordre&prévisible&des&étapes.& •  Scrum&impose&un&seul&représentant&du&client,&alors&que&XP&
en&supporte&plusieurs&

77& 78&

Vous aimerez peut-être aussi