Chapitre 2 Concepts Fondamentaux des Méthodes Agiles PDF
Document Details

Uploaded by CoolestEllipse3830
Tags
Summary
Ce chapitre présente les concepts fondamentaux des méthodes agiles. Il aborde les définitions, le manifeste agile, les différents principes agiles, et les aspects de l'offre agile en couvrant les perspectives et les apports pour les développeurs, les clients, et la gestion de projet. Le document est axé sur le développement de logiciel.
Full Transcript
Chapitre 2 Concepts Fondamentaux des Méthodes Agiles 5. Bases de l’agilité 5.1 Définition du terme « Agile » La capacité et l’aptitude à répondre et à s’adapter aux changements que proposent ces approches. Ces changements peuvent apparaître au niveau des spécifications, des intervenants, des proc...
Chapitre 2 Concepts Fondamentaux des Méthodes Agiles 5. Bases de l’agilité 5.1 Définition du terme « Agile » La capacité et l’aptitude à répondre et à s’adapter aux changements que proposent ces approches. Ces changements peuvent apparaître au niveau des spécifications, des intervenants, des procédures et surtout dans le domaine logiciel des technologies. Dans cette optique, Jim Highsmith propose une définition selon laquelle l’agilité « est l’habilité conjointe de créer et de répondre aux changements d’un environnement turbulent au profit de l’entreprise ». 5.2 Manifeste agile Les approches agiles se basent sur les critères du manifeste agile pour définir les méthodes agiles qui y adhèrent puisqu’il précise les préférences des agilistes. Une méthode dite « agile » lorsqu’elle obéit au manifeste et aux principes agiles. Nous sommes à découvrir de meilleures manières pour développer des logiciels en les pratiquant et en aidant les autres à le faire. À travers notre travail nous en sommes venus à valoriser : les individus et les interactions, davantage que les processus et les outils : Ce critère favorise le travail d’équipe et l’échange réciproque. En effet, l’importance accordée à la symbiose qui se créée entre les membres de l’équipe dépasse l’aspect matériel qui se décline en un processus rigoureux ou en des outils complexes les logiciels fonctionnels, davantage que la documentation compréhensive : En effet, l’objectif du développeur logiciel est d’innover d’un point de vue technique, la documentation devient alors un support complémentaire qui favorise la compréhension. la collaboration avec le client, davantage que la négociation de contrat : En favorisant les échanges, l’agilité épargne les négociations et des demandes de changements inutiles en favorisant une démarche constructive. la réponse au changement, davantage que le suivi d'un plan : partant du principe que le changement est affilié au modèle de développement, l’apprentissage au cours de la réalisation d’un projet est prôné dans les méthodes agiles, il permet l’adaptation à des situations méconnues jusque là Bien que l’élément de droite soit important, l’élément de gauche l’est davantage. 5.3 Principes agiles Notre plus haute priorité est de satisfaire le client en lui livrant rapidement et de façon continue, un logiciel de qualité Accepter les changements de besoins, même lors du développement Les processus agiles exploitent les changements pour augmenter les avantages compétitifs du client 1 Livrer fréquemment un logiciel fonctionnel, en visant les délais les plus courts, de quelques semaines à quelques mois Gestionnaires et développeurs doivent travailler ensemble, de façon quotidienne, pour toute la durée du projet. Bâtir des projets autour d’individus motivés. Donner leur l’environnement et le support nécessaire et ayez confiance qu’ils feront le travail. La méthode la plus efficace pour transmettre l’information à l’équipe de développement et à l’intérieur de celle-ci, est par conversation de personne à personne. Un logiciel fonctionnel est la mesure principale de l’avancement. Les processus agiles favorisent le développement maintenable. Les responsables, les développeurs et les usagers devraient pouvoir conserver un rythme constant indéfiniment. Une attention continuelle à l’excellence technique et un bon design, augmentent l’agilité. La simplicité ou « l’art de minimiser la quantité de travail fait inutilement » est essentielle. Les meilleures architectures, exigences et design surgissent d’équipes auto organisées. A intervalles réguliers, l’équipe réfléchit sur une façon de devenir plus efficace, puis elle adapte et ajuste son comportement en conséquence. Il existe plusieurs méthodes connues, cadrant dans ces valeurs et principes. 6 L’offre agile 6.1 Perceptions initiales C’est en fonction de la diversité des expériences, que la perception des gens diffère lors du premier contact avec le manifeste et les principes agiles en y adhérant ou en les rejetant. Plusieurs entreprises dont les managers sont réticents, optent pour le développement classique et donc rejettent celui agile. D’autres arrivent à combiner entre les deux. 6.2 L’apport des approches agiles 6.2.1 L’apport agile pour les développeurs Le premier critère du manifeste repose sur les interactions et met en retrait l’aspect matériel. Cela augmente les possibilités de réussite du projet En valorisant la créativité individuelle de chaque membre, en les motivant, en assurant la sécurité et en reconnaissant les pairs, entraine une meilleure contribution de chaque individu. 6.2.2 L’apport agile pour le produit Le deuxième critère du manifeste agite repose sur la fonctionnalité du logiciel. Ceci permet au projet d’évoluer et de s’adapter aux changements. Le recours à des techniques telles que le design pattern, la réutilisation, l’approche par composants, les métriques de code permettent de simplifier la communication. 2 6.2.3 L’apport agile pour le client Le troisième critère du manifeste agile repose sur la collaboration du client. Son implication est très bénéfique puisqu’il hiérarchise les priorités, ainsi, la planification du projet évolue et s’adapte aux changements qu’il désire, il obtient un produit qui est le fruit de ses décisions. 6.2.4 L’apport agile pour la gestion de projet Le dernier critère du manifeste agile repose sur l’adaptation. Toutes les méthodes agiles proviennent d’inspiration itérative et incrémentale. Il est possible d’améliorer toutes les parties du système au cours des itérations. 7 Position de l’agilité La mise en parallèle de plusieurs approches permet d’en dégager le taux de conformité à certaines normes. 7.1 Conformité aux modèles certifiés La conformité aux normes est un sujet qui préoccupe les entreprises. Certains donneurs d’ordre peuvent exiger une certification ce qui pousse les parties prenantes du projet à diminuer de l’agilité dans l’adaptation d’une méthode agile. Visant la satisfaction du client, la norme ISO 9001 est un système de gestion de la qualité inventé pour des besoins d’industrie dans le but d’assurer une classification des fournisseurs : Quatre domaines font l’objet de ces exigences : Responsabilité de la Direction : exigences d'actes de la part de la direction en tant Qu'acteur premier et permanent de la démarche. Système Qualité : exigences administratives permettant la sauvegarde des acquis. Exigence de prise en compte de la notion de système. Processus : exigences relatives à l'identification et à la gestion des processus contribuant à la satisfaction des parties intéressées. Amélioration continue : exigences de mesure de performance à tous les niveaux utiles, ainsi que l'engagement d'actions de progression. CMMI (Capability Maturity Model Integration) Le modèle CMMI® a été initié par le DoD (département de la Défense des États-Unis) dans les années 1980, pour lequel seuls 5% des projets étaient délivrés conformes et dans les délais. Ces difficultés ont conduit à l’élaboration d’un référentiel de critères lui permettant d’évaluer ses fournisseurs de logiciels. Le modèle aboutit finalement en 1991. Le CMMI® fournit un cadre méthodologique pour assurer une efficacité organisationnelle globale, à partir d’un modèle de référence et de bonnes pratiques. L’objectif est de mesurer la capacité d’une structure à mener à bien des projets, en termes de délais, de fonctionnalités et de budget. Ce modèle vise l’efficience et se compose de cinq niveaux de 3 maturité. Chaque niveau permet au processus mis en place d’assurer la progression et l’optimisation: Initial (chaotique): la réussite ne peut avoir lieu une nouvelle fois si les facteurs de réussite des projets ne sont pas identifiés. Piloté (géré): les projets sont pilotés d’une manière individuelle et leurs réussites sont répétables. Standardisé (défini): c’est au niveau de l’organisation que les processus de pilotage des projets sont mis en place à travers des normes, procédures, outils et méthodes. Quantifié : la réussite des projets est valorisée et quantifiée. Il est possible d’analyser les causes d’écart. Optimisé : la démarche d’optimisation est continue. On atteint le stade ultime de l’amélioration continue, où les processus sont stables et flexibles. C’est le créneau idéal pour mettre en œuvre des pratiques « agiles » et innovantes, dans un environnement de mieux en mieux maîtrisé. 7.2 Conformité au modèle agile Certaines approches agiles peuvent obéir à une comparaison avec les exigences agiles. Lorsqu’il est difficile de se conformer aux critères du manifeste agile, l’approche devient alors partiellement agile. Etant donné que l’agilité réside dans le contact et l’interaction entre l’équipe et le client, il s’avère difficile de quantifier cette collaboration puisqu’elle est plus abstraite que concrète. Les trois approches suivantes sont considérées comme agiles en fonction de leur conformité aux critères du manifeste agile. 7.3 Conformité agile du RAD RAD (Développement Rapide d’Applications) s’appuie essentiellement sur la réalisation de prototypes afin de communiquer les concepts. Ces prototypes sont le vecteur qui permet d’amorcer une discussion avec le client et obtenir son accord pour œuvrer à réaliser concrètement le produit. Le RAD ne se qualifie pas comme méthode agile. Plusieurs points de divergence sont soulevés : La planification n’œuvre pas à livrer un produit itératif incrémental, Il ne s’adapte pas convenablement aux changements. Il diffère sur le plan du retour d’expérience avec le client puisque cette dernière n’envisage pas d’intégrer des demandes nouvelles. La méthode DSDM (Méthode de Développement de Systèmes Dynamiques) est un cadre agile de gestion de projet et de développement de logiciels ancré dans les principes de livraison incrémentielle, de flexibilité, de collaboration et d'efficacité. DSDM est une adaptation basée sur le RAD qui propose multiples contrôles formant une méthode. Elle est considérée comme une solution pour éliminer les incompatibilités citées antérieurement. 4 7.4 Analyse de RUP Le processus unifié de Rational comporte plusieurs éléments. Sa mise en œuvre signifie la réalisation d’une chaîne de livrables centrés sur des modèles. Il peut contenir une version orientée objets des approches traditionnelles inefficaces. Le point de différence avec les valeurs agiles réside dans le rapport de RUP à son outil de conception et au formalisme UML. Afin d’adapter cette méthode et la rendre agile : Réduire RUP en éléments essentiels. Doté RUP d’un guide d’adaptation agile Agile UP 7.5 Analyse des développements libres En raison des aspects : adaptatif et itératif incrémental, certains considèrent que le développement de logiciel libre est une méthode agile en raison du nombre de points communs qu’ils partagent : planifier de petites livraisons, se baser sur la livraison par pairs pour la qualité du code. Cependant, il existe quelques points de divergence : l’objectif est imprécis puisque c’est au client de le fournir. Complexité des communications entre les développeurs. Les contraintes sont divergentes. 8. Limitations des approches agiles Les méthodes agiles sont en phase de découverte et d’exploration. De ce fait, elles doivent être approuvées à travers l’expérimentation et les essais. Par ailleurs, il existe des entreprises qui n’ont pas besoin d’être agiles. 8.1 Limitations liées au type de projet Il existe des projets dont les spécifications sont stables et bien définies alors que les méthodes agiles s’adaptent aux changements. Un environnement technologique stable et bien maîtrisé ne recommande pas le recours à une méthode agile. Une organisation certifiée recommande une méthode traditionnelle et n’a pas besoin de rencontre de planification d’itération. La documentation est déclinée au second plan, donc, les méthodes agiles ont un déficit de traçabilité. Une approche plus rigoureuse et rigide est recommandée dans le cadre d’un projet complexe. 5 L’autonomie du groupe constitue un risque quant à la conformité et les validations pour la coordination de l’ensemble des composantes. Complexité liée à la communication dans équipe séparée physiquement ou qui comprend plusieurs membres. 8.2 Limitations liées à la culture organisationnelle Vulnérabilité de l’homme face aux changements et sa peur de faire face à des situations inconnues. De peur de se plonger dans une situation qui prône le changement, les hommes se résignent à des procédures existantes L’implantation est difficile puisque les méthodes agiles reposent sur des aspects personnels, culturels et procéduraux. Les approches agiles sont adaptatives et réactives alors que les approches traditionnelles sont prédictives. Les méthodes agiles favorisent l’autonomie et la diversité des individus. Toutefois, la direction est un facteur important dans l’introduction du changement, c’est pourquoi, le leadership doit resté solidaire avec son équipe. 6