SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Introduction à eXtreme
Programming et Scrum
eXtreme Programming
● Méthode Agile de gestion de projet
● Utilisé la première fois en 1996
● Publié pour la première fois en 1999
par Kent Beck
Histoire des méthodes de
développement de projet
Le manifeste des méthodes Agile
We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we have
come to value:
● Individuals and interactions over processes and tools
● Working software over comprehensive
documentation
● Customer collaboration over contract negotiation
● Responding to change over following a plan
That is, while there is value in the items on the right, we
value the items on the left more
eXtreme Programming : la théorie
L'Équipe
Planification
Petite
Livraison
Retour Client
Norme
de code
Rythme
endurant
Vision
Simple
Intégration
en continue
Code
appartient
à l'équipe
TDD
Programmation
par paire
Factorisation
Design
Simple
eXtreme Programming :
Diagramme général
eXtreme Programming : la théorie
Les 12 points (1)
● L'Équipe
● Planification
● Scénario utilisateur et jeu de test
● Petite livraison régulière
● Design Simple
● Programmation par paire
eXtreme Programming : la théorie
Les 12 points (2)
● Développement piloté par les tests (TDD)
● Factorisation
● Intégration en continue
● Code appartient au groupe
● Norme de Code
● Vision commune et Rythme endurant
eXtreme Programming : la théorie
l'Équipe
● Se rassemble autour du Client
● Rassemble des développeurs généraux ayant
des compétences spécifiques
● Tous ont un ou plusieurs rôles dans l'équipe
avec des fonctions précises
● Environnement de travail favorisant la
communication
eXtreme Programming : la théorie
Les rôles (1)
● Client
– Définit les scénarios et les tests fonctionnels
● Développeur
– Estime les scénarios
– Produit le code et les tests unitaires
– Définit les tâches
eXtreme Programming : la théorie
Les rôles (2)
● Coach
– Regarde tout
– Envoi des signaux obscures à l'équipe
– Pilote chaque membre
– Remet sur les rails du projet ceux qui s'en éloigne
(cas extrême se sépare d'elle)
– Gère les problèmes d'ego
● Testeur
– Implémente et exécute les tests fonctionnels
– Dans certains cas aide le Client à définir les tests
eXtreme Programming : la théorie
Les rôles (3)
● Messager de l'Apocalypse
– Faire en sorte que tout le monde comprenne les risques
– Faire en sorte que les mauvaises nouvelles ne soient pas masquées ou
écartées
– Faire en sorte que les mauvaises nouvelles ne prennent pas trop de
proportions
● Manager
– Organise les réunions
– S'assure du bon déroulement de celles-ci
– Renvoie les comptes rendus
– Ne dicte pas :
● Ce qu'il faut faire (Client)
● Quand il faut le faire (planning des itérations)
eXtreme Programming : la théorie
Planification
Réponds à deux questions clefs :
– Quelles fonctionnalités seront présentes à la
livraison ?
– Que fait-on ensuite ?
Dirige le projet au lieu d'avoir une prédiction
exacte de ce qu'il faut et du temps.
eXtreme Programming : la théorie
Planification
2 types de plannings distincts :
– Planning de Livraison
Jeu de fonctionnalités totales présentes à la fin du projet
– Planning des itérations
Jeu de fonctionnalités présentes à la fin de l'itération
eXtreme Programming : la théorie
Planning Game
Pièces : les scénarios utilisateurs sous forme de cartes à jouer
But : Mettre le maximum de valeur dans le produit sur la durée du jeu
Joueurs : les membres de l'équipe Business (Client, Manager) face aux
Développeurs
Coups :
● Écrire Histoire (Business)
● Estimer Histoire (Développeurs)
● Introduire Histoire (Business)
● S'engager
- Création de la liste d'Histoire
- Ordonnancement
● Revenir sur un engagement
● Changer Valeur (Business)
● Pic (Business)
● Ré-estimation (Développeurs)
eXtreme Programming : la théorie
Programmation par paire
● Deux personnes par station de travail
● Les paires ne sont pas statiques
● Dans une paire les deux personnes sont actifs
● Difficile à mettre en place
● Le temps de développement
augmente de 15 % environ
● Peux générer des problèmes
d'ego
● Il ne faut pas tomber dans des
relations maître / étudiant
● La qualité du code augmente
● Les connaissances sur les points
sont mieux réparties
● Le code est revue par l'ensemble
de l'équipe
Problèmes Avantages
eXtreme Programming : la théorie
Développement pilotés par les tests
1.Pensez à ce que vous devez faire
2.Pensez comment vous allez le tester
3.Écrire un petit test, pensez aux API requises
4.Écrire un code qui ne passera pas le test
5.Voir le test raté
6.Écrire un code qui passe le test
7.Voir le test réussir
8.Logique doublée ? Code incompréhensible → factorisation
9.Relancer tout les tests
Pour chaque
nouveau test
imaginé.
Reprendre le cycle
complet
eXtreme Programming : la théorie
Scénario Utilisateur
● Écrit par le Client
● Décrive le comportement de l'application
● Permet une évaluation raisonnable du temps
de développement
● Servent à établir le Planning de Livraison
● Servent de base pour les scénarios de tests
eXtreme Programming : la théorie
Petite Livraison
● Après chaque itération
● Montre l'évolution au Client
● Permet le test par le Client Final
● Assure des remontées rapides.
eXtreme Programming : la théorie
Design Simple
● Définition de Simple
Pas ou peu de temps à développer
● Mesure de la simplicité ?
– TUBE (Testable – Understandable – Browsable – Explainable)
– Beck
eXtreme Programming : la théorie
Factorisation
● Faire évoluer le design
● Supprimer les doublons
● Augmenter la cohérence
● Réduire les liens forts
● Retester l'ensemble
eXtreme Programming : la théorie
Intégration en continue
● Intégrer les différents modules
● Reconstruire le projet
Quotidiennement
➔Évite les problèmes d'intégration en fin de
projet
➔Évite les gels du code trop long
}
eXtreme Programming : la théorie
Code appartient au groupe
● Évite un mauvais placement des
fonctionnalités
● Toute l'équipe de développement participe aux
composants (via la Programmation par Paire)
● Code constamment relu et améliorer
● Un bon code est un code où aucun
développeur peut dire « c'est moi qui est fait
cette fonctionnalité »
eXtreme Programming : la théorie
Norme de code
● Impose des règles d'écriture stricte de code à
l'équipe
➔Baisse du sentiment d'appropriation du code
➔Augmente la cohérence du code
➔Augmente la qualité de celui-ci
➔Facile la compréhension de celui-ci
eXtreme Programming : la théorie
Vision simple et Rythme endurant
● Utilisation du même vocabulaire entre les
membres de l'équipe
➔ Meilleur communication interne
Toute l'équipe œuvre pour la finalisation du projet.
Ils ne sont pas là pour se tuer à la tâche.
Source :
Extreme Programming Explained – 2nd Edition
eXtreme Programming : Diagramme
Projet
eXtreme Programming : Diagramme
Itération
eXtreme Programming : Diagramme
Développement
eXtreme Programming : Diagramme
Code appartient au groupe
eXtreme Programming :
cas pratique
Scrum
● Apparaît en 1995
● Ensemble de règles de management
● Méthodologie itérative & incrémentale
● Ne couvre pas la partie technique d'ingénierie
du logiciel
Scrum : Diagramme
Scrum
● 3 rôles principaux :
– Propriétaire du Produit
– Équipe de Développement
– Scrum Master
● 4 étapes
– Planification du Sprint
– Mêlée quotidienne
– Revue de Sprint
– Rétrospective du Sprint
Scrum : Sprint
● Durée d'un mois maximum
● Cette durée reste constante tout au long du projet
● Possède un but et une liste de fonctionnalités
● Pendant un sprint
– Le but est inaltérable
– L'Équipe doit être constante
– La qualité est non négociable
– Les fonctionnalités sont sujettes à négociations
Scrum : Le Propriétaire du Produit
– Responsable de la maximisation du ROI (Retour sur 
Investissement) du développement
– Responsable de Vision du produit
– Priorise constamment les fonctionnalités du produit
– Ajuste sur le long terme les attentes
– Décisionnaire sur les pré requis
– Accepte/Rejette les livraisons aux itérations
– Décide de la livraison
– Décide la continuité des développements
Scrum : L'équipe de développement
– Transverse (testeurs, architecte, analyste,...)
– Autogérer sans rôles extérieurs
– Négocie les développements avec le Product 
Owner, une itération à la fois
– Autonome sur la réalisation
– Collaborative
– Équipe de 7 personnes environs
Scrum : Le Scrum Master
– Facilite le processus
– Aide à la résolution des obstacles
– Créé un environnement aidant l'équipe à s'autogérer
– Protège l'équipe des interférences extérieurs
– Assure le respect des temps
– Promeut et améliore des pratiques d'ingénierie
– N'a aucune autorité sur l'équipe
Scrum : Planification du Sprint 
● Lieu au début de chaque nouveau sprint
● Entre le Propriétaire du Produit et l'équipe
● Définit le but du sprint
● Choisit les fonctionnalités à réaliser
● Découpe les fonctionnalités en tâches à 
réaliser
Scrum : Mêlée Quotidienne
Répondre à trois questions : 
– Qu'ai je réalisé hier?
– Que vais-je faire aujourd'hui?
– Quel problème ai-je eu?
➔ Permet de déceler les nouvelles tâches à 
réaliser pour finir le Sprint
Scrum : Revue de sprint
● Présentation de ce qui a été réalisé pendant le 
sprint
● Validation par le Propriétaire du Produit
● Revue de la liste des fonctionnalités restantes
Scrum : Rétrospective du Sprint
● Analyse par l'équipe des problèmes 
rencontrés
● Réflexion sur les solutions aux problèmes
Scrum : 
cas pratique
Forces et Faiblesse des méthodes 
Agiles
✔ Productivité
✔ Qualité
✔ Souplesse
✔ Environnement 
✗ Échelle des équipes
✗ Équipe expérimenté
✗ Non applicable à tout 
les projets
✗ Coûts variables

Weitere ähnliche Inhalte

Was ist angesagt?

Méthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPMéthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPYouness Boukouchi
 
Rapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XPRapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XPSarah
 
Scrum - Une méthode agile sous la loupe ...
Scrum  - Une méthode agile sous la loupe ...Scrum  - Une méthode agile sous la loupe ...
Scrum - Une méthode agile sous la loupe ...Bilel McSam
 
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Bruno Flaven
 
Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionTremeur Balbous
 
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Bruno Flaven
 
L'agilité en quelques slides
L'agilité en quelques slidesL'agilité en quelques slides
L'agilité en quelques slidesNicolas Deverge
 
Ainsi pense la scrum.org (Pense pas Bête pour comprendre les assement de nive...
Ainsi pense la scrum.org (Pense pas Bête pour comprendre les assement de nive...Ainsi pense la scrum.org (Pense pas Bête pour comprendre les assement de nive...
Ainsi pense la scrum.org (Pense pas Bête pour comprendre les assement de nive...Jean-Luc MAZE
 
Les MéThodes Agiles
Les MéThodes AgilesLes MéThodes Agiles
Les MéThodes Agilesguesta206aa87
 
Gestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskillsGestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskillsPierre E. NEIS
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesSirine Barguaoui
 
Introduction à Scrum et aux méthodes agiles (v1.0)
Introduction à Scrum et aux méthodes agiles (v1.0)Introduction à Scrum et aux méthodes agiles (v1.0)
Introduction à Scrum et aux méthodes agiles (v1.0)Blackbird
 
Méthode d'Agile: Scrum
Méthode d'Agile: ScrumMéthode d'Agile: Scrum
Méthode d'Agile: ScrumChaymaMghazli
 
Introduction à Scrum Par La Pratique
Introduction à Scrum Par La PratiqueIntroduction à Scrum Par La Pratique
Introduction à Scrum Par La PratiqueFou Cha
 
Gestion de projets agiles avec scrum
Gestion de projets agiles avec scrumGestion de projets agiles avec scrum
Gestion de projets agiles avec scrumPierre E. NEIS
 

Was ist angesagt? (20)

Méthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPMéthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XP
 
Rapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XPRapport exposé eXtreme Programming XP
Rapport exposé eXtreme Programming XP
 
Scrum - Une méthode agile sous la loupe ...
Scrum  - Une méthode agile sous la loupe ...Scrum  - Une méthode agile sous la loupe ...
Scrum - Une méthode agile sous la loupe ...
 
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 1 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
 
Les méthodes Agiles - Introduction
Les méthodes Agiles - IntroductionLes méthodes Agiles - Introduction
Les méthodes Agiles - Introduction
 
Les pratiques Scrum
Les pratiques ScrumLes pratiques Scrum
Les pratiques Scrum
 
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
Partie 2 - Agile, Scrum, Méthodologie – Un tour d’horizon rapide sur la métho...
 
L'agilité en quelques slides
L'agilité en quelques slidesL'agilité en quelques slides
L'agilité en quelques slides
 
Ainsi pense la scrum.org (Pense pas Bête pour comprendre les assement de nive...
Ainsi pense la scrum.org (Pense pas Bête pour comprendre les assement de nive...Ainsi pense la scrum.org (Pense pas Bête pour comprendre les assement de nive...
Ainsi pense la scrum.org (Pense pas Bête pour comprendre les assement de nive...
 
20mn scrum
20mn scrum20mn scrum
20mn scrum
 
Les MéThodes Agiles
Les MéThodes AgilesLes MéThodes Agiles
Les MéThodes Agiles
 
Gestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskillsGestion de projets agiles avec scrum actiskills
Gestion de projets agiles avec scrum actiskills
 
Méthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiquesMéthodes agiles vs méthodes classiques
Méthodes agiles vs méthodes classiques
 
Introduction à Scrum et aux méthodes agiles (v1.0)
Introduction à Scrum et aux méthodes agiles (v1.0)Introduction à Scrum et aux méthodes agiles (v1.0)
Introduction à Scrum et aux méthodes agiles (v1.0)
 
Methodes agiles
Methodes agilesMethodes agiles
Methodes agiles
 
Méthode d'Agile: Scrum
Méthode d'Agile: ScrumMéthode d'Agile: Scrum
Méthode d'Agile: Scrum
 
Scrum
ScrumScrum
Scrum
 
Introduction à Scrum Par La Pratique
Introduction à Scrum Par La PratiqueIntroduction à Scrum Par La Pratique
Introduction à Scrum Par La Pratique
 
Methode Agile
Methode Agile Methode Agile
Methode Agile
 
Gestion de projets agiles avec scrum
Gestion de projets agiles avec scrumGestion de projets agiles avec scrum
Gestion de projets agiles avec scrum
 

Andere mochten auch

Agile and the Enterprise Culture
Agile and the Enterprise CultureAgile and the Enterprise Culture
Agile and the Enterprise CultureEtienne Laverdière
 
Agile Systems and Processes: Necessary and Sufficient Fundamental Architectur...
Agile Systems and Processes:Necessary and Sufficient Fundamental Architectur...Agile Systems and Processes:Necessary and Sufficient Fundamental Architectur...
Agile Systems and Processes: Necessary and Sufficient Fundamental Architectur...Rick Dove
 
How to Successfully Scale Agile in Your Enterprise
How to Successfully Scale Agile in Your EnterpriseHow to Successfully Scale Agile in Your Enterprise
How to Successfully Scale Agile in Your EnterpriseIsaac Hogue
 
REX sur une implantation SAFe - La complexité en TI et l'agilité d'entreprise
REX sur une implantation SAFe - La complexité en TI et l'agilité d'entrepriseREX sur une implantation SAFe - La complexité en TI et l'agilité d'entreprise
REX sur une implantation SAFe - La complexité en TI et l'agilité d'entrepriseEtienne Laverdière
 
L'agilité pour gérer la complexité en TI
L'agilité pour gérer la complexité en TIL'agilité pour gérer la complexité en TI
L'agilité pour gérer la complexité en TIEtienne Laverdière
 
Formation stratégie web marketing Espaces Numériques Entreprises mars 2014
Formation stratégie web marketing Espaces Numériques Entreprises mars 2014Formation stratégie web marketing Espaces Numériques Entreprises mars 2014
Formation stratégie web marketing Espaces Numériques Entreprises mars 2014Gilles Gilles
 
Les 14 principes lean management du système Toyota
Les 14 principes lean management du système ToyotaLes 14 principes lean management du système Toyota
Les 14 principes lean management du système ToyotaPascal Méance
 
Marketing des produits financiers
Marketing des produits financiersMarketing des produits financiers
Marketing des produits financiersFethi Ferhane
 
Fichier 1 marketing bancaire
Fichier 1 marketing bancaireFichier 1 marketing bancaire
Fichier 1 marketing bancaire10121982
 
Le plan marketing à l'usage du manager
Le plan marketing à l'usage du managerLe plan marketing à l'usage du manager
Le plan marketing à l'usage du managerFethi Ferhane
 
Valtech - Dans la peau du Manager Agile : un peu d'humanité dans un monde de ...
Valtech - Dans la peau du Manager Agile : un peu d'humanité dans un monde de ...Valtech - Dans la peau du Manager Agile : un peu d'humanité dans un monde de ...
Valtech - Dans la peau du Manager Agile : un peu d'humanité dans un monde de ...Valtech
 
Confétiz n°3 : concevoir des outils de fidélisation
Confétiz n°3 : concevoir des outils de fidélisationConfétiz n°3 : concevoir des outils de fidélisation
Confétiz n°3 : concevoir des outils de fidélisationAgence Tiz
 
Optimisation du Référencement des Sites Web Institutionnels
Optimisation du Référencement des Sites Web InstitutionnelsOptimisation du Référencement des Sites Web Institutionnels
Optimisation du Référencement des Sites Web InstitutionnelsLahcen Afif
 
Introduction à SCRUM par Lahcen Afif
Introduction à SCRUM par Lahcen AfifIntroduction à SCRUM par Lahcen Afif
Introduction à SCRUM par Lahcen AfifLahcen Afif
 
Cours extreme programming
Cours extreme programmingCours extreme programming
Cours extreme programmingSerge HARDY
 
AgileTour Toulouse 2012 : quel chemin vers l’agilité
AgileTour Toulouse 2012 : quel chemin vers l’agilitéAgileTour Toulouse 2012 : quel chemin vers l’agilité
AgileTour Toulouse 2012 : quel chemin vers l’agilitéAgile Toulouse
 
Conférence Meet The Guru - Le management en mode agile
Conférence Meet The Guru - Le management en mode agileConférence Meet The Guru - Le management en mode agile
Conférence Meet The Guru - Le management en mode agileDevoteam
 

Andere mochten auch (20)

Méthodes agiles & Scrum
Méthodes agiles & ScrumMéthodes agiles & Scrum
Méthodes agiles & Scrum
 
Scrum vs XP
Scrum vs XPScrum vs XP
Scrum vs XP
 
Agile and the Enterprise Culture
Agile and the Enterprise CultureAgile and the Enterprise Culture
Agile and the Enterprise Culture
 
Agile Systems and Processes: Necessary and Sufficient Fundamental Architectur...
Agile Systems and Processes:Necessary and Sufficient Fundamental Architectur...Agile Systems and Processes:Necessary and Sufficient Fundamental Architectur...
Agile Systems and Processes: Necessary and Sufficient Fundamental Architectur...
 
How to Successfully Scale Agile in Your Enterprise
How to Successfully Scale Agile in Your EnterpriseHow to Successfully Scale Agile in Your Enterprise
How to Successfully Scale Agile in Your Enterprise
 
REX sur une implantation SAFe - La complexité en TI et l'agilité d'entreprise
REX sur une implantation SAFe - La complexité en TI et l'agilité d'entrepriseREX sur une implantation SAFe - La complexité en TI et l'agilité d'entreprise
REX sur une implantation SAFe - La complexité en TI et l'agilité d'entreprise
 
L'agilité pour gérer la complexité en TI
L'agilité pour gérer la complexité en TIL'agilité pour gérer la complexité en TI
L'agilité pour gérer la complexité en TI
 
Lean Agile Leadership for Enterprise Agility
Lean Agile Leadership for Enterprise AgilityLean Agile Leadership for Enterprise Agility
Lean Agile Leadership for Enterprise Agility
 
Formation stratégie web marketing Espaces Numériques Entreprises mars 2014
Formation stratégie web marketing Espaces Numériques Entreprises mars 2014Formation stratégie web marketing Espaces Numériques Entreprises mars 2014
Formation stratégie web marketing Espaces Numériques Entreprises mars 2014
 
Les 14 principes lean management du système Toyota
Les 14 principes lean management du système ToyotaLes 14 principes lean management du système Toyota
Les 14 principes lean management du système Toyota
 
Marketing des produits financiers
Marketing des produits financiersMarketing des produits financiers
Marketing des produits financiers
 
Fichier 1 marketing bancaire
Fichier 1 marketing bancaireFichier 1 marketing bancaire
Fichier 1 marketing bancaire
 
Le plan marketing à l'usage du manager
Le plan marketing à l'usage du managerLe plan marketing à l'usage du manager
Le plan marketing à l'usage du manager
 
Valtech - Dans la peau du Manager Agile : un peu d'humanité dans un monde de ...
Valtech - Dans la peau du Manager Agile : un peu d'humanité dans un monde de ...Valtech - Dans la peau du Manager Agile : un peu d'humanité dans un monde de ...
Valtech - Dans la peau du Manager Agile : un peu d'humanité dans un monde de ...
 
Confétiz n°3 : concevoir des outils de fidélisation
Confétiz n°3 : concevoir des outils de fidélisationConfétiz n°3 : concevoir des outils de fidélisation
Confétiz n°3 : concevoir des outils de fidélisation
 
Optimisation du Référencement des Sites Web Institutionnels
Optimisation du Référencement des Sites Web InstitutionnelsOptimisation du Référencement des Sites Web Institutionnels
Optimisation du Référencement des Sites Web Institutionnels
 
Introduction à SCRUM par Lahcen Afif
Introduction à SCRUM par Lahcen AfifIntroduction à SCRUM par Lahcen Afif
Introduction à SCRUM par Lahcen Afif
 
Cours extreme programming
Cours extreme programmingCours extreme programming
Cours extreme programming
 
AgileTour Toulouse 2012 : quel chemin vers l’agilité
AgileTour Toulouse 2012 : quel chemin vers l’agilitéAgileTour Toulouse 2012 : quel chemin vers l’agilité
AgileTour Toulouse 2012 : quel chemin vers l’agilité
 
Conférence Meet The Guru - Le management en mode agile
Conférence Meet The Guru - Le management en mode agileConférence Meet The Guru - Le management en mode agile
Conférence Meet The Guru - Le management en mode agile
 

Ähnlich wie Agile Methodologies

4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciellauraty3204
 
Le combat contre l'atrophie technique - Agile en Seine 2020
Le combat contre l'atrophie technique - Agile en Seine 2020Le combat contre l'atrophie technique - Agile en Seine 2020
Le combat contre l'atrophie technique - Agile en Seine 2020Agile En Seine
 
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Guillaume RICHARD
 
Introduction à l'agilité ensmse
Introduction à l'agilité   ensmseIntroduction à l'agilité   ensmse
Introduction à l'agilité ensmseagnes_crepet
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesEric SIBER
 
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?florentpellet
 
Test Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teamsTest Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teamsThierry Gayet
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221Frédéric Delorme
 
Essential skills for the agile developer
Essential skills for the agile developerEssential skills for the agile developer
Essential skills for the agile developerAlice Barralon
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2Christophe Rochefolle
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverteEric Mignot
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringneuros
 
Le métier de Product Owner
Le métier de Product OwnerLe métier de Product Owner
Le métier de Product OwnerFlorent Boyer
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012agnes_crepet
 
TDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitTDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitEspritAgile
 

Ähnlich wie Agile Methodologies (20)

4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel4-Cours de Géniel Logiciel
4-Cours de Géniel Logiciel
 
Le combat contre l'atrophie technique - Agile en Seine 2020
Le combat contre l'atrophie technique - Agile en Seine 2020Le combat contre l'atrophie technique - Agile en Seine 2020
Le combat contre l'atrophie technique - Agile en Seine 2020
 
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.
 
Introduction à l'agilité ensmse
Introduction à l'agilité   ensmseIntroduction à l'agilité   ensmse
Introduction à l'agilité ensmse
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
12 agile
12 agile12 agile
12 agile
 
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?
CARA - Software Craftsmanship : le chaînon manquant de l’agilité ?
 
Symposium scrum
Symposium scrumSymposium scrum
Symposium scrum
 
Test Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teamsTest Driven Development (aka TDD) for agile teams
Test Driven Development (aka TDD) for agile teams
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
Essential skills for the agile developer
Essential skills for the agile developerEssential skills for the agile developer
Essential skills for the agile developer
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Tdd en action - découverte
Tdd en action - découverteTdd en action - découverte
Tdd en action - découverte
 
Anatomie du test
Anatomie du testAnatomie du test
Anatomie du test
 
TDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoringTDD (Test Driven Developement) et refactoring
TDD (Test Driven Developement) et refactoring
 
Le métier de Product Owner
Le métier de Product OwnerLe métier de Product Owner
Le métier de Product Owner
 
Introduction scrum
Introduction scrumIntroduction scrum
Introduction scrum
 
Iut lyon 1 introduction à l'agilité - 20 juin 2012
Iut lyon 1   introduction à l'agilité - 20 juin 2012Iut lyon 1   introduction à l'agilité - 20 juin 2012
Iut lyon 1 introduction à l'agilité - 20 juin 2012
 
TDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroitTDD où l’art de développer à l’endroit
TDD où l’art de développer à l’endroit
 
Scrum@epitech
Scrum@epitechScrum@epitech
Scrum@epitech
 

Agile Methodologies

  • 2. eXtreme Programming ● Méthode Agile de gestion de projet ● Utilisé la première fois en 1996 ● Publié pour la première fois en 1999 par Kent Beck
  • 3. Histoire des méthodes de développement de projet
  • 4. Le manifeste des méthodes Agile We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: ● Individuals and interactions over processes and tools ● Working software over comprehensive documentation ● Customer collaboration over contract negotiation ● Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more
  • 5. eXtreme Programming : la théorie L'Équipe Planification Petite Livraison Retour Client Norme de code Rythme endurant Vision Simple Intégration en continue Code appartient à l'équipe TDD Programmation par paire Factorisation Design Simple
  • 7. eXtreme Programming : la théorie Les 12 points (1) ● L'Équipe ● Planification ● Scénario utilisateur et jeu de test ● Petite livraison régulière ● Design Simple ● Programmation par paire
  • 8. eXtreme Programming : la théorie Les 12 points (2) ● Développement piloté par les tests (TDD) ● Factorisation ● Intégration en continue ● Code appartient au groupe ● Norme de Code ● Vision commune et Rythme endurant
  • 9. eXtreme Programming : la théorie l'Équipe ● Se rassemble autour du Client ● Rassemble des développeurs généraux ayant des compétences spécifiques ● Tous ont un ou plusieurs rôles dans l'équipe avec des fonctions précises ● Environnement de travail favorisant la communication
  • 10. eXtreme Programming : la théorie Les rôles (1) ● Client – Définit les scénarios et les tests fonctionnels ● Développeur – Estime les scénarios – Produit le code et les tests unitaires – Définit les tâches
  • 11. eXtreme Programming : la théorie Les rôles (2) ● Coach – Regarde tout – Envoi des signaux obscures à l'équipe – Pilote chaque membre – Remet sur les rails du projet ceux qui s'en éloigne (cas extrême se sépare d'elle) – Gère les problèmes d'ego ● Testeur – Implémente et exécute les tests fonctionnels – Dans certains cas aide le Client à définir les tests
  • 12. eXtreme Programming : la théorie Les rôles (3) ● Messager de l'Apocalypse – Faire en sorte que tout le monde comprenne les risques – Faire en sorte que les mauvaises nouvelles ne soient pas masquées ou écartées – Faire en sorte que les mauvaises nouvelles ne prennent pas trop de proportions ● Manager – Organise les réunions – S'assure du bon déroulement de celles-ci – Renvoie les comptes rendus – Ne dicte pas : ● Ce qu'il faut faire (Client) ● Quand il faut le faire (planning des itérations)
  • 13. eXtreme Programming : la théorie Planification Réponds à deux questions clefs : – Quelles fonctionnalités seront présentes à la livraison ? – Que fait-on ensuite ? Dirige le projet au lieu d'avoir une prédiction exacte de ce qu'il faut et du temps.
  • 14. eXtreme Programming : la théorie Planification 2 types de plannings distincts : – Planning de Livraison Jeu de fonctionnalités totales présentes à la fin du projet – Planning des itérations Jeu de fonctionnalités présentes à la fin de l'itération
  • 15. eXtreme Programming : la théorie Planning Game Pièces : les scénarios utilisateurs sous forme de cartes à jouer But : Mettre le maximum de valeur dans le produit sur la durée du jeu Joueurs : les membres de l'équipe Business (Client, Manager) face aux Développeurs Coups : ● Écrire Histoire (Business) ● Estimer Histoire (Développeurs) ● Introduire Histoire (Business) ● S'engager - Création de la liste d'Histoire - Ordonnancement ● Revenir sur un engagement ● Changer Valeur (Business) ● Pic (Business) ● Ré-estimation (Développeurs)
  • 16. eXtreme Programming : la théorie Programmation par paire ● Deux personnes par station de travail ● Les paires ne sont pas statiques ● Dans une paire les deux personnes sont actifs ● Difficile à mettre en place ● Le temps de développement augmente de 15 % environ ● Peux générer des problèmes d'ego ● Il ne faut pas tomber dans des relations maître / étudiant ● La qualité du code augmente ● Les connaissances sur les points sont mieux réparties ● Le code est revue par l'ensemble de l'équipe Problèmes Avantages
  • 17. eXtreme Programming : la théorie Développement pilotés par les tests 1.Pensez à ce que vous devez faire 2.Pensez comment vous allez le tester 3.Écrire un petit test, pensez aux API requises 4.Écrire un code qui ne passera pas le test 5.Voir le test raté 6.Écrire un code qui passe le test 7.Voir le test réussir 8.Logique doublée ? Code incompréhensible → factorisation 9.Relancer tout les tests Pour chaque nouveau test imaginé. Reprendre le cycle complet
  • 18. eXtreme Programming : la théorie Scénario Utilisateur ● Écrit par le Client ● Décrive le comportement de l'application ● Permet une évaluation raisonnable du temps de développement ● Servent à établir le Planning de Livraison ● Servent de base pour les scénarios de tests
  • 19. eXtreme Programming : la théorie Petite Livraison ● Après chaque itération ● Montre l'évolution au Client ● Permet le test par le Client Final ● Assure des remontées rapides.
  • 20. eXtreme Programming : la théorie Design Simple ● Définition de Simple Pas ou peu de temps à développer ● Mesure de la simplicité ? – TUBE (Testable – Understandable – Browsable – Explainable) – Beck
  • 21. eXtreme Programming : la théorie Factorisation ● Faire évoluer le design ● Supprimer les doublons ● Augmenter la cohérence ● Réduire les liens forts ● Retester l'ensemble
  • 22. eXtreme Programming : la théorie Intégration en continue ● Intégrer les différents modules ● Reconstruire le projet Quotidiennement ➔Évite les problèmes d'intégration en fin de projet ➔Évite les gels du code trop long }
  • 23. eXtreme Programming : la théorie Code appartient au groupe ● Évite un mauvais placement des fonctionnalités ● Toute l'équipe de développement participe aux composants (via la Programmation par Paire) ● Code constamment relu et améliorer ● Un bon code est un code où aucun développeur peut dire « c'est moi qui est fait cette fonctionnalité »
  • 24. eXtreme Programming : la théorie Norme de code ● Impose des règles d'écriture stricte de code à l'équipe ➔Baisse du sentiment d'appropriation du code ➔Augmente la cohérence du code ➔Augmente la qualité de celui-ci ➔Facile la compréhension de celui-ci
  • 25. eXtreme Programming : la théorie Vision simple et Rythme endurant ● Utilisation du même vocabulaire entre les membres de l'équipe ➔ Meilleur communication interne Toute l'équipe œuvre pour la finalisation du projet. Ils ne sont pas là pour se tuer à la tâche. Source : Extreme Programming Explained – 2nd Edition
  • 26. eXtreme Programming : Diagramme Projet
  • 27. eXtreme Programming : Diagramme Itération
  • 28. eXtreme Programming : Diagramme Développement
  • 29. eXtreme Programming : Diagramme Code appartient au groupe
  • 31. Scrum ● Apparaît en 1995 ● Ensemble de règles de management ● Méthodologie itérative & incrémentale ● Ne couvre pas la partie technique d'ingénierie du logiciel
  • 33. Scrum ● 3 rôles principaux : – Propriétaire du Produit – Équipe de Développement – Scrum Master ● 4 étapes – Planification du Sprint – Mêlée quotidienne – Revue de Sprint – Rétrospective du Sprint
  • 34. Scrum : Sprint ● Durée d'un mois maximum ● Cette durée reste constante tout au long du projet ● Possède un but et une liste de fonctionnalités ● Pendant un sprint – Le but est inaltérable – L'Équipe doit être constante – La qualité est non négociable – Les fonctionnalités sont sujettes à négociations
  • 35. Scrum : Le Propriétaire du Produit – Responsable de la maximisation du ROI (Retour sur  Investissement) du développement – Responsable de Vision du produit – Priorise constamment les fonctionnalités du produit – Ajuste sur le long terme les attentes – Décisionnaire sur les pré requis – Accepte/Rejette les livraisons aux itérations – Décide de la livraison – Décide la continuité des développements
  • 36. Scrum : L'équipe de développement – Transverse (testeurs, architecte, analyste,...) – Autogérer sans rôles extérieurs – Négocie les développements avec le Product  Owner, une itération à la fois – Autonome sur la réalisation – Collaborative – Équipe de 7 personnes environs
  • 37. Scrum : Le Scrum Master – Facilite le processus – Aide à la résolution des obstacles – Créé un environnement aidant l'équipe à s'autogérer – Protège l'équipe des interférences extérieurs – Assure le respect des temps – Promeut et améliore des pratiques d'ingénierie – N'a aucune autorité sur l'équipe
  • 38. Scrum : Planification du Sprint  ● Lieu au début de chaque nouveau sprint ● Entre le Propriétaire du Produit et l'équipe ● Définit le but du sprint ● Choisit les fonctionnalités à réaliser ● Découpe les fonctionnalités en tâches à  réaliser
  • 39. Scrum : Mêlée Quotidienne Répondre à trois questions :  – Qu'ai je réalisé hier? – Que vais-je faire aujourd'hui? – Quel problème ai-je eu? ➔ Permet de déceler les nouvelles tâches à  réaliser pour finir le Sprint
  • 43. Forces et Faiblesse des méthodes  Agiles ✔ Productivité ✔ Qualité ✔ Souplesse ✔ Environnement  ✗ Échelle des équipes ✗ Équipe expérimenté ✗ Non applicable à tout  les projets ✗ Coûts variables

Hinweis der Redaktion

  1. Historiquement le modèle appliqué était le cycle en V (1957 au plus vieux) Le modèle en spirale est issu des travaux de Barry Boehm en 1986. Parallèlement à ses travaux, Hirotaka Takeuchi et Ikujiro Nonaka publient le « New New Product Development Game » En 1991 avec la méthode Rapid Application Development (RAD) on commence à voir l'émergence de cycle semi itératif ainsi qu'une constante validation par le Client du produit livré. Des évolutions (RAD2 et Dynamic System Development Method) apparaissent en 1994.
  2. En février 2001, 17 développeurs se sont retrouvés à Snowbird dans l'Utah pour discuter des méthodes de développement. On y retrouve des hautes figures dans le monde du développement tel que : Ward Cunningham (inventeur du WiKi) Kent Beck (XP + xUnit) Ken Schwaber et Jeff Sutherland (Scrum) Ils établissent alors le manifeste suivant qui repose sur les valeurs suivantes : L'équipe – organisation personnelle et motivation ainsi que les interactions dans l'équipe sont importantes L'application – arrivé devant le client avec un produit fonctionnel plutôt que des pages et des pages de documentation La collaboration – les desiderata ne peuvent être tous découvert au début du projet, donc il suffit d'inclure le client continuellement dans le projet. L'acceptation du changement – développer continuellement et répondre vite aux changement, tel est le point principale d'une méthode Agile.
  3. Une équipe se forme autour d'un Client. Ce Client deviens partie intégrante de l'équipe. S'ensuit la réalisation d'une planification simple permettant de savoir les modules à faire et leurs priorités respectives et d'établir la date de fin du projet. La production elle se fera dans l'ordre de priorité en une série de petit module intégré et passant les tests définis par le Client. Les développeurs travaillent par paire en générant des designs simples et testés de bout en bout. On améliore le design (sans le complexifié) pour qu'il corresponde toujours aux besoins courants. L'intégration est faite en continue tout en gardant le système en ligne. Tout le code de production est réalisé par des pairs de développeurs. Le code est écrit de sorte que n'importe quel membre de l'équipe puisse le comprendre et l'améliorer. L'équipe partage une vision simple de l'application en travaillant à un rythme pouvant être maintenu indéfiniment.
  4. La planification des tâches dans la méthode XP se fait sous la forme d'un jeu avec son but, ses joueurs, ses règles. On le fait ainsi afin de créer une distance émotionnelle entre les acteurs et la planification.
  5. Les cartes sont souvent représentées sous la forme de cartes CRC (Class – Responsabilities – Collaboration) - Class : pour le nom de la classe / fonctionnalité - Responsabilities : ce qu'elle doit réaliser - Collaboration : les liens avec les autres classes / fonctionnalités Chacune des cartes à aussi deux valeurs : la priorité (ou valeur) le coût de celle-ci (en temps idéal) Description des coups : Écrire Histoire : Ajouter des informations sur la cartes (dans le descriptif) / sa priorité Estimer Histoire : Assigner un coût en temps idéal de développement. Si le coût est > au temps d'une itération, le Business divise la tâche. Si le coût est < 1, on combine la tâche avec d'autre petite tâche pour obtenir une unité de temps idéal Introduire Histoire : Ajoute une nouvelle carte dans le jeu S'engager : Phase principale du jeu, où l'on agence les différentes fonctionnalités pour la livraison. On distingue généralement deux méthodes : Pilotage par les fonctionnalités : le Business pose les fonctionnalités une par une sur la table, le Développement calcule et annonce la date de livraison Pilotage par la date : le Business choisit une date de livraison, le Développement calcule le coût total faisable d'ici la date (en unité de temps idéal). Ensuite le Business choisit les fonctionnalités selon leur coût. Enfin le Développement ordonnance les cartes choisis selon un des deux ordres suivants : Par ordre de valeur décroissante (les plus prioritaires d'abord) Par ordre de risque décroissant (les plus risqués d'abord) Revenir sur un engagement : Le Développement révise son engagement de X sur Y unités (Y < X) entre le temps T et la deadline. Le Développement annonce ceci le plus vite possible, le Business dès lors choisit les Y unités à garder déférant le reste pour une itération suivante. Changer Valeur : Redéfinir la priorité d'une carte Pic : Le Business peut mobiliser toute l'équipe pour combattre un feu ou réaliser un PoC. Si ce pic est plus qu'un patch temporaire, le Business doit créer une nouvelle Histoire. Cette histoire sera ordonnancer comme les autres. Ré-estimation : Le Développement reprend toutes les cartes de la pire et ré-évalue celle-ci. Cette action peut provoquer un Retour sur engagement.
  6. Les cartes sont souvent représentées sous la forme de cartes CRC (Class – Responsabilities – Collaboration) - Class : pour le nom de la classe / fonctionnalité - Responsabilities : ce qu'elle doit réaliser - Collaboration : les liens avec les autres classes / fonctionnalités Chacune des cartes à aussi deux valeurs : la priorité (ou valeur) le coût de celle-ci (en temps idéal) Description des coups : Écrire Histoire : Ajouter des informations sur la cartes (dans le descriptif) / sa priorité Estimer Histoire : Assigner un coût en temps idéal de développement. Si le coût est > au temps d'une itération, le Business divise la tâche. Si le coût est < 1, on combine la tâche avec d'autre petite tâche pour obtenir une unité de temps idéal Introduire Histoire : Ajoute une nouvelle carte dans le jeu S'engager : Phase principale du jeu, où l'on agence les différentes fonctionnalités pour la livraison. On distingue généralement deux méthodes : Pilotage par les fonctionnalités : le Business pose les fonctionnalités une par une sur la table, le Développement calcule et annonce la date de livraison Pilotage par la date : le Business choisit une date de livraison, le Développement calcule le coût total faisable d'ici la date (en unité de temps idéal). Ensuite le Business choisit les fonctionnalités selon leur coût. Enfin le Développement ordonnance les cartes choisis selon un des deux ordres suivants : Par ordre de valeur décroissante (les plus prioritaires d'abord) Par ordre de risque décroissant (les plus risqués d'abord) Revenir sur un engagement : Le Développement révise son engagement de X sur Y unités (Y < X) entre le temps T et la deadline. Le Développement annonce ceci le plus vite possible, le Business dès lors choisit les Y unités à garder déférant le reste pour une itération suivante. Changer Valeur : Redéfinir la priorité d'une carte Pic : Le Business peut mobiliser toute l'équipe pour combattre un feu ou réaliser un PoC. Si ce pic est plus qu'un patch temporaire, le Business doit créer une nouvelle Histoire. Cette histoire sera ordonnancer comme les autres. Ré-estimation : Le Développement reprend toutes les cartes de la pire et ré-évalue celle-ci. Cette action peut provoquer un Retour sur engagement.
  7. La méthode TUBE (Testable – Understandable – Browsable – Explainable) demande que le design possède 4 qualités : - Possibilité d'écrire des tests unitaires et de validation - Tous les membres de l'équipe le comprenne - Facilité à trouver des éléments dedans - Facile de montrer à une nouvelle personne comment il fonctionne Selon Beck un design est simple si : - il passe les tests - répond aux attentes - il n'y a pas de duplication de code - nombre minimal de composants et de méthodes