RICHARD TREMBLAY IMPLANTATION D’UNE MÉTHODE AGILE DE DÉVELOPPEMENT LOGICIEL EN
RICHARD TREMBLAY IMPLANTATION D’UNE MÉTHODE AGILE DE DÉVELOPPEMENT LOGICIEL EN ENTREPRISE Une culture accueillant le changement Mémoire présenté à la Faculté des études supérieures de l’Université Laval dans le cadre du programme de maîtrise en informatique pour l’obtention du grade de maître (M. Sc.) DÉPARTEMENT D’INFORMATIQUE ET DE GÉNIE LOGICIEL FACULTÉ DES SCIENCES ET GÉNIE UNIVERSITÉ LAVAL QUÉBEC 2007 © Richard Tremblay, 2007 ii Résumé Depuis quelques années, les méthodes agiles ont émergées et semblent prometteuses. Ce mémoire relate les travaux réalisés dans le but de procéder à l’implantation d’une méthode agile de développement en entreprise. Afin de distinguer les approches agiles, nous débutons par un rappel des approches traditionnelles. Nous établissons quelles sont les caractéristiques de ces approches, les différents modèles et leurs limitations. Nous analysons ensuite l’offre des approches agiles. Nous définissons en quoi consiste l’agilité et quelles sont les caractéristiques communes de ces approches. Nous présentons quelques méthodes, plus particulièrement : Extreme Programming, Scrum et Crystal Clear. Finalement, nous relatons l’expérience d’une implantation en entreprise afin de vérifier sa facilité d’application. Nous concluons que ces approches adaptatives sont plus efficaces que les approches prédictives lorsqu’elles sont utilisées dans un contexte propice. iii Abstract In recent years, agile methods have emerged and appear promising. This memoirs describes the work carried out in order to proceed with the implementation of an agile method development in business. To distinguish the agile approaches, we begin with a recap of traditional approaches. We establish what are the characteristics of these approaches, the various models and their limitations. We then analyze the proposal of agile approaches. We define what constitutes agility and what are the common characteristics of these approaches. We present some methods, in particular: Extreme Programming, Scrum and Crystal Clear. Finally, we talk about the experience of an establishment of the agile method into a business in order to verify its ease of implementation. We conclude that these adaptive approaches are more effective then predictive approaches when used in the right context. iv Avant-propos Je remercie mon directeur, Nadir Belkhiter, qui a cru en moi et à ma persévérance. Ce projet a duré plusieurs années, auxquelles il m’était difficile d’investir tout le temps requis pour faire avancer rapidement ce projet. Je remercie également mon équipe de travail et mon employeur. Ils ont été au centre de mes expérimentations. Leur ouverture d’esprit et l’autonomie dont je disposais m’ont permis de réaliser ce projet. Un merci particulier à Louis Bastarache qui m’orienta et me rassura sur mes points de vue. Professionnellement, je n’ai jamais eu la chance de travailler avec un senior qui m’aurait montré la voie et fait bénéficier de son expérience. Ce projet m’a permis de bénéficier d’un tel appui. Finalement, la famille reste au cœur des gens qu’il faut remercier, en débutant par mon père. Étant l’aîné d’une famille de six enfants, il n’a pas eu la chance de poursuivre ses études, mais il m’a fait rapidement comprendre que l’éducation est capitale et que nous devons persévérer pour atteindre nos objectifs dans la vie. Je remercie également ma conjointe et nos deux enfants avec qui j’ai partagé mon temps entre la vie de famille et le temps investi pour la recherche et la rédaction de ce mémoire. Je vous dis merci à tous. v À mon père Table des matières Chapitre 1: Les approches traditionnelles..........................................................................5 1.1 Origine des approches traditionnelles et du génie logiciel ...........................................5 1.1.1 Le domaine du génie logiciel.................................................................................6 1.2 Les processus de production dans une approche traditionnelle....................................7 1.2.1 La gestion de projets..............................................................................................7 1.2.2 Organisation du travail...........................................................................................8 1.2.3 Les modèles reconnus..........................................................................................11 1.2.4 Adaptations des modèles .....................................................................................13 1.2.5 Méthodes populaires............................................................................................13 1.2.6 Validation du processus.......................................................................................14 1.3 Le produit dans une approche traditionnelle...............................................................14 1.3.1 Spécifications du produit .....................................................................................15 1.3.2 La qualité du produit............................................................................................15 1.3.3 La standardisation................................................................................................16 1.4 Les développeurs dans une approche traditionnelle ...................................................16 1.4.1 Les rôles et responsabilités ..................................................................................16 1.4.2 Les outils logiciels ...............................................................................................17 1.5 Le client dans une approche traditionnelle .................................................................19 1.6 Analyse des approches traditionnelles........................................................................20 1.6.1 Application favorable des approches traditionnelles...........................................20 1.6.2 Limitation des approches traditionnelles .............................................................20 1.7 Conclusion ..................................................................................................................21 Chapitre 2: Caractéristiques des méthodes agiles............................................................23 2.1 Les bases de l’agilité...................................................................................................23 2.1.1 Définition du terme « Agile »..............................................................................23 2.1.2 Origines des approches agiles..............................................................................24 2.1.3 Le manifeste agile................................................................................................25 2.1.4 Les principes agiles..............................................................................................27 2.2 L’offre agile................................................................................................................29 2.2.1 Perceptions initiales .............................................................................................29 2.2.2 L’apport des approches agiles..............................................................................30 2.2.2.1 L’apport agile pour les développeurs............................................................31 2.2.2.2 L’apport agile pour le produit.......................................................................32 2.2.2.3 L’apport agile pour le client..........................................................................33 2.2.2.4 L’apport agile pour la gestion de projet........................................................34 2.3 Position de l’agilité.....................................................................................................35 2.3.1 Conformité aux modèles certifiés........................................................................35 2.4 Conformité au modèle agile........................................................................................37 2.4.1 Conformité agile du RAD....................................................................................37 2.4.2 Analyse de RUP...................................................................................................38 2.4.3 Analyse des développements libres.....................................................................38 2.4.4 Limitations des approches agiles .........................................................................39 2.4.4.1 Limitations liées au type de projet................................................................39 2.4.4.2 Limitations liées à la culture organisationnelle ............................................40 7 2.4.5 Les supports agiles...............................................................................................41 2.4.5.1 La communauté.............................................................................................41 2.4.5.2 Les outils.......................................................................................................41 2.4.5.3 Adoption par l’industrie................................................................................42 2.5 Distinction entre les approches traditionnelles et agiles.............................................43 2.5.1 Propriétés communes et spécifiques....................................................................43 2.6 Conclusion ..................................................................................................................47 Chapitre 3: Description de méthodes agiles ....................................................................49 3.1 Extreme Programming................................................................................................49 3.1.1 Origines de XP.....................................................................................................49 3.1.1.1 Son inventeur................................................................................................49 3.1.1.2 Les racines de XP .........................................................................................50 3.1.2 Description de la méthode ...................................................................................50 3.1.2.1 Les valeurs de XP .........................................................................................50 3.1.2.2 Les pratiques.................................................................................................51 3.1.2.3 Processus d’extreme Programming ..............................................................52 3.1.3 Conclusion sur XP ...............................................................................................60 3.2 SCRUM ......................................................................................................................60 3.2.1 Origines de SCRUM............................................................................................60 3.2.1.1 Son inventeur................................................................................................60 3.2.1.2 Évolution de ADM vers SCRUM.................................................................61 3.2.1.3 Une nouvelle joute de développement..........................................................61 3.2.1.4 Les types de processus..................................................................................62 3.2.1.5 L’amalgame de SCRUM ..............................................................................63 3.2.2 Description de la méthode ...................................................................................64 3.2.2.1 Vocabulaire de SCRUM ...............................................................................64 3.2.2.2 Les trois phases de SCRUM:........................................................................65 3.2.2.3 Les contrôles.................................................................................................68 3.3 Famille Crystal............................................................................................................69 3.3.1 Origine de Crystal................................................................................................69 3.3.1.1 Son inventeur................................................................................................69 3.3.1.2 La famille de méthode Crystal......................................................................70 3.3.2 Description de la méthode ...................................................................................71 3.3.2.1 Les sept propriétés de Crystal Clear .............................................................71 3.3.2.2 Les stratégies et les techniques .....................................................................74 3.3.2.3 Cycle de développement...............................................................................78 3.3.3 Conclusion sur Crystal Clear...............................................................................81 3.4 Autres méthodes agiles...............................................................................................82 3.4.1 Lean Software Development ...............................................................................82 3.4.2 Dynamic System Development Method..............................................................84 3.4.2.1 Cycle de développement de DSDM..............................................................85 3.4.3 Feature Driven Development...............................................................................87 3.4.3.1 Cycle de développement de FDD.................................................................88 3.4.4 Adaptive System Development ...........................................................................90 3.4.4.1 Cycle de développement de ASD.................................................................92 8 Chapitre 4: Implantation d’une approche agile ...............................................................95 4.1 Contexte d’origine ......................................................................................................95 4.1.1 Description de l’équipe à l’origine ......................................................................95 4.1.2 Description du produit à l’origine........................................................................96 4.1.3 Description du processus à l’origine....................................................................96 4.1.4 Description de la clientèle à l’origine..................................................................97 4.2 Analyse du contexte et objectifs d’amélioration.........................................................97 4.2.1 Analyse du contexte.............................................................................................98 4.2.1.1 Analyse du contexte de l’équipe...................................................................98 4.2.1.2 Analyse du contexte du produit ....................................................................98 4.2.1.3 Analyse du contexte du processus ................................................................99 4.2.1.4 Analyse du contexte de la clientèle.............................................................101 4.2.2 Objectifs d’amélioration ....................................................................................102 4.2.3 Méthodes candidates..........................................................................................103 4.2.3.1 Adéquation de extreme Programming ........................................................103 4.2.3.2 Adéquation de Scrum..................................................................................104 4.2.3.3 Adéquation de Crystal Clear.......................................................................104 4.2.3.4 Commentaire sur l’implantation.................................................................105 4.3 Gestion du changement.............................................................................................105 4.3.1 Démarche d’implantation ..................................................................................105 4.3.1.1 Présenter l’urgence d’intervenir..................................................................106 4.3.1.2 Composer une coalition pour mener le changement...................................106 4.3.1.3 Créer une vision pour guider les efforts......................................................106 4.3.1.4 Communiquer la vision...............................................................................106 4.3.1.5 Impliquer les gens et les inciter à intervenir...............................................107 4.3.1.6 Planifier pour créer de petites victoires ......................................................107 4.3.1.7 Consolider les améliorations et engendrer d’autres changements..............107 4.3.1.8 Institutionnaliser la nouvelle approche.......................................................107 4.3.2 Chronologie des événements .............................................................................107 4.4 Analyse des résultats obtenus ...................................................................................110 4.4.1 Changements apportés à l’équipe ......................................................................110 4.4.2 Changements apportés au produit......................................................................111 4.4.3 Changements apportés au processus..................................................................112 4.4.4 Changements apportés avec nos clients.............................................................114 4.5 Atteinte de l’agilité ...................................................................................................114 4.6 Conclusion ................................................................................................................115 Chapitre 5: Conclusion ..................................................................................................118 5.1 L’offre traditionnelle.................................................................................................118 5.2 L’offre agile..............................................................................................................118 5.3 Constatations sur l’agilité .........................................................................................119 5.4 Questionnement initial..............................................................................................121 ix Liste des tableaux Tableau 1-1 : Description des tâches du cycle de vie logiciel..............................................10 Tableau 1-2 : Principaux titres et rôles des approches traditionnelles..................................17 Tableau 2-3 : Le manifeste agile...........................................................................................25 Tableau 2-4 : Caractéristiques des équipes de développement.............................................44 Tableau 2-5 : Caractéristiques liées au produit.....................................................................44 Tableau 2-6 : Caractéristiques de la gestion de projet..........................................................45 Tableau 2-7 : Caractéristiques de l'organisation...................................................................46 Tableau 3-8 : Domaines de gaspillage appliqués au logiciel................................................83 Tableau 4-9 : Propriétés, stratégies et techniques de Crystal Clear....................................105 Tableau 5-10 : Métriques agiles de Crystal ........................................................................145 x Liste des figures Figure 1-1 : Répartition des efforts de développement...........................................................6 Figure 2-2 : Spectre de la planification.................................................................................36 Figure 2-3 : Continuum adaptatif à prédictif ........................................................................43 Figure 3-4 : Processus XP au niveau du projet.....................................................................53 Figure 3-5 : Processus XP au niveau de l'itération ...............................................................54 Figure 3-6 : Processus XP au niveau du développement......................................................55 Figure 3-7 : Processus XP sur la propriété du code commun...............................................56 Figure 3-8 : Progression des tests acceptés par itérations.....................................................58 Figure 3-9 : Séquence des activités selon différentes méthodologies. .................................58 Figure 3-10 : Apprentissage de l’estimation de la valeur et des coûts. ................................59 Figure 3-11 : Probabilité de succès en fonction de la complexité du projet.........................63 Figure 3-12 : Processus global de SCRUM..........................................................................65 Figure 3-13 : Matrice de la famille Crystal...........................................................................71 Figure 3-14 : Imbrication des différents cycles de Crystal...................................................79 Figure 3-15 : Pyramide inversée de DSDM..........................................................................84 Figure 3-16: Cycle de DSDM...............................................................................................85 Figure 3-17: Cycle de développement de FDD ....................................................................88 Figure 3-18 : Les grands thèmes et les étapes de ASD.........................................................92 Figure 5-19 : XP vue en couche d'oignon...........................................................................136 Figure 5-20 : SCRUM en une page uploads/Geographie/ implantation-d-x27-une-methode-agile-de-developpement-logiciel-en-entreprise 1 .pdf
Documents similaires
-
18
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 23, 2022
- Catégorie Geography / Geogra...
- Langue French
- Taille du fichier 1.5461MB