====== Méthodes Agiles ====== Voir: * [[/informatique/gestion_de_projet/le_refactoring|Le refactoring]] * [[http://fr.wikipedia.org/wiki/M%C3%A9thode_agile|Les méthodes agiles]] sur Wikipedia. * [[http://www.crossbowlabs.com/dossiers/extreme-programming|Introduction à l'Extreme Programming]] **Scrum** se concentre sur le management et les pratiques d’organisation tandis que **XP** se concentre surtout sur les pratiques de programmation concrètes. C’est pour ça qu’ils fonctionnent bien ensemble – ils concernent différentes zones et sont complémentaires. About Scrum by [[http://blog.crisp.se/henrikkniberg/|Henrik Kniberg]] : * [[http://henrik-kniberg.developpez.com/livre/scrum-xp/|Scrum et XP depuis les Tranchées]] (trad FR). * [[http://www.crisp.se/scrum/checklist|Scrum Checklist]] * Software Development - an invisible process or [[http://dl.dropbox.com/u/1018963/Projects/2010-11-10%20%C3%96reDev/Visualization.pdf|The Power of Visualization]] ===== Présentation ===== [[http://agilemanifesto.org/|The Agile Manifesto]] states a set of values: * **Individuals and interactions** over processes and tools * **Working software** over comprehensive documentation * **Customer collaboration** over contract negotiation * **Responding to change** over following a plan Le [[http://www.institut.capgemini.fr/index.php?p_id=119/?utm_source=infos&utm_medium=email&utm_campaign=A09S19|programme détaillé d'une formation de Cap-Gemini]] sera très parlant : * Scrum, XP, quelle méthode agile choisir ? * Quels changements introduisent les méthodes agiles dans les équipes ? * Quelles sont les principales pratiques et comment les mettre en œuvre ? * Quels sont les véritables apports, mais aussi quelles sont les limites des méthodes agiles ? * Comment bien démarrer et éviter les principaux écueils ? * Comment mettre en œuvre et réussir un projet en agile ? * Comment bien tester en agile ? * Quel est l’outillage à mettre en œuvre pour accompagner l’agile ? * Comment assurer la conduite du changement autour d’un projet agile ? * Comment piloter l’avancement d’un projet agile ? * Comment mesurer l’apport des méthodes agiles ? * Quels sont les liens avec le Lean Management ? ==== Méthodes agiles : les fondements ==== * Les méthodes traditionnelles de développement logiciel * Évolution des méthodes traditionnelles. * Le principe de la cascade. * Les limitations. * Illustration sur un cas type. * Comment aller plus loin et pour quels bénéfices. * Les méthodes agiles * L’”Agile Manifesto”. * Les “valeurs” agiles et leurs enjeux. * Les “principes” agiles. * Les promesses de l’agile. * L’agile et ses déclinaisons : XP et Scrum * L’esprit de la méthode XP. * Les caractéristiques de XP. * L’esprit de la méthode Scrum. * Les caractéristiques de Scrum. * Différences et points communs entre les méthodes. * Comment bien choisir une méthode agile. ==== Bien mettre en œuvre les méthodes agiles ==== * Comment planifier avec les méthodes agiles * Les différents niveaux de planification. * La définition de la vision. * La charte de projet. * La problématique du développement par itération * Principes et enjeux. * Dissection d’une itération : les grandes phases. * La constitution du backlog. * La définition des “user stories”. * Quels sont les critères d’une bonne “user story”. * Le “Planning Game”. * L’estimation de l’effort. * L’estimation de la valeur. * Bien choisir les méthodes d’estimation. * Avantages et limites des stratégies de priorisation. * La recette d’itération. * Bonnes pratiques pour la rétrospective de fin d’itération. * Les limites et les domaines d’application du développement par itération. * Comment bien tester en agile * Quels types de tests pour quels besoins. * Les enjeux du TDD (Tests Driven Development). * L’automatisation des tests de recette : principes, avantages et limites. * Que penser des outils d’automatisation des tests. * Les principales solutions d’automatisation des tests. * Fitness, GreenPepper, avantages et limites. * Exemple concret : l’utilisation de Fitness en pratique. * Vers une nouvelle approche pour les spécifications fonctionnelles détaillées. * L’importance de l’intégration continue * Les principes de l’intégration continue. * Les grandes fonctionnalités d’une plate-forme d’intégration continue. * Les points critiques et les principaux pièges à éviter. * Comment mettre en œuvre une plate-forme d’intégration continue. * Avantages et limites des principaux outils en .NET. * Avantages et limites des principaux outils en Java. * Les autres pratiques clés de l’agile * Client sur site. * “Pair Programming”. * Refactoring constant. * Conventions de code. * Propriété collective du code. * L’affichage sur les murs. * Avantages, limites et cadre d’application des différentes pratiques. * Comment bien piloter un projet en agile * Le tableau de tâches. * Le “burn down chart”. * La mesure de la vélocité. * Les bonnes pratiques pour la mesure de la vélocité. * La mesure de couverture de tests. * Bien choisir ses mesures pour l’amélioration continue. * Le rôle du facilitateur/ScrumMaster * Pourquoi un ScrumMaster. * Quelles qualités et compétences pour un ScrumMaster. * Son rôle dans les moments clés d’une itération. * Comment trouver/former un ScrumMaster. * Quels outils pour accompagner les méthodes agiles * Des post-it, des gommettes et des feutres, etc. * Quels outils pour la gestion du ”backlog”. * Les bonnes pratiques de la gestion du “backlog”. * Points forts et limites de Jira. * Exemple concret : l’utilisation de Jira en pratique. * Les conséquences sur les coûts et les délais. ==== Les bonnes pratiques de l’agile ==== * Les principales objections et comment y répondre * “Avec votre méthode, on ne sait pas où on va.” * “Avec votre méthode, il n’y a pas de documentation.” * “Avec votre méthode, il n’y a pas d’architecture.” * “Avec votre méthode, on fait du jetable.” * “Votre méthode n’est pas compatible avec CMMI.” * “Mais on fait déjà de l’agile !” * “Il y a trop de temps perdu en réunions.” * Quelques règles de survie pour bien commencer * Comment sensibiliser les acteurs clés. * Comment bien choisir un projet. * Comment constituer l’équipe. * Comment se faire accompagner : quels profils, quelles compétences. * Comment impliquer le management dans la démarche. * Comment préparer la mesure des bénéfices. * Savoir ne pas se lancer. * Comment éviter les écueils courants * Le manque de constance. * La pression de livraison. * La généralisation hâtive. * La gestion du changement insuffisante. * Comment faire de l’agile en offshore. * Bien gérer l’impact organisationnel des méthodes agiles * Impacts et conséquences pour les chefs de projet MOE. * Impacts et conséquences pour les équipes de développement. * Impacts et conséquences pour les équipes MOA. * Impacts et conséquences pour les équipes d’homologation. * Le rôle des managers dans la démarche. * Quelques notions de conduites du changement. * Savoir réagir face aux situations courantes. * Comment calculer le ROI des méthodes agiles * Les enjeux du calcul de ROI, difficultés et limites. * Les axes de gains. * Les bénéfices constatés. * La diffusion de l’agile dans les entreprises. * Quelques exemples concrets de mise en œuvre * Quelques exemples de résultats. * L’agile dans la Banque. * L’agile dans les Telco. * L’agile dans l’Assurance. * L’agile dans les médias Internet. * Panorama des entreprises utilisatrices. ==== Les méthodes agiles et la mouvance “Lean” ==== * Le Lean Management * L’origine du Lean Management. * Les principes “Lean”. * Les sources de gaspillage. * Le “Value Stream Mapping”. * La transposition du Lean au développement logiciel * “Gemba”. * “Hansei”. * “Kanban”. * “Kaizen”. * “Jidoka”. * “Muda”. * Quelles leçons en tirer pour les projets informatiques ? * Exemples et retours d’expérience des principes du “Lean”. * La théorie des contraintes (TOC) et l’agile * Les principes de la TOC. * La recherche du but. * La notion de goulet d’étranglement. * Les stratégies “d’exploitation des goulets”. * Lien avec l’agile et mise en pratique. * Vers une entreprise agile ? * L’agile au-delà du SI. * La mesure de la valeur. * La priorisation des activités.