75
Introduction aux méthodes agiles Guillaume Collic [email protected]

Introduction aux méthodes agiles

Embed Size (px)

DESCRIPTION

Une introduction aux méthodes agiles : introduction, historique et manifeste agile, Scrum, XP, Kanban.

Citation preview

Page 1: Introduction aux méthodes agiles

Introduction aux méthodes agiles

Guillaume [email protected]

Page 2: Introduction aux méthodes agiles

Qui suis-je ?

Acteur de l’agilité

Pro | Asso

2/75

Page 3: Introduction aux méthodes agiles

Plan

• Introduction : c’est quoi être agile• Approches déterministes– Les méthodes « classiques »

• Approches empiriques– Les méthodes agiles

• Scrum• eXtreme Programming (XP)• Kanban• Questions

3/75

Page 4: Introduction aux méthodes agiles

ÊTRE AGILE ?Préambule

4/75

Page 5: Introduction aux méthodes agiles

C’est quoi être Agile ?

• Énormément de réponses possibles, suivant l’angle et le prisme choisi, la plupart complémentaires

5/75

Agilité

Faire les choses efficacement(productivité)

Bien être et valeurs(prévention de risques psycho-sociaux au travail)

Faire les bonnes choses(satisfaction client)

……

……

Page 6: Introduction aux méthodes agiles

Pour moi et aujourd’hui,c’est de plus en plus

• Évoluer vers une organisation– plus organique– en petites structures auto-organisées– apprenantes– respectueuses de leur écosystème (gagnant-gagnant)

• Conséquences– De meilleur résultats– Un regain de sens dans le travail

• (Problème générationnel ?)

6/75

Page 7: Introduction aux méthodes agiles

Et ça demande…

• Une ouverture d’esprit• Du courage

– Remettre en question nos modes de pensées– Réapprendre l’entreprise

• Dans notre contexte• Au bénéfices de toutes les parties prenantes

• Un lâcher prise– Manager

• mieux atteindre le « quoi » en contrôlant moins le « comment »– Acteur : avoir plus de pouvoir

• mais avec de grands pouvoirs viennent de grandes responsabilités

7/75

Page 8: Introduction aux méthodes agiles

Relations

8/75

SimplesChaotiques

Complexes Compliqués

Page 9: Introduction aux méthodes agiles

Relations

9/75

SimplesChaotiques

Complexes Compliqués

Classique

Agile

Page 10: Introduction aux méthodes agiles

Des équipiers en forme de T

10/75http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf

Page 11: Introduction aux méthodes agiles

Mais avant d’en arriver là…

• On commence souvent par mettre un pied dans des choses plus terre-à-terre– Réduire les problèmes techniques• Intégration continue• Tests unitaires, TDD, …

– Améliorer la visibilité et la priorisation (pilotage)• Management visuel• Incréments

– Etc, etc.

11/75

Page 12: Introduction aux méthodes agiles

Fin du préambule

Début du tour d’horizondes méthodes agiles

12/75

Page 13: Introduction aux méthodes agiles

APPROCHES DÉTERMINISTES

13/75

Page 14: Introduction aux méthodes agiles

Modèle en cascade (Waterfall)

http://www.commentcamarche.net/contents/genie-logiciel/cycle-de-vie.php314/75

Page 15: Introduction aux méthodes agiles

Cycle en V

http://www.commentcamarche.net/contents/genie-logiciel/cycle-de-vie.php315/75

Page 16: Introduction aux méthodes agiles

Simple à mettre en œuvre

• Contrat simple– Tout est prévu précisément à l’avance• Qui / Quoi / Quand

• Approches connues et enseignées partout

16/75

Page 17: Introduction aux méthodes agiles

Effet « Tunnel »

• X mois sans visibilité– « Nuit polaire »

http://www.projectcartoon.com17/75

Page 18: Introduction aux méthodes agiles

Importance des documents écrits

• Causes– Délais long entre la création d’une étude et de son

utilisation– Spécialisation des gens = nombreux intermédiaires

• Sert de référence ultime– Du besoin– De la solution– De la validation– …

18/75

Page 19: Introduction aux méthodes agiles

Facteurs de succès

• Le client sait exactement ce qu’il veut dès le départ

• Les besoins ne changent pas• L’équipe de réalisation sait parfaitement– Trouver les bonnes solutions techniques du

premier coup– Chiffrer la charge de travail en début de projet

• …

19/75

Page 20: Introduction aux méthodes agiles

Marge de manœuvre : 4 axes

• Périmètre– Fixe

• Délai– Fixe

• Coût– Fixe

• Qualité– ?

20/75

Page 21: Introduction aux méthodes agiles

Coût des anomalies

http://www.agitar.com/solutions/why_unit_testing.html21/75

L’approche scientifique

pour obtenir ces chiffres

n’est pas garantie

Page 22: Introduction aux méthodes agiles

MÉTHODES AGILESApproches empiriques

http://agileconsulting.blogspot.com22/75

Page 23: Introduction aux méthodes agiles

Constat

• Les spécifications ne sont pas complètement comprises tant que le projet n’est pas commencé

• Les utilisateurs ne savent ce qu’ils veulent qu’après avoir vu une première version de l’application

23/75

Page 24: Introduction aux méthodes agiles

Caractéristiques

• Méthodes réactives et incrémentales d’organisation du travail

• Focalisées sur le produit et la satisfaction client

• Construit en adéquation avec les capacités et limites humaines

24/75

Page 25: Introduction aux méthodes agiles

Historique

25/75

Page 26: Introduction aux méthodes agiles

Les 4 valeursNous reconnaissons que les éléments à droite ont de la valeur, mais nous privilégions ceux à gauche

Processus et outilsIndividus et interactions

Documentation exhaustiveUn produit opérationnel

Négociation du contratCollaborationavec le client

Suivi d'un planAdaptation au changement

26/75

Page 27: Introduction aux méthodes agiles

12 principes1. Satisfaire le client2. Accueillir le changement3. Livrer fréquemment4. Travailler quotidiennement avec les utilisateurs ou leur représentants5. Créer un environnement qui soutienne l’équipe6. Communiquer en face à face7. Mesurer l’avancement sur un logiciel opérationnel8. Avoir un rythme de développement soutenable9. Porter une attention continue à l'excellence technique10. Minimiser la quantité de travail inutile11. Avoir une équipe auto-organisée pour faire émerger les solutions12. Inspecter et s’adapter régulièrement

27/75

Page 28: Introduction aux méthodes agiles

Marge de manœuvre : 4 axes

• Qualité– Fixe

• Car la dette technique comporte un fort taux d’intérêt !

• Priorisation suivant les 3 autres axes

Périmètre

CoûtDélai

28/75

Page 29: Introduction aux méthodes agiles

L’agilité en 2 slides (1/2)

À 50% du temps total, le client ne voit statistiquement

que 10% de son application. Et il ne sait pas dans quel état elle est.

Expression des besoins

Conception

Développement

Tests, recette & debugage

29/75

Page 30: Introduction aux méthodes agiles

L’agilité en 2 slides (2/2)

Expression de besoins

Conception

Développement

Tests, recette & debuggage

À chaque itération, le produit est 100% fonctionnel.

i1 i2 i3 ini5i4

Backlog, user stories

Simplicité, refactoring

TDD, acceptance

Demos, reviews

30/75

Page 31: Introduction aux méthodes agiles

Facteurs de succès

• L’utilisateur est impliqué quotidiennement (ou son représentant)

• Le middle management soutient l’équipe auto-organisée

• Les pratiques sont adaptés au mode incrémental– Automatisation des tests car rejoués souvent– Code compréhensible car modifié souvent– …

• …

31/75

Page 32: Introduction aux méthodes agiles

Bénéfices de l’adoption (sondage)

http://www.versionone.com/state_of_agile_development_survey32/75

Page 33: Introduction aux méthodes agiles

Répartition des méthodes (sondage)

http://www.versionone.com/state_of_agile_development_survey33/75

Page 34: Introduction aux méthodes agiles

SCRUM

http://www.edupics.com34/75

Page 35: Introduction aux méthodes agiles

Rôle 1/3 : Product Owner

• Porteur de la vision globale du produit• Défini les priorités• Accepte ou rejette les livrables

35/75

Page 36: Introduction aux méthodes agiles

Rôle 2/3 : Scrum Master

• Enlève les obstacles pour l’équipe• S’assure du respect de scrum• Serviteur de l’équipe : facilitateur

• Ce n’est pas un chef de projet

36/75

Page 37: Introduction aux méthodes agiles

Rôle 3/3 : L’équipe

• Réalise le logiciel• Auto-organisée• Stable durant le sprint• Avec toute les compétences nécessaires pour

le sprint

37/75

Page 38: Introduction aux méthodes agiles

Cycle de vie d’un projet Scrum

38/75

Page 39: Introduction aux méthodes agiles

Product Backlog

• Liste du travail à effectuer– Chiffré imprécisément– Valeur ajoutée précisée– Sous forme de User Stories

Géré par le product owner

39/75

Page 40: Introduction aux méthodes agiles

User Stories (1/2)

• Nom (Valeur métier)

• En tant que <rôle>• Je veux <action>• Afin de <but>

• Critères d'acceptation

40/75

Page 41: Introduction aux méthodes agiles

User Stories (2/2)

• Ecrites par le Product Owner• Très simples• Focalisées sur l'utilisateur final– valeur métier apportée

• Critères d'acceptations– testable, définit le « Done »

• Laisse place à la discussion pour les détails– individus et interactions : une user story est une

promesse d’une rencontre future

41/75

Page 42: Introduction aux méthodes agiles

Planification de sprint

• Choisir et s’engager, collectivement– L’objectif du sprint– Les user stories du Product Backlog embarquées dans le

Sprint Backlog• Découpées en tâches• Estimées en point, relativement à une user story de référence

42/75

Page 43: Introduction aux méthodes agiles

Discussions et décisionsPérimètre : Product Owner

Coût : l’équipePriorité : Product Owner

43/75

Page 44: Introduction aux méthodes agiles

Estimation par planning poker

44/75

Page 45: Introduction aux méthodes agiles

Sprint

• Réalisation des éléments du Sprint Backlog– Product Owner disponible– Équipe focalisée et non perturbée

• Management visuel– Scrum Board– Burndown

45/75

Page 46: Introduction aux méthodes agiles

Scrum Board

http://www.xqa.com.ar/visualmanagement46/75

Page 47: Introduction aux méthodes agiles

Définition de « fini »

47/75

Page 48: Introduction aux méthodes agiles

Burndown

• Suivi du reste à faire (pas du consommé)

http://www.scrumalliance.org/articles/5548/75

Page 49: Introduction aux méthodes agiles

Mêlée quotidienne – Daily Scrum

• Auto-organisée, pas de micro-management• ~ 15 minutes• 3 questions par personnes– Qu’ai-je fais hier ?– Qu’est ce que je compte faire aujourd’hui ?– Quels obstacles je rencontre ?

49/75

Page 50: Introduction aux méthodes agiles

Sprint Review et démonstration

• Démonstration de l’incrément réalisé• Toute l’équipe participe• Tout le monde peut y assister– Feedback venant alimenter le product backlog

• Informel• Revue du sprint backlog

50/75

Page 51: Introduction aux méthodes agiles

Rétrospective

• Ateliers d’amélioration continue– Introspection– Adaptation

51/75

Page 52: Introduction aux méthodes agiles

Cycle de vie d’un projet Scrum

52/75

Page 53: Introduction aux méthodes agiles

EXTREME PROGRAMMINGXP

53/75

Page 54: Introduction aux méthodes agiles

Principes

• Pousse à l’extrême les bonnes pratiques d’ingénierie logicielle– Scrum n’aborde pas le sujet

• 5 Valeurs• 13 Pratiques

54/75

Page 55: Introduction aux méthodes agiles

5 Valeurs

• Communication• Simplicité• Feedback• Courage• Respect

55/75

Page 56: Introduction aux méthodes agiles

Communication

56/75

Page 57: Introduction aux méthodes agiles

Simplicité

• Minimiser la quantité de travail inutile• …

57/75

Page 58: Introduction aux méthodes agiles

Feedback

• Avoir un retour, et l’avoir très vite– Réunions d’équipe quotidienne– Démos avec le clients– Tests unitaires– Tests d’acceptance automatisés– …

58/75

Page 59: Introduction aux méthodes agiles

Courage

• S'attaquer aux problèmes tout de suite– ne pas les laisser « pourrir »

• Redévelopper si nécessaire• Appliquer les valeurs XP

59/75

Page 60: Introduction aux méthodes agiles

Respect

• Une personne n'a pas moins ou plus de valeur qu’une autre

• Tout le monde a voie au chapitre et toutes les contributions sont bienvenues

60/75

Page 61: Introduction aux méthodes agiles

13 pratiques interdépendantes

61/75

Page 62: Introduction aux méthodes agiles

Test Driven Development (TDD)

http://www.flickr.com/photos/agileinaction/6628138462/75

Page 63: Introduction aux méthodes agiles

Intégration continue (1/2)

63/75

Page 64: Introduction aux méthodes agiles

Intégration continue (2/2)

64/75

Page 65: Introduction aux méthodes agiles

Collective code ownership

• Qui est responsable de cette partie du code ?

http://www.flickr.com/photos/resilence/93774842/65/75

Page 66: Introduction aux méthodes agiles

Une méthode complète

• Un cycle de vie

• Des rôles– Client, développeur, coach, tracker, …

www.extremeprogramming.org66/75

Page 67: Introduction aux méthodes agiles

KANBAN

67/75

Page 68: Introduction aux méthodes agiles

Succinctement

• Un méta-processus non-prescriptif– Ne décrit pas la méthode de travail à suivre

• Démarre à partir de la méthode de travail préexistante, avec ces rôles, ces artefacts, …

• Décrit comment l’améliorer

• En flux continu– Pas d’itérations, mais des cadences

• Contrairement à Scrum, le tableau n’est jamais vide

• Avec travail en cours (W.I.P.) limité• Avec amélioration continue pas à pas (kaizen)

68/75

Page 69: Introduction aux méthodes agiles

69/75

Page 70: Introduction aux méthodes agiles

CONCLUSION

70/75

Page 71: Introduction aux méthodes agiles

Mash-up

• Adapter les approches et les pratiques au contexte

• Les combiner

71/75

Page 72: Introduction aux méthodes agiles

Relations

72/75

SimplesChaotiques

Complexes Compliqués

Classique

Agile

Page 73: Introduction aux méthodes agiles

Des équipiers en forme de T

73/75http://newcdn.flamehaus.com/Valve_Handbook_LowRes.pdf

Page 74: Introduction aux méthodes agiles

Pour aller plus loin

• Livres– Scrum, Claude Aubry– Kanban pour l’IT, Laurent Morisseau– eXtreme Programming Explained, Kent Beck

74/75

Page 75: Introduction aux méthodes agiles

QUESTIONS ?@gcollic / [email protected] / guillaumecollic.com