Développement itératif, évolutif et agile



Documents pareils
Méthodes Agiles et gestion de projets

Topologie du web - Valentin Bourgoin - Méthodes agiles & SCRUM

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

Les méthodes itératives. Hugues MEUNIER

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Méthodes de développement

CHAPITRE 3 : LES METHODES AGILES?

Génie logiciel (Un aperçu)

Les Méthodes Agiles. description et rapport à la Qualité. Benjamin Joguet Rémi Perrot Guillaume Tourgis

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Introduction au génie logiciel

25/12/2012

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

GL Processus de développement Cycles de vie

Cours Gestion de projet

Les mécanismes d'assurance et de contrôle de la qualité dans un

Gestion Projet. Cours 3. Le cycle de vie

Soyez agile. Dans l industrie du logiciel, la. De plus chaque projet informatique

Processus d Informatisation

MODALITES DE SUIVI DU PROJET ANNUEL DU MASTER 2 SOLUTIONS INFORMATIQUES LIBRES

Gestion de projet Agile. STS IRIS Module «Gérer et organiser un projet informatique»

Testeur Agile Niveau Fondation Bertrand Cornanguer, Vice-chair Agile tester WG

Maîtrise d ouvrage agile

2. Activités et Modèles de développement en Génie Logiciel

Ministère de l intérieur

Présentation UBO 12/2008 Présentation des méthodes agiles

Cisco Unified Computing Migration and Transition Service (Migration et transition)

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

But de cette introduction à la gestion de projets :

UML est-il soluble dans les méthodes agiles?

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

Eclipse Process Framework et Telelogic Harmony/ITSW

Analyse structurée de solutions pour BMC Remedy IT Service Management v 7

Agilitéet qualité logicielle: une mutation enmarche

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

Modèle de changement d organisation. Leanpizza.net présente. Petit Guide Rapide du jeu de cartes Modèle de Changement d Organisation

Stratégies gagnantes pour les prestataires de services : le cloud computing vu par les dirigeants Dossier à l attention des dirigeants

Développement ebusiness

Séance 1 Méthodologies du génie logiciel

Introduction. Nicolas Phalippon IR3. Source: rapport commandé par le Congrès américain. Présentation du 24/10/02

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Plateforme de capture et d analyse de sites Web AspirWeb

Conditions gagnantes pour démarrer sa transition Agile

PagesJaunes.fr Mise en place de Scrum de scrum. Fabien Grellier Agile Tour Octobre

Les Bonnes PRATIQUES DU TEST LOGICIEL

Christophe Leroy Marc Lainez. L Agilité est-elle soluble dans la culture francophone?

Analyse,, Conception des Systèmes Informatiques

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Chapitre I : le langage UML et le processus unifié

XP : plus qu'agile. Extreme Programming v2 et Développement Responsable. Thierry Cros

Méthode Agile de 3 ème génération J-P Vickoff

REX Scrum Master du terrain

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

Retour d expérience implémentation Scrum / XP

Scrum Une méthode agile pour vos projets

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Méthodologies de développement de logiciels de gestion

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

Formation : Modélisation avec UML 2.0 et Mise en pratique

Architecture pragmatique pour la gestion du cycle de vie des applications (ALM)

Principe et règles d audit

Cours Ephec Niv. 2 : Technique et gestion de projet. Par Monsieur Bertieaux Année Académique Quelles sont les 4 valeurs Agiles?

Méthodes Agiles : un équilibre contractuel remis en cause? Jonathan Rofé Matinales IPT DLA Piper Paris 24 mars 2011

Technologie Web. Conception de sites Web. Alexandre Pauchet. INSA Rouen - Département ASI. INSA - ASI TechnoWeb : Rappels UML 1/21

backlog du produit Product Owner

Introduction à la modélisation

SECTION 5 BANQUE DE PROJETS

PG208, Projet n 3 : Serveur HTTP évolué

Développement d'un projet informatique

Les projets d investissement en PME

ITIL V3. Objectifs et principes-clés de la conception des services

Scrum. Description. Traduit en langue française par Bruno Sbille et Fabrice Aimetti - Avril Trad FR v1.1

SYNERGIE Associés Confidentiel Reproduction interdite sans autorisation préalable Page 1 de 44

IFT3913 Qualité du logiciel et métriques. Chapitre 2 Modèles de processus du développement du logiciel. Plan du cours

Rational Unified Process

Le génie logiciel. maintenance de logiciels.

L assistance à maîtrise des projets logistiques risqués

TÉMOIGNAGE CLIENT ELIOR

Conduite de projets informatiques Développement, analyse et pilotage (2ième édition)

Les grandes familles du numérique

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

La gestion des données de référence ou comment exploiter toutes vos informations

Feature Team Primer. par Craig Larman et Bas Vodde. Version 1.2

Germe Grenoble 4 22/06/2012. Intervenant: Bruno Sbille

Agile Maroc 24 Novembre Méthodes agiles. Thierry Cros. Agile Maroc 24 novembre 2010

Augmenter la vélocité Agile avec l usine-service sur Azure

S organiser pour le Cloud

GÉREZ VOTRE RELATION CLIENT SANS QUITTER MICRO SOFT OUTLOOK

Gé nié Logiciél Livré Blanc

Jean-Pierre Vickoff

FORMAT FORMA ION SUR LA ION SUR LA GESTION DE PROJET & MS PROJECT

Quel logiciel DE CRM choisir pour votre force de vente terrain?

Identification du module

analyse et pérennise votre patrimoine informationnel

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Vers une IT as a service

Aligner le SI sur la stratégie de l entreprise

GESTION DE PROJET : LA METHODE AGILE

Transcription:

Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie séquentiel «en cascade», le développement itératif et évolutif implique de programmer et de tester précocement un système partie selon des cycles répétitifs. Normalement, il suppose aussi que le développement commence avant que tous les besoins n aient été définis en détail : c est le feed-back qui permettra de clarifier, d améliorer et de faire évoluer les spécifications. L approche en cascade favorisait une réflexion exhaustive sur les besoins et la conception, préliminaire à tout codage. Des études répétées on montré que cette approche était fortement associé aux taux d échecs les plus élevés en matière de développement logiciel. Dans un processus en cascade, on essaie de définir (en détail) la plus grande partie des spécifications, voir toutes, avant de programmer. Souvent, on entreprend également de créer une conception complète et des modèles UML complets avant que le codage débute. L idée qu on peut écrire tous les cas d utilisation ou réaliser tous les modèles orientés objet détaillés avant de commencer à programmer est un exemple de raisonnement incorrect. Un processus de développement décrit une méthode qui permet de construire, déployer et éventuellement maintenir un logiciel. Le Processus Unifié s est imposé comme processus de développement itératif pour la construction des systèmes orientés objet. Ce processus est très souple et très ouvert, il incite à inclure des pratiques judicieuses issues d autres méthodes itératives, telles qu Extreme Programming, Scrum. Une pratique essentielle du Processus Unifié et de la plupart des autres méthodes agiles est le développement itératif. Le développement s organise en une série des projets très courts, de durée fixe, nommées itérations. Le résultat de chaque itération est un système partiel exécutable, testé et intégré. Chaque itération comprend ses propres activités : analyse des besoins ; conception ; implémentation et tests. Chaque itération produit un système exécutable mais incomplet, qui n est pas encore prêt à être livré. Il faudra généralement de nombreuses itérations (dix ou quinze) par exemple, avant de pouvoir le déployer dans un environnement de production. Pour chaque itération il faut choisir un petit sous-ensemble de besoins puis concevoir, implémenter et tester rapidement. Lors des premières itérations, le choix

des spécifications et la conception ne correspondent pas forcément au résultat final souhaité, mais le fait de commencer une petite réalisation permet d obtenir rapidement un feed-back des utilisateurs, des développeurs et des tests (en particulier des tests de charge et d ergonomie). Des activités comme les tests de charge, outre qu elles permettent de clarifier les besoins, apporteront la preuve que la conception et l implémentation partielles sont sur la bonne voie ou indiqueront s il y a lieu, lors de l itération suivante d apporter une modification à l architecture de base. Mieux vaut résoudre et prouver au plus tôt les décisions critiques et sujettes à risque ; le développement itératif en fournit les moyens. En conséquence, le processus se développe suivant une série de cycles construction feed-back adaptation. 2. Avantages du développement itératif 1. Diminution des échecs, amélioration de la productivité et de la qualité. 2. Gestion précoce des risques élevés (risques techniques) grâce aux cas d utilisation. 3. Feed-back, implication des utilisateurs et adaptation précoces. Ces points permettent d obtenir un système élaboré qui répond plus étroitement aux besoins réels des parties prenantes. 4. Complexité gérée. L équipe n est plus épuisée par l analyse ou la complexité des tâches. 5. Possibilité d exploiter méthodiquement les leçons tirées d une itération. Cela permet d améliorer le processus de développement lui-même, une itération après l autre. Le changement est une constante à ne pas oublier des projets logiciels, les méthodes itératives reconnaissent les changements et s adaptent grâce au feed-back reçu : - Feed-back issu du début du développement, de la lecture des spécifications par les programmeurs et des démonstrations faites aux clients pour préciser les besoins ; - Feed-back issu des tests et des développeurs pour affiner la conception ou les modèles ; - Feed-back issu de la progression de l équipe abordant les premières fonctionnalités pour ajuster le calendrier et les estimations ; - Feed-back issu du client et du marché pour revoir les priorités des fonctionnalités à traiter dans l itération suivante. La durée des itérations doit être courte avec un feed-back rapide et une adaptation continue. Des itérations longues dénaturent la motivation principale et augmentent les risques du projet. Toutefois, les glissements de dates ne sont pas permis. Si le respect des délais semble compromis, mieux vaut supprimer des tâches ou les inclure dans la prochaine itération que de dépasser la date d achèvement. EXEMPLE DE DEVELOPPEMENT

Avant l itération 1, tenir le premier atelier d expression des besoins, en fixant une limite des temps. 1. Le matin du premier jour : - Analyser les besoins de haut niveau ; - Identifier les noms des cas d utilisation et des fonctionnalités et les principaux besoins non fonctionnels. - Demander à l équipe de choisir parmi les cas d utilisation énoncés une partie présentant ces 3 qualités : o Significatifs du point de vue de l architecture ; o De grande valeur pour le client (ce qui compte vraiment pour lui) ; o Fonctionnalités à haut risque. - Analyser en détail les besoins fonctionnels et non fonctionnels des cas d utilisations choisis d après les 3 critères énoncés plus haut. 2. Tenir une réunion de planification dans laquelle on choisit un sous-ensemble de cas d utilisation qui sera conçu, planifié et testé dans un temps donné. Réaliser l itération 1 (choisir une durée et la respecter) 1. Modélisation des diagrammes UML et des cas d utilisation choisis pour cette itération. Les modèles peuvent et même doivent être vagues pour inciter le programmeur à trouver des solutions adaptés. 2. Coder, tester, intégrer le travail des programmeurs en continu pendant le temps restant avant la fin de l itération. 3. L itération comprend beaucoup des tests : unitaires, de recette, de charge, d ergonomie. 4. Quelques jours avant la fin, demander à l équipe si les objectifs d origine peuvent être atteints. Si c est n est pas le cas il faut modifier la liste de tâches de l itération en plaçant les objectifs secondaires dans la catégorie des «choses à faire». 5. Faire l intégration et les tests pour constituer le référentiel de l itération. 6. Présenter une démonstration du système partiel aux parties prenantes externes afin de leur montrer la progression réalisée. Demander du feed-back. Organiser le deuxième atelier d expression de besoins avant de commencer la prochaine itération. Re-voyer et affiner tout le matériel issu du dernier atelier. Choisir une autre partie des cas d utilisation significatifs du point de vue architectural et d un intérêt certain pour le client. Tenir une réunion de planification de l itération suivante. Réaliser l itération suivante. Les étapes sont similaires. De cette manière, après quelques itérations consacrées au développement exploratoire, arrive le moment où l équipe peut répondre de façon plus fiable à la question «quoi, combien et quand». Le Processus Unifié encourage une planification itérative pilotée à la fois par les risques et par le client. Cela signifie que les objectifs des premières itérations sont choisis afin de : Identifier et atténuer les risques le plus importants ; Construire les fonctionnalités visibles qui comptent le plus pour le client.

Le développement itératif piloté par les risques fait plus spécifiquement appel à la pratique de développement centré sur l architecture. Autrement dit, les premières itérations sont dédiées à construire, tester et stabiliser l architecture du noyau. 3. Méthodes Agiles Les méthodes agiles s appuient elles aussi sur des méthodes de développement itératif et sur une capacité de réponse rapide et souple au changement. Les signataires du manifeste agile privilégient : - Les logiciels fonctionnels d avantage que l exhaustivité de la documentation ; - La collaboration avec le client ; - La réponse au changement d avantage que l application d un plan. Les principes du manifeste agile sont : 1. La première priorité doit être la satisfaction du client. Il faut livrer rapidement et de façon continue un logiciel de qualité. 2. Accepter les changements des besoins, même en cours de développement, en exploitant ces changements pour augmenter les avantages du client. 3. Livrer fréquemment du code fonctionnel (préférence pour les délais courts). 4. Toute l équipe doit travailler ensemble (experts métier et développeurs). 5. Bâtir des projets autour des individus motivés. Leur fournit l environnement et le soutien dont ils ont besoin et leur faire confiance. 6. La méthode la plus efficace pour transmettre l information au sein de l équipe est le face-à-face. 7. Un logiciel fonctionnel est la meilleure mesure de la progression. 8. Commanditaires, développeurs et utilisateurs doivent pouvoir conserver indéfiniment un rythme constant. 9. La réduction du travail inutile au minimum est nécessaire (un logiciel doit être simple et fonctionnel). 10. A intervalles réguliers l équipe réfléchit à une manière d être plus efficace et s adapte et ajuste son comportement en cours de route. Pour arriver à modéliser correctement en respectant le processus itératif il faut : - Construire des modèles (UML) simples à l aide d un logiciel ; - Travailler en binôme ou en trio pour fabriquer les modèles ; - Faire des diagrammes en parallèle ; - Utiliser une notation correcte du point de vue de la conception. Le but de la modélisation n est pas de fournir une solution exacte mais de comprendre mieux le problème posé et communiquer des idées. 4. Bonnes pratiques du processus unifié Il n y a pas de plan détaillé du projet entier. Il existe toutefois un plan à haut niveau nommé plan des phases qui permet d estimer la date de fin du projet et

d autres jalons majeurs, sans que les étapes permettant d aboutir à ces jalons soient finement fixées. Un deuxième plan, nommé plan d itération, n organise précisément qu une itération à la fois. La planification détaillée est effectuée de façon adaptative d une itération à l autre. Meilleures pratiques : 1. Traitement des questions très importantes dans les premières itérations. 2. Implication permanente des utilisateurs et/ou clients dans l évaluation, le feedback et la définition des besoins. 3. Construction du noyau architectural cohérent dès les premières itérations. 4. Application des cas d utilisation de manière appropriée. 5. Modélisation graphique du logiciel (UML). 6. Gestion rigoureuse des spécifications. 7. Pratique des demandes de changement et de la gestion de configuration. 5. Phases du Processus Unifié INTERCEPTION = vision approximative de la finalité du projet, définition du périmètre et des estimations globales. ELABORATION = implémentation itérative de l architecture du noyau, résolution des risques élevées, identification de la plupart des besoins et des cas d utilisation. CONSTRUCTION = implémentation itérative des éléments qui présentent des risques moindres et préparation du déploiement. TRANSITION = moment des bêta tests et du déploiement.