Ce livre s'adresse à toute personne souhaitant mettre en application ou travailler avec Scrum. Il a pour objectif de présenter cette méthode agile, la plus utilisée, sous ses aspects théoriques et pratiques afin que les lecteurs disposent des connaissances nécessaires pour la mettre en place lors de leurs futurs projets ou pour occuper efficacement leur rôle, quel qu'il soit, sur un projet Scrum. Cette nouvelle édition est actualisée...
Ce livre s'adresse à toute personne souhaitant mettre en application ou travailler avec Scrum. Il a pour objectif de présenter cette méthode agile, la plus utilisée, sous ses aspects théoriques et pratiques afin que les lecteurs disposent des connaissances nécessaires pour la mettre en place lors de leurs futurs projets oupour occuper efficacement leur rôle, quel qu'il soit, sur un projet Scrum. Cette nouvelle édition est actualisée selon la version du Guide Scrum officiel de novembre 2017.
Après un bref rappel sur les méthodes de gestion de projet traditionnelles (Cascade, Cycle en V) et leurs limites qui ont abouti à la naissance des approches agiles, l'auteur présente des méthodes apparentées à Scrum aussi bien en termes de concepts que d'outils pratiques (Lean Management, Kanban ou bien encore l'eXtreme Programming).
Dans les chapitres suivants, après avoir fait un tour d'horizon de la méthode Scrum, permettant au lecteur d'en avoir rapidement une vue globale, l'auteur s'attarde sur les spécificités de l'équipe Scrum avec les rôles et responsabilités qui en découlent, puis explore en détail les pratiques Scrum : formuler et ordonner les besoins, planifier et estimer la duréedes différentes phasesdu projetafin d'en construire les plans, gérer le cycle de vie et le suividu projet et enfin tester ce qui est développé.
En plus de cet apprentissage proprement dit de la méthode, l'auteur a choisi de donner au lecteur des éléments qui l'aideront à aborder la problématique, parfois épineuse, du déploiement de Scrum et de la gestion du changement qui en découle.
Enfin, deux chapitres permettent d'explorer des pistes pour aller plus loin. L'un aborde les outils logiciels qui peuvent être très utiles dans le cadre de la gestion des projets Scrum, l'autre apporte des réponses concrètes à des questions que l'on peut souvent se poser dans la mise en œuvre pratique de Scrum : Quelles sont les méthodes pour le déployer sur plusieurs équipes ? Quelles sont les différences et complémentarités entre Scrum et Kanban ? Quels rapports entre Scrum et DevOps ? Comment contractualiser avec Scrum ?
Enfin, cet ouvrage se termine par un questionnaire qui permettra au lecteur de vérifier ses connaissances et d'identifier les points qu'il n'aurait pas bien assimilés. Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
De la gestion de projet traditionnelle à l’Agilité
1. Introduction
2. Quelques faits et chiffres
3. Le modèle de gestion de projet "en cascade"
4. Le modèle (ou cycle) en V
4.1 La théorie
4.2 La mise en pratique du modèle en V
4.3 Les rôles
4.4 Notion d'effet tunnel
5. L'Agilité au cœur des projets
5.1 Un peu d'histoire
5.2 Les valeurs
5.3 Les 12 principes sous-jacents
5.4 L’Agilité, ce n’est pas l’anarchie...
6. Scrum, un cadre de travail Agile
7. Information, formation et certifications
8. Pour conclure
Lean, Kanban et eXtreme Programming
1. Un chapitre nécessaire
2. Liens de parenté entre les méthodes
3. Le Lean Management
3.1 Objectif du Lean
3.2 Les 14 principes du Lean
4. Le Kanban
4.1 Principes du Kanban
4.2 Le Kanban pour le développement de logiciel
4.3 Kanban et Scrum
5. La méthode XP ou eXtreme Programming
5.1 Les principes de base
5.2 Les pratiques d'eXtreme Programming
5.2.1 Livraisons fréquentes
5.2.2 Rythme durable
5.2.3 Client sur site
5.2.4 Conception simple
5.2.5 Mise en place de règles de codage
5.2.6 L'équipe est responsable du code
5.2.7 Utilisation de tests unitaires
5.2.8 Test de recette
5.2.9 Mise en place de l'intégration continue
5.2.10 Réaliser du refactoring de code
5.2.11 Programmation en binôme (Pair Programming)
5.2.12 Estimation à l'aide du Planning Poker
5.2.13 Utilisation de métaphores et analogies
5.3 Cycle d'eXtreme Programming
6. Scrum, un mix des méthodes
Tour d'horizon de Scrum
1. Naissance de Scrum
2. Scrum en quelques mots
2.1 Les valeurs Scrum
2.2 L'équipe
2.3 Les trois piliers de Scrum
2.3.1 Transparence
2.3.2 Inspection
2.3.3 Adaptation
2.4 Les événements (cérémoniaux)
2.4.1 Le Sprint
2.4.2 La réunion de planification de Sprint
2.4.3 La mêlée quotidienne
2.4.4 La revue de Sprint
2.4.5 La rétrospective de Sprint
2.5 Les artefacts
2.5.1 Backlog Produit
2.5.2 Backlog de Sprint
2.5.3 Suivi de la progression
3. Cycle de vie de Scrum
4. Coût, délai et périmètre
5. Conclusion
L'équipe Scrum
1. L’équipe, point central de Scrum
1.1 Équipe auto-organisée
1.2 Équipe pluridisciplinaire
2. Le Scrum Master
2.1 Les responsabilités du Scrum Master
2.1.1 Application de Scrum
2.1.2 Lever les obstacles
2.1.3 Optimiser les interactions
2.1.4 Leader du changement
2.2 La personnalité et les compétences du Scrum Master
2.2.1 Connaître Scrum
2.2.2 Être un leader
2.2.3 Être communicant
2.2.4 Avoir des capacités de médiation
2.2.5 Jouer la transparence
3. Le Product Owner
3.1 Les responsabilités du Product Owner
3.1.1 Créer la vision du produit
3.1.2 Gérer le Product Backlog
3.1.3 Maximiser la valeur du produit et du travail de l’équipe
3.1.4 Définir le plan de Release
3.1.5 Implication dans le processus Scrum
3.1.6 Accepter ou non le résultat d'un Sprint
3.1.7 Ses pouvoirs et limites
3.2 La personnalité et les compétences du Product Owner
3.2.1 Posséder des connaissances fonctionnelles
3.2.2 Être organisé
3.2.3 Avoir des capacités de prise de décision
4. L'équipe de réalisation
4.1 Généralités
4.2 Caractéristiques
4.2.1 Auto-organisée et multi-disciplinaire
4.2.2 Taille de l’équipe
5. Et les autres rôles, alors ?
5.1 La disparition du chef de projet...
5.2 Les autres rôles
6. Bien constituer l’équipe : quelques pistes...
7. Créer les conditions de la réussite
7.1 Rassembler pour gagner
7.2 Cas d'une équipe morcelée
8. Conclusion
Construire et prioriser le Product Backlog
1. Pourquoi investir dans le Product Backlog ?
2. La brique de base du Product Backlog : la User Story
3. Comment rédiger les User Stories et Epics ?
3.1 Règle des 3C
3.2 Rédiger une bonne User Story : le principe INVEST
3.3 Erreurs courantes
3.4 La Story technique : solution ou aveu d’échec ?
3.5 Identifier les fonctionnalités clés avec le Product Box
3.5.1 Objectifs
3.5.2 Mode opératoire
3.6 Une méthode efficace de découverte du Product Backlog : le Story Mapping
3.6.1 Le Story Mapping, c’est quoi ?
3.6.2 Story Mapping illustré par un exemple
3.7 Principes de priorisation du Product Backlog
3.7.1 Pourquoi prioriser ?
3.7.2 Approche générale de la priorisation
3.7.3 Les facteurs qui influencent la priorisation
3.7.4 Survol des méthodes de priorisation
3.8 Zoom sur la priorisation par les thèmes
3.8.1 Theme Screening (sondage des thèmes)
3.8.2 Theme Scoring (mesure des thèmes)
3.8.3 Priorisation des thèmes par l'utilisation de poids relatifs
3.9 Zoom sur la priorisation par l’utilisation du modèle de Kano
3.10 Zoom sur la méthode MoSCoW
3.11 Zoom sur la méthode WSJF
4. Gérer son Backlog en pratique
5. Conclusion
Planifier et estimer
1. Des pratiques à ne surtout pas négliger
2. Pourquoi la planification traditionnelle échoue
3. Horizons de planification
4. Outils d’estimation
4.1 T-Shirt sizing
4.2 Les story points
4.3 Alors, story point ou jh ?
4.4 Notion de vélocité
4.5 Comment initialiser la vélocité ?
4.5.1 Mise en place d'un projet test
4.5.2 Choisir au feeling
4.5.3 Estimation de la vélocité à partir de l’historique
4.6 Qui estime ?
4.7 Une méthode pratique d’estimation : le Planning Poker
4.7.1 Le déroulement du Planning Poker
4.7.2 Bénéfices et risques
4.7.3 Erreurs communes
4.7.4 Découper pour bien estimer : Atelier Carpaccio
5. Planification de Release
5.1 Avoir un objectif clair
5.2 Posséder un Product Backlog priorisé
5.3 Estimer le Product Backlog
5.4 Connaître la vélocité de l'équipe
5.5 Définir la fin
5.6 Définir la durée des Sprints
5.7 Créer le plan de Release
6. Conclusion
La vie d'un Sprint
1. Introduction
2. Quelle durée pour les Sprints ?
3. Doit-il y avoir un Sprint 0 ?
4. Le rythme du Sprint : vue d’ensemble
5. Préparation du Sprint
5.1 Environnement de travail
5.2 Équipe
5.3 Définition de « Terminé »
6. Réunion de planification de Sprint
6.1 Pourquoi la présence du Product Owner est-elle importante ?
6.2 Definition of Ready
6.3 Première étape : présentation des User Stories
6.4 Deuxième étape : quel travail sera réalisé durant le Sprint ?
6.5 Troisième étape : comment réaliser le travail prévu ?
6.5.1 Estimation des tâches
6.5.2 Affectation des tâches
6.6 La gestion du temps
6.7 Et les corrections de bugs ?
6.8 Backlog Grooming
7. Mêlée quotidienne (Scrum Meeting/Daily Scrum)
7.1 Un protocole à respecter
7.2 Une mêlée efficace et utile...
7.3 Le Scrum Master toujours à l'écoute !
7.4 Suivi de l’avancement
7.5 Je n'ai plus rien à faire !
7.6 L'objectif du Sprint sera-t-il atteint ?
8. La revue de Sprint (Sprint Review)
8.1 Qui, quoi, combien de temps ?
8.2 Un objectif, une motivation
8.3 Démontrer ce qui n’est pas démontrable...
9. La rétrospective de Sprint
9.1 Une méthode pour vous aider
9.2 État d’esprit
9.3 Environnement de la rétrospective
9.4 Méthode numéro 1 : Kick Drop Start
9.5 Méthode « classique »
9.6 Présentation « en étoile »
9.7 Le SpeedBoat
9.8 Autres méthodes
10. Laisser l'équipe se reposer
11. Et si on recommençait ?
Tester en mode Agile
1. Adopter Scrum : quel impact sur la stratégie de test ?
2. Typologies de tests
2.1 Tests fonctionnels de validation
2.1.1 Critères de validation
2.1.2 Les données de tests et scénarios
2.1.3 Les tests de validation et les User Stories
2.2 Tests de non-régression
2.3 Tests d'IHM (interface homme-machine)
2.4 Tests fonctionnels « de bout en bout »
2.5 Tests de composants
2.6 Tests unitaires
2.7 Test-Driven Development
2.8 Acceptance Test-Driven Development
3. Anti-pattern : le cornet de glace
4. La pyramide de tests idéale
4.1 Trouver du temps pour l'écriture
4.2 Faut-il écrire les tests de toutes les User Stories ?
4.3 Comment écrire les tests ?
4.4 Definition of Done et tests d’acceptation
5. Les testeurs dans l’équipe Scrum
5.1 Le test fait partie de l’équipe
5.2 Testeur Agile : un métier en mutation
6. En conclusion : écrivez des tests !
Conseils pour déployer Scrum
1. Comment mener le changement vers Scrum ?
2. État des lieux
2.1 Adoption des méthodes Agiles
2.1.1 Scrum largement déployé
2.1.2 Les motivations pour l’adoption de Scrum
2.1.3 Comment Scrum est pratiqué ?
2.1.4 Succès et challenges
2.2 Un bilan positif
3. La motivation
4. Big-Bang ou déploiement progressif ?
5. Scrum et l’organisation en place
5.1 Que faire des responsabilités existantes ?
5.2 La structure
6. En finir avec les idées reçues
6.1 Scrum n'est pas une approche structurée
6.2 Il n'existe pas de notion de planification
6.3 Scrum bannit la documentation
6.4 Avec Scrum, nous passons trop de temps en réunion
7. Le soutien du management
8. Vaincre les résistances à la conduite de changement
8.1 Résistance d'intérêt ou politique
8.2 Résistance de confort
8.3 Résistance d'incapacité ou affective
9. Utiliser les Serious Games pour faciliter le déploiement
9.1 Pour briser la glace...
9.1.1 Le secret du succès
9.1.2 On se classe par âge
9.1.3 Le réseau social papier
9.2 Le Marshmallow Challenge
10. Se faire accompagner
11. Nos conseils en guise de conclusion
Scrum à l'aide d'un logiciel
1. Faut-il obligatoirement utiliser un logiciel ?
2. Tour d’horizon des outils de gestion de projets Scrum
2.1 Jira
2.2 Axosoft
2.3 iceScrum
2.4 Tuleap
3. Autres outils utiles
3.1 Story Mapping
3.2 Pour les rétrospectives d'équipes distribuées : IdeaBoardz
3.3 Outils de collaboration d’équipe
4. Conclusion
Aller plus loin
1. Avant-propos
2. Mise à l’échelle de Scrum
2.1 LeSS
2.1.1 Les principes de base
2.1.2 Qu'est-ce qui est différent de Scrum dans LeSS ?
2.1.3 Notre avis sur LeSS
2.2 SAFe
2.2.1 Introduction
2.2.2 Les fondations
2.2.3 Le niveau « Équipe »
2.2.4 Le niveau « Programme »
2.2.5 Le niveau « Gestion de portefeuille »
2.2.6 Notre avis sur SAFe
2.3 La méthode Spotify
2.3.1 Description du modèle
2.3.2 L’équipe
2.3.3 Les tribus
2.3.4 Les guildes et chapitres
2.3.5 Notre avis sur le modèle Spotify
3. Scrum et Kanban
3.1 Différences entre les deux méthodes
3.2 Mixer ou non les approches...
3.2.1 Quelques considérations générales
3.2.2 Un hybride de plus en plus utilisé : ScrumBan
3.2.3 Faire son choix...
4. Scrum et DevOps
5. Scrum et contractualisation
5.1 Contradictions
5.2 Créer les conditions de la confiance
5.3 Répondre à un appel d'offres
5.4 Mise en place d'un plan d'assurance qualité (PAQ)
5.5 Contractualisation par Sprint
5.5.1 Comment calculer le coût d'un Sprint ?
5.5.2 Quid des User Stories non livrées ?
5.5.3 Gestion des bugs et « non-validation » de User Stories
5.6 Différentes formes de contrats envisageables
5.6.1 Coûts variables
5.6.2 Coûts fixes, périmètre variable
5.6.3 Coûts fixes, périmètre fixe
5.6.4 Coûts fixes, périmètre fixe mais avec ajustement
5.6.5 Budget par itération
5.6.6 Utilisation d'une marge de profit
5.6.7 Mise en place de pénalités
5.6.8 Travail collaboratif
5.6.9 Money For Nothing (payer pour rien) et Change For Free (changement offert)
5.7 Exemple de contrat type
Vérifiez vos connaissances
1. Pourquoi ce questionnaire ?
2. Les questions
3. Les réponses
4. L'heure du résultat
5. Il est temps de se quitter
Index
Jean-Paul SUBRA
Jean-Paul SUBRA est ingénieur Supélec et travaille depuis plus de 20 ans dans l'industrie du logiciel. Après plus de 10 ans en tant que responsable d'équipes de développement, en DSI et chez des éditeurs de logiciels, il exerce depuis 2009 dans un environnement Agile. En 2015, il crée son activité de conseil, SoftMethods, dont la mission est d'aider les entreprises qui produisent du logiciel à mettre en œuvre les méthodes les plus efficaces possibles dont Scrum fait évidemment partie.