Méthodes de développement



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

Méthodes Agiles et gestion de projets

25/12/2012

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

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

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

Les méthodes itératives. Hugues MEUNIER

Développement itératif, évolutif et agile

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

CHAPITRE 3 : LES METHODES AGILES?

Cours Gestion de projet

Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche

Qualité et Test des Logiciels. Le génie logiciel. Moez Krichen.

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

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

Méthodologies Orientées-Objet!

Scrum et l'agilité des équipes de développement

Programmation Agile Mise en oeuvre via Scrum et l'extreme Programming (XP)

Génie logiciel (Un aperçu)

Méthodes de développement. Analyse des exigences (spécification)

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

But de cette introduction à la gestion de projets :

Processus de Développement Logiciel

Processus de Développement Logiciel

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

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

Gestion Projet. Cours 3. Le cycle de vie

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

GESTION DE PROJET : LA METHODE AGILE

Certification Scrum Master

CINEMATIQUE DE FICHIERS

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

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

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

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

backlog du produit Product Owner

Jean-Pierre Vickoff

1/15. Jean Bernard CRAMPES Daniel VIELLE

Scrum Une méthode agile pour vos projets

Gestion de Projet Agile

Guide de Préparation. EXIN Agile Scrum. Foundation

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

Agile 360 Product Owner Scrum Master

Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES

1. Considérations sur le développement rapide d'application et les méthodes agiles

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

Jean-Pierre Vickoff J-P Vickoff

Contact: Yossi Gal, Téléphone:

Vision Produit. Un sacré attracteur pour une équipe auto-organisée. Thierry Cros

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

2.DIFFERENTS MODELES DE CYCLE DE VIE

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

Les méthodes Agile. Implication du client Développement itératif et incrémental

Enquête 2014 de rémunération globale sur les emplois en TIC

Agilitéet qualité logicielle: une mutation enmarche

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

Scrum + Drupal = Julien Dubois

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

Le management de projet

Introduction au génie logiciel

Chapitre I : le langage UML et le processus unifié

Le Product Backlog, qu est ce c est?

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

Introduction IV. Comparaison MERISE/UML/SCRUM Approche fonctionnelle Schéma Entité/Association Méthodologie...

Maîtrise d ouvrage agile

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

GL Processus de développement Cycles de vie

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

La solution IBM Rational pour une ALM Agile

EXIN Agile Scrum Master

Fondateur d Agile Impulse nicolashennion@agileimpulse.com. Support disponible sur agileimpulse.com/formation/scrumssii2j.

GUIDE SUR L ASSISTANCE A LA MAÎTRISE D'OUVRAGE EN INFORMATIQUE

Les méthodes Agiles. Introduc)on aux méthodes Agiles Exemple : Scrum

LA MÉTHODE AGILE VS LE CYCLE EN V UNE RÉVOLUTION DANS LA GESTION DE PROJET. Franck BEULÉ

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

Plateforme de capture et d analyse de sites Web AspirWeb

Outil de gestion et de suivi des projets

Le Product Owner Clé de voute d un projet agile réussi

Brique BDL Gestion de Projet Logiciel

INF2015 Développement de logiciels dans un environnement Agile Examen final hiver 2015

XP : ce célèbre inconnu

Mise en place d'une solution libre de gestion d'entreprise. Maurice MORETTI Directeur associé

Développement d'un projet informatique

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

BOOK REFERENCES ERGONOMIQUES Gfi Informatique

Collaboration innovante pour la création d un outil de gestion de production pour le cinéma et l audiovisuel

XEBIA DÉVELOPPEMENT OFFSHORE DISTRIBUÉ EN MÉTHODES AGILES. CAS CLIENT : CoachClub

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

SCRUM BUT, LE LIVRE BLANC. De la problématique de mener un projet AGILE dans une organisation classique

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

Année : Team-War Jaafar AMRANI-MESBAHI Fabien GARCIA Abdelali NAIT BELKACEM Rahma NAKARA Philippe NGUYEN

Analyse,, Conception des Systèmes Informatiques

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

Lancement du projet TOP (Tracabilité et Optimisation des Process)

ERP5. Gestion des Services Techniques des Collectivités Locales

Méthodologies SCRUM Présentation et mise en oeuvre

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

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

Génie Logiciel. Notes de l an passé-k. Planning Projets. Evolution des approches (1/4) Evolution des approches (2/4) Evolution des approches (3/4)

Transcription:

1 / 9 Méthodes de développement Méthodes agiles 1 - Introduction... 2 2 -Le manifeste agile et les méthodes agiles... 2 2.1 Le manifeste agile... 2 2.2 Les méthodes agiles... 3 3 - Caractéristiques communes des méthodes agiles... 3 4 - Caractères particuliers de méthodes agiles... 4 4.1 Rapid Application Development (RAD)... 4 4.2 SCRUM... 4 4.3 Extreme Programming (XP)... 5 5 - Intérêt des méthodes agiles... 5 6 - Les limites et les risques des méthodes agiles... 6 7 - Planification du projet... 6 8 - Conduite des activités... 7 8.1 Analyse du besoin... 7 8.2 Conception de l'architecture... 8 8.3 Tests... 9 9 - Conclusion... 9

2 / 9 1 - Introduction Un objectif important dans le développement de logiciel est de réduire les risques : risques de dépassement des coûts et délais, risque de mauvaise adaptation aux besoins du client. L'utilisation de techniques itératives permet de bien réduire ces risques. L'objet des méthodes agiles est de mieux garantir l'adaptation aux besoins du client. Elles s'appuient sur des techniques itératives avec une forte implication du client dans le développement. Les méthodes dites agiles ont commencé à apparaître dans les années 90. En 2001 17 experts américains se sont réunis et ont établi le "manifeste agile" qui sert de référence pour les méthodes agiles. 2 -Le manifeste agile et les méthodes agiles 2.1 Le manifeste agile Ce manifeste définit 4 valeurs fondamentales d'où sont déduits 12 principes généraux. Les 4 valeurs fondamentales sont : Les individus et les interactions doivent primer sur les processus et les outils Le développement logiciel doit primer sur la documentation exhaustive La collaboration avec le client doit primer sur la négociation contractuelle L ouverture au changement doit primer sur le suivi d un plan rigide Les 12 principes généraux sont : «Notre première priorité est de satisfaire le client en livrant tôt et régulièrement des logiciels utiles». «Le changement est bienvenu, même tardivement dans le développement. Les processus agiles exploitent le changement comme avantage compétitif pour le client». «Livrer fréquemment une application fonctionnelle, toutes les deux semaines à deux mois, avec une tendance pour la période la plus courte». «Les gens de l'art et les développeurs doivent collaborer quotidiennement au projet». «Bâtissez le projet autour de personnes motivées. Donnez leur l'environnement et le soutien dont elles ont besoin, et croyez en leur capacité à faire le travail». «La méthode la plus efficace pour transmettre l'information est une conversation en face à face». «Un logiciel fonctionnel est la meilleure unité de mesure de la progression du projet».

3 / 9 «Les processus agiles promeuvent un rythme de développement soutenable. Commanditaires, développeurs et utilisateurs devraient pouvoir maintenir le rythme indéfiniment». «Une attention continue à l'excellence technique et à la qualité de la conception améliore l'agilité». «La simplicité - l'art de maximiser la quantité de travail à ne pas faire - est essentielle». «Les meilleures architectures, spécifications et conceptions sont issues d'équipes qui s'auto-organisent». «À intervalle régulier, l'équipe réfléchit aux moyens de devenir plus efficace, puis accorde et ajuste son comportement dans ce sens». 2.2 Les méthodes agiles On trouve aujourd'hui une dizaine de méthodes "agiles" documentées, en particulier : Rapid Application Development (RAD) Dynamic Systems Development Method (DSDM) Extreme Programming (XP) Adaptive Software Development (ASD) Feature Driven Development(FDD) Scrum Crystal clear Rational Unified Process (RUP) Agile Unified Process (AUP) Il faut noter que certaines de ces méthodes ne respectent pas totalement les valeurs fondamentales et principes généraux du manifeste agile, et que leur classement en méthode agile est discutable. Par exemple le RUP est considéré comme agile par certains auteurs et non agile par d'autres 3 - Caractéristiques communes des méthodes agiles Les principaux aspects communs aux méthodes agiles sont : - participation active des utilisateurs (avec pouvoir de décision) à la définition et au contrôle des résultats (groupes de travail formalisés), d'où une approche collaborative au lieu d'un contrat figé, - réalisation par une méthode itérative avec des itérations courtes, - réalisation par une équipe autonome, auto organisée et motivée, - planification non figée, réexaminée en permanence en fonction des demandes des utilisateurs, des priorités, de l'avancement - réalisation d'une documentation juste suffisante et autant que possible intégrée au code, - conception en vue de l'évolutivité (conception objet ), - recherche de solutions simples, de normes et techniques raisonnables

4 / 9 4 - Caractères particuliers de méthodes agiles 4.1 Rapid Application Development (RAD) La méthode RAD structure le cycle de vie du projet en 5 phases : - l Initialisation définit l organisation, le périmètre et le plan de communication, - le Cadrage définit un espace d objectifs, de solutions et de moyens, - le Design modélise la solution et valide sa cohérence systémique, - la Construction réalise en prototypage actif (validation permanente), - la Finalisation est un contrôle final de qualité en site pilote. Vous pouvez notez que les deux premières phases sont la préparation du projet, et ensuite les autres phases sont un développement itératif. La construction est réalisée en utilisant la technique itérative. La méthode RAD met l'accent sur la réalisation de cycles courts (90 à 120 jours au maximum). D'autre part la participation du client doit être quasi permanente et est formalisée en particulier avec un groupe d'animation et de rapport (GAR) et des groupes de validation. 4.2 SCRUM Scrum vient de la mêlée du rugby, et une des particularités est de prévoir chaque matin une courte "mêlée" où l'équipe fait le point de l'avancement et décide des travaux à mener. Scrum utilise une approche fonctionnelle pour récolter les besoins des utilisateurs. L'objectif est d'établir une liste de fonctionnalités à réaliser, que l'on appelle backlog de produit. Scrum est un processus itératif : les itérations sont appelées des Sprints et durent de 2 et 4 semaines. Chaque Sprint possède un but, et on lui associe une liste d'items de backlog de produit (fonctionnalités) à réaliser.

5 / 9 4.3 Extreme Programming (XP) L'Extreme Programming demande un représentant du client présent en permanence sur site pendant la durée du projet. Il fournira les "scenarios client" qui définissent le besoin. L'Extreme Programming repose sur des itérations de quelques semaines dont les étapes sont les suivantes : une phase d'exploration détermine les scénarios clients qui seront fournis pendant cette itération ; l'équipe transforme les scénarios en tâches à réaliser et en tests fonctionnels ; chaque développeur s'attribue des tâches et les réalise avec un binôme ; lorsque tous les tests fonctionnels passent, le produit est livré. Le cycle se répète tant que le client peut fournir des scénarios à livrer. Généralement le cycle de la première livraison se caractérise par sa durée et le volume important de fonctionnalités embarquées. Après la première mise en production, les itérations peuvent devenir plus courtes (une semaine par exemple). 5 - Intérêt des méthodes agiles Un premier intérêt est la réduction de risques qu'apporte l'utilisation des techniques itératives : réduction des risques d'échec du projet, réduction des risques de dépassement du délai du projet, réduction des risques de réaliser un produit mal adapté aux besoins

6 / 9 Les méthodes agiles apportent de plus de meilleures garanties d'obtenir un produit bien adapté aux besoins ou au moins aux besoins prioritaires, d'une part en faisant participer activement les utilisateurs au développement, d'autre part en facilitant la prise en compte de changements au cours du projet. 6 - Les limites et les risques des méthodes agiles Les méthodes agiles demandent que la réalisation puisse être faite dans un cadre collaboratif et non contractuel, ce qui limite en pratique son utilisation à certains types de développements tels que les développements d'outils en interne à une société. De plus il faut disposer d'utilisateurs, qui soient suffisamment représentatifs de l'ensemble des utilisateurs futurs, et qui acceptent de collaborer à la réalisation du projet en y consacrant une charge de travail significative. Cela peut arriver pour des développements internes d'outils de gestion, mais il y a beaucoup de cas où ce n'est pas réaliste. Ces méthodes ont été conçues pour de petits projets (équipe de 4 à 6 personnes sur quelques mois). L'utilisation sur de plus gros projets est en théorie prévue en décomposant et parallélisant, mais la faisabilité n'est pas évidente. Le problème majeur me semble être l'absence de maitrise des coûts. On peut s'engager à fournir un produit fonctionnel et bien adapté aux besoins les plus prioritaires pour un coût et un délai fixé, mais on ne peut ni s'engager à ce que ce produit couvre l'ensemble des besoins, ni s'engager sur le coût et le délai pour réaliser un produit qui couvre l'ensemble des besoins. 7 - Planification du projet Les méthodes agiles utilisent toutes une technique de réalisation itérative, et supposent que le contenu de chaque itération sera défini au début de l'itération en fonction de l'état d'avancement et des priorités du client. Cela permet de s'adapter facilement aux demandes de modification du client. En contrepartie il n'est pas possible au début du projet d'identifier toutes les taches du projet et de faire un planning complet du projet. On pourra procéder par étapes : - au début du projet on se limite à identifier les niveaux supérieurs de l'arborescence des taches, et on fait un planning général avec ces taches de niveau supérieur et il se limitera en général à montrer la suite des itérations, - au début de chaque itération, on définit de façon détaillée les taches de l'itération et on fait le planning détaillé de l'itération.

7 / 9 Exemple de planning d'itération N Nom de la tâche 1 Iteration 2 begin 2 Project activities 3 Iteration planning 4 Scoping meeting 5 GRS updating 6 PDD updating 7 SQP updating 8 PTL drafting 9 Integration and test 10 Prototype acceptance 11 Common developments 12 Common base mechanisms 13 Data base V1 14 Data base access 15 Data base V2 16 User management station 17 User class 18 User list displaying 19 User selection and show ing details 20 Integration w ith data base 21 User test list definition 22 User test w ith data base V2 23 Seller station 24 Supplier class 25 Supplier list displaying 26 Adding a supplier 27 Integration w ith data base 28 Seller test list definition 29 Seller test w ith data base V2 07 Déc 09 14 Déc 09 21 Déc 09 28 Déc 09 04 Jan 10 11 Jan 10 18 Jan 10 25 Jan 10 L M M J V S D L M M J V S D L M M J V S D L M M J V S D L M M J V S D L M M J V S D L M M J V S D L M M J V S 14/12 Albert;Beatrice Daniel 16/12 Elise Charlie Daniel;Fernand Charlie;Beatrice Elise Daniel;Fernand Charlie;Beatrice Fernand Daniel;Fernand;Elise Daniel Charlie;Beatrice Albert Beatrice Elise Charlie;Beatrice;Elise Beatrice Daniel;Elise Beatrice;Elise Albert;Beatrice 25/01 Bien que le contenu précis de chaque itération soit défini au début de chaque itération, il faut prévoir au départ un contenu prévisionnel pour chaque itération. Cela permet de définir un ordre d'implémentation des fonctions et un délai d'aboutissement s'il n'y a pas trop de demandes de modification. Ensuite, le contenu réel des itérations pourra être différent, mais en mettant à jour ces contenus prévisionnels on pourra suivre l'avancement du produit et le délai de réalisation. Pour ces contenus prévisionnels et contenus d'itération on s'efforcera de parler en termes de fonctions ou fonctionnalités du produit. Cela facilitera le suivi et le dialogue avec le client. Il ne semble pas utile de rédiger un plan de développement logiciel (PDL) formalisé tel que présenté dans le chapitre préparation et suivi de projet. On pourra se limiter à faire et tenir à jour le planning général et un tableau de contenu des itérations. 8 - Conduite des activités 8.1 Analyse du besoin Il est nécessaire de faire une analyse du besoin au début du développement pour savoir quelles seront les fonctionnalités à implémenter. Dans les méthodes classiques où on recommande d'analyser le besoin dans le détail au début du développement, et de décrire ce détail dans une Spécification Technique de Besoin. A l'inverse, dans les méthodes agiles, on recommande de ne pas faire d'analyse détaillée au début du développement, mais uniquement au moment d'implémenter la fonctionnalité.

8 / 9 Le réalisateur qui a une fonctionnalité à coder approfondira le besoin à travers le codage ou la définition des tests, présentera le résultat au client, et modifiera en fonction des remarques du client. Cela s'approche d'une démarche par approximations successives. Dans ces conditions il n'y a pas besoin de rédiger une Spécification Technique de Besoins avec tout le détail des fonctions ou cas d'utilisation. Il est cependant utile d'avoir un document de besoin pour présenter l'utilisation du produit, les contraintes à respecter et lister les fonctionnalités à implémenter. Ce document pourrait être appelé Spécification Générale de Besoins (SGB) pour le distinguer d'une Spécification Technique de Besoin classique et contenir : - la présentation de la mission du système, - une liste des fonctionnalités, - les règles métier à respecter, - des exigences complémentaires. Un guide de rédaction est fourni. 8.2 Conception de l'architecture Le principe dans les méthodes agiles est de ne surtout pas chercher à optimiser et limiter les travaux d'architecture pour ne pas anticiper sur ce qui sera réalisé ou non réalisé (inutile de faire du travail pour ce qui ne sera peut être jamais réalisé ). De même lorsqu'on réalise une fonction, on ne prévoit pas les futures fonctions à implémenter, c'est lorsqu'on implémentera ces fonctions qu'on modifiera si besoin les fonctions déjà implémentées. Cependant il faut avoir une architecture qui permette l'ajout progressif des fonctions et permette de modifier facilement les fonctions. Pour cela il est fortement recommandé d'utiliser une conception objet et des schémas d'architecture type Modèle Vue Contrôleur (MVC). Il est fortement souhaitable avant de commencer à coder des fonctions de faire une étude générale d'architecture au niveau des principaux objets et du déploiement. Par contre on ne regardera pas le détail du contenu des classes et des interfaces comme recommandé dans les méthodes classiques. Ce détail sera examiné lors de la réalisation et commenté dans le code. Il n'y aura pas lieu de rédiger un Document d'architecture Logiciel (DAL) détaillé, mais il sera tout de même utile de consigner les résultats de l'étude générale d'architecture (souvent appelée conception préliminaire). Ce Document de Conception Préliminaire (DCP) pourrait contenir : - des tableaux des classes correspondants aux objets principaux, - les diagrammes de classe, - des diagrammes de séquence pour quelques scenarios d'utilisation,

9 / 9 - un diagramme de déploiement, - le schéma de la base de données. Un guide de rédaction est fourni. 8.3 Tests Les méthodes agiles conduisent à reprendre un grand nombre de fois les tests de chaque fonction. En effet à chaque itération on reprend les fonctions déjà codées, on les modifie souvent et on ajoute de nouvelles fonctions. Il faut tester les modifications, les nouvelles fonctions, et s'assurer qu'il n'y a pas de régressions. On reprendra donc les tests des fonctions à chaque itération. Il faut donc faire un effort sur la définition des tests et rechercher l'automatisation de leur passage. Il est recommandé, avant de coder une fonction, d'établir la liste des tests qui permettra de vérifier le fonctionnement de la fonction. 9 - Conclusion Les méthodes agiles contiennent des concepts intéressants. Cependant une approche totalement agile ne peut être utilisée que si plusieurs conditions sont remplies : client disponible pour coopérer dans le projet, conduite du projet dans un cadre non contractuel, pas d'exigence de maîtrise des coûts Cependant si toutes ces conditions ne sont pas remplies, on peut tout de même s'inspirer des concepts des méthodes agiles pour définir une méthode raisonnablement agile répondant aux contraintes.