===== GESTION DE PROJET ===== === Méthode Agiles === Les méthodes Agiles se sont développées avec pour objectif de sortir du carcan méthodologique des méthodes traditionnelles en allégeant ces processus et en privilégiant les aspects collaboratifs entre des équipes pluridisciplinaires et leurs clients.\\ Ces méthodes mettent en avant la communication et les critères liés à l'humain.\\ Elles recherchent une planification adaptative, un développement évolutif, une livraison précoce et une amélioration continue.\\ La flexibilité au changement est un maitre mot de ces méthodes.\\ === Manifeste === C'est en 2001 qu'un premier manifeste de quatre valeurs pose les principes des méthodes Agiles : * Individus et leurs interactions avant les processus et les outils * Fonctionnalités opérationnelles avant la documentation * Collaboration avec le client plutôt que contractualisation des relations * Acceptation du changement plutôt que conformité aux plans === Principes généraux === De ce manifeste est sortie une liste de 12 principes généraux :\\ 1. Satisfaire le client en priorité,\\ 2. Accueillir favorablement les demandes de changement,\\ 3. Livrer le plus souvent possible des versions opérationnelles de l’application,\\ 4. Assurer une coopération permanente entre le client et l’équipe projet,\\ 5. Construire des projets autour d’individus motivés,\\ 6. Privilégier la conversation en face à face,\\ 7. Mesurer l’avancement du projet en termes de fonctionnalités de l’application,\\ 8. Faire avancer le projet à un rythme soutenable et constant,\\ 9. Porter une attention continue à l’excellence technique et à la conception,\\ 10. Faire simple,\\ 11. Responsabiliser les équipes,\\ 12. Ajuster à intervalles réguliers son comportement et ses processus pour être plus efficace.\\ \\ En résumé : * Satisfaction du client * Livraison rapide et régulière * Collaboration avec le client * Travail en équipe === Avantages === * Qualité de communication * Meilleure visibilité * Meilleur contrôle de la qualité * Meilleure détection des risques * Motivation de l’équipe * Contrôle des coûts === Principe === Les méthodes Agiles se fondent sur un développement itératif {{ :wiki:modele-iteratif.png?300 }} * Découpage du projet en plusieurs étapes * Chaque itération = mini-projet * Étape = fonctionnalités prioritaires * Définition d’un macro-planning === Méthodes === * ASD (Adaptive Software Development) * Crystal * DSDM * Scrum * RAD (Rapid Application Dvpt) * XP (eXtreme Programming) ===== SCRUM ===== Une des méthodes les plus utilisées est la méthode Scrum : {{ :wiki:scrum.png }} Le principe est donc basé sur une succession de mini-projets dont les constituants sont : * Les évènements * Les intervenants * Les documents === Les évènements === **Le Sprint** * Itération du projet * Durée : 1 à 4 semaines * Durée constante * Réalisation d’un incrément du produit * Débouche sur un livrable \\ **Le Sprint planning** * Réunion avec tous les équipiers * Réalisée en début de sprint * Durée : 1 journée (sprint 1 mois) * Choix des développements à réaliser * Choix des méthodes \\ **Le Daily scrum / mélée** * Planification de la journée * Bilan opérationnel * Coordination opérationnelle * Recensement des difficultés * Durée ~ 15 mns * Se pratique de préférence debout \\ **Le Sprint review** * Fin de sprint * Regroupe tous les acteurs * Durée ~ 4 heures (/mois) * Démonstration du produit * Validation \\ **Le Sprint retrospective** * Réunion de bilan * Interne à l’équipe (Product Owner / Scrum Master / développeurs) * Durée ~ 2/3 heures (/mois) * Prise en compte des changements * Étude de pistes d’amélioration === Les intervenants === **Product owner** * C'est le propriétaire du produit * Il représente le client \\ **Scrum master** * Assure le rôle de Chef de projet * Assure l'encadrement du projet * \\ **Développeurs** * Assurent la réalisation du produit * Maxi 10 personnes * Équipe pluri disciplinaire * Non hiérarchique === Les documents === Les différents documents utilisés dans la méthode. **Product backlog** * Constitue le cahier des charges * Délivré par le product owner * Liste des fonctionnalités souhaitées * Par ordre de priorité de réalisation * C'est le document de référence \\ **Sprint backlog** * C'est le cahier des charges du sprint * Liste des actions à réaliser * Choix effectué par l’équipe de développement \\ **Product increment** * Liste d’avancement du travail * Liste des travaux finis et validés lors du dernier sprint et lors des sprints précédents \\ **Burndown chart / Tableau d'avancement** * Graphe du travail restant * Courbe travail restant / idéal * Mis à jour à chaque réunion quotidienne {{ :wiki:tableau_avancement-scrum.jpg?300 }} \\ Le déroulé de l'avancement du travail dans le cadre d'un sprint est suivi au moyen d'un tableau de bord {{ :wiki:tdb-sprint.jpg }} **Impediment list / Liste des empêchements** * Interférences externes * Mise à jour à chaque réunion quotidienne === Valeurs du Scrum === **Visibilité** Pour évaluer les résultat du processus, ceux-ci doivent être réels et non soumis à interprétation. \\ Une fonctionnalité est implémentée lorsque tous les acteurs s’entendent sur les modalités d’évaluation du résultat et sur le résultat lui-même.\\ \\ **Inspection** Cela consiste à vérifier les écarts par rapport à l’objectif initial.\\ Les points de contrôle doivent être nombreux et fréquents.\\ \\ **Adaptation** L’adaptation est nécessaire lorsque des écarts inacceptables sont constatés ; des ajustements doivent être mis en œuvre immédiatement afin d’éviter des dérapages trop importants.\\ \\ === Comparaison méthodes classiques / agiles === {{ :wiki:comparatif_classique-agile.jpg }}