headerIcone

Patinaud.org


Le système d'information dans toute sa définition

Documentaires
Technologies
Législation
Normes et bonnes pratiques
 
Gestion de projet
 
 
Gouvernance
 
 
Modélisation
 
 
Sécurisation des SI
 
A propos de Patinaud.org

SCRUM



Les termes Agiles et Scrum sont très souvent liés pourtant ils possèdent chacun une définition bien distincte : - Agile est un ensemble de méthodes et de pratiques basées sur les valeurs et les principes du manifest Agiles créé en 2001. - Scrum est un framework (cadre de travail) implémentant la méthode Agile au travers de la mise en place de procédure concrètes. Il est défini est travers du Scrum guide.

Le framework Scrum

Scrum est défini par le Scrum Guide. Il s'agit d'un cadre de travail (et non un processus, technique ou méthode définitive) permettant de mettre en œuvre la méthode Agile. Il est constitué d’équipes Scrum et leurs rôles, événements, artefacts et règles associés. Les règles de Scrum sont les modalités qui lient rôles, événements et artefacts entre eux. Cependant si le Scrum Guide indique les éléments à réaliser, il n'indique pas comment les réaliser. Ce choix est laissé à chaque équipe. Scrum est fondé sur la théorie du contrôle empirique de processus, ou l'empirisme. L'empirisme affirme que la connaissance provient de l'expérience et ainsi donc à apprendre des erreurs passées. Et repose sur trois piliers : - la transparence : les différents éléments (techniques et organisationnels) du projet doivent être visibles et compréhensibles par tous. - l'inspection : ou plus tôt la supervision des différents artefact et de l'avancement du projet font partie des éléments du succès. - l'adaptation : Scrum est un framework Agile, l'adaptation et les changements en sont donc le moteur. Scrum définit même 4 événements permettant de prendre en compte le changement et d'intégrer de l'amélioration continue : les sprint planning, le daily, la review et la rétrospective. Ainsi que sur cinq valeurs : - Focus : signifie que chaque membre de l'équipe connait et se concentre sur l'objectif lors de chaque événement SCRUM. - Ouverture aux changements, cette valeur s'inscrit dans le cadre de l'adaptation et de l'agilité. - Respect mutuel entre chaque membre de l'équipe. Les décisions sont prises collégialement par l'ensemble de l'équipe et non par un seul dirigeant. - Courage d'entreprendre et de se tromper. L'amélioration continue et l'empirisme se base sur les erreurs passées, sans nouvelles expériences l'équipe ne progresse pas. - Engagement chaque membre de l'équipe doit être motivé dans la réussite du projet commun.

La composition d'une équipe Scrum

Une équipe Scrum est composée d'un Product Owner, d'une équipe de développement et d'un Scrum Master. Elle est auto-organisée et est pluridisciplinaires. La pluridisciplinarité de l'équipe lui permet de disposer de toutes les compétences nécessaires à la réalisation de son travail sans dépendre d'autres personnes externes à l'équipe.

Le Product Owner (PO)

Le Product Owner est une personne (et non un comité, même s’il peut en représenter les désirs) responsable de maximiser la valeur du produit résultant du travail de l’équipe de développement. C'est le seul responsable du Product backlog, ou “Backlog produit” en français (liste des tâches à développer dans le(s) prochain(s) sprint). La façon de jouer ce rôle peut varier grandement selon les organisations, les équipes Scrum et les individus. Il a donc pour responsabilité les actions suivantes : - L’expression claire des éléments du Product backlog, afin que ceux-ci soient facilement compréhensibles par l'ensemble des membres de l'équipe. - L’assurance que l'équipe de développement comprend adéquatement les éléments du Product backlog. Le PO doit s'assurer que l'équipe ai compris les éléments du Product Backlog. - L’ordonnancement des éléments dans le Product backlog pour mieux réaliser les objectifs et les missions. En fonction de la valeur ajoutée (d'un point de vue client) apporté par chacun des éléments. - L’optimisation de la valeur du travail effectué par l'équipe de développement. Grace au ratio temps nécessaire développement / valeur ajoutée de l'élément développé. - L’assurance que le Product backlog est visible, transparent et clair pour tous, et montre sur quoi l’équipe de développement travaillera prochainement. Le PO doit avoir et montrer une vision claire sur le travail réalisé et en cours de réalisation par l'équipe. Afin que le projet soit correctement mené, toute l'équipe doit respecter les décisions du PO et l'équipe ne doit travailler uniquement que sur les éléments indiqués dans le Product Backlog par le PO.

Les développeurs

Les développeurs désigne toutes les personnes faisant partie de l'équipe et nécessaires à la réalisation de l'incrémentdu sprint. Les incréments doivent être “fini” et potentiellement livrable/publiable à la fin de chaque Sprint. Un sprint ne peut pas se terminer sans incrément. Les équipes de développement sont autonomes et habilitées à se structurer d'elle-même selon leurs propres besoins et ce dans l'objectif d'améliorer leur efficience ainsi que leur efficacité. Une équipe développement possède les caractéristiques suivantes : - Auto-gérée : personne, ni même le Scrum master ne doit dire à l'équipe comment s'organiser, il peut cependant apporter son aide et son expérience en terme d'organisation mais c'est bien l'équipe qui choisie in fine comment s'organiser pour développer au mieux les éléments du backlog. - Pluridisciplinaire : l'équipe rassemble toutes les compétences nécessaires à la réalisation des éléments du backlog. - Pas de distinction entre les membres d'une même équipe : aucun titre n'existe au sein de l'équipe Scrum en dehors du travail effectué par une personne. - Une seule équipe : Il n'existe qu'une seule équipe de développement, il ne peut pas y avoir de sous équipe au sein de la même équipe. Cependant des personnes de l'équipe peuvent être affecté à un domaine particulier tel que l’exécution des tests, l'architecture, l'analyse fonctionnelle, ... - Responsabilité commune : Les personnes composant l'équipe peuvent disposer à titre individuelle de compétences spécifique mais c'est bien l'équipe dans son ensemble qui est responsable de l'avancement du projet. Concernant la taille de l'équipe de développement, celle-ci doit être suffisamment petite pour rester réactive sans que cela n'implique trop d'organisation et de coordination et être suffisamment grande pour pouvoir disposer des compétences nécessaires tout en produisant des résultats conséquents à la fin de chaque Sprint. Le Scrum Guide recommande donc que les équipes de développement soient composées de 3 à 9 membres. Le Product Owner ainsi que le Scrum Master ne sont compté comme membres de l'équipe de développement à moins que ceux-ci traitent également des tâches du back log.

Le Scrum Master

Véritable chef d'orchestre, il porte la méthodologie Scrum et aide chacun (Product Owner, équipement de développement, ...) à en comprendre la méthodologie ainsi que les différentes cérémonies et artefact. Il est par conséquent responsable du bon respect de la méthodologie. Il sert d'intermédiaire unique au près des partenaires externes, il assiste le Product Owner et aide l'équipe de développement dans son travail quotidien sans disposer d'aucun pouvoir managérial. Rôle du Scrum Master auprès du Product Owner Le Scrum Master aide le Product Owner sur plusieurs points dont notamment : • S'assurer que les objectifs, le périmètre et le domaine du produit sont compris par tous les membres de l'équipe Scrum de la meilleure façon possible ; • Trouver des techniques pour une gestion efficace du Backlog produit ; • Aider l'équipe Scrum à comprendre le besoin de clarté et concision des éléments du Backlog produit ; • Comprendre la planification de produits dans un contexte empirique ; • S'assurer que le Product Owner sait comment organiser le Backlog produit pour maximiser la valeur ; • Comprendre et mettre en œuvre l'agilité ; et, • Faciliter les événements Scrum, en cas de demande ou nécessité. Rôle du Scrum Master auprès de l'équipe de développement Le Scrum Master aide l'équipe de développement sur plusieurs points dont notamment : • Coacher l'équipe de développement en matière d'auto-organisation et de pluridisciplinarité ; • Aider l'équipe de développement à créer des produits de grande valeur ; • Supprimer les obstacles à la progression de l'équipe de développement ; • Faciliter les événements Scrum, en cas de demande ou nécessité ; et, • Coacher l'équipe de développement dans des environnements organisationnels où Scrum n'est pas encore complètement adopté et compris. Rôle du Scrum Master auprès de l'organisation Le Scrum Master travail aide l'organisation sur plusieurs points dont notamment : • Accompagner l'organisation dans son adoption de Scrum ; • Planifier les implémentations de Scrum au sein de l'organisation ; • Aider les employés et les parties prenantes à comprendre et adopter Scrum ainsi que le développement empirique de produits ; • Provoquer les changements qui augmentent la productivité de l'équipe Scrum ; et, • Collaborer avec d'autres Scrum Masters pour accroître l'efficacité de l'application de Scrum au sein de l'organisation

Les événements (réunions) SCRUM

Les événements sont conçus afin d'accomplir au mieux les piliers SCRUM (Inspection, Adaptabilité, Transparence) tout en réduisant au minimum les réunions externes à la méthodologie Scrum. Ils disposent d'une durée maximale (time boxé) et sont déclarés finis dès que leur objectif est atteint. Seul le Sprint dispose d'une durée fixe, il ne peut être ni allongé ni raccourci.

Le Sprint

SPRINT
DuréeJusqu'à un mois
ObjectifC'est l'évenement conteneur. Le sprint contient tous les autres événements et se termine par un incrément de produit potentiellement livrable.
PersonnesToute l'équipe SCRUM (PO + développeurs + SCRUM Master)
EntréeAucunne, un nouveau sprint commence dès que le précédent se termine
SortieLe sprint se termine dès sa durée expirée.
Un incrément de produit potentiellement déployable doit être produit durant le Sprint.
Le Sprint est l'événement central de la méthodologie SCRUM. D'une durée généralement fixée à 2 semaines et pouvant être étendue jusqu'à un mois, il s'agit de la période durant laquelle l'équipe de développement réalise les éléments du sprint backlog. Le Sprint peut alors être perçu indépendamment comme un projet à part entière. Il dispose de son propre objectif ainsi que de son propre délai. Le Sprint ne peut être ni allongé ni raccourci et doit se terminer par un incrément "Fini" (voir définition of done) du produit qui est potentiellement livrable. Dès qu'un Sprint se termine un second commence. Caractéristiques du Sprint L'objectif du Sprint ne doit pas être remis en cause. Cependant, si besoin, notamment lorsque les difficultés rencontrées par l'équipe de développement sont plus importantes qu'escomptées, il est possible de revoir conjointement avec le Product Owner le périmètre des éléments à développer (contenu du Sprint Backlog). Le niveau de qualité ne peut quant à lui jamais être revu à la baisse. Annulation d'un Sprint À titre exceptionnel un Sprint peut être annulé, mais seul le Product Owner a le pouvoir d'en décider. Il peut cependant être influencé par une ou des sources externes. Les éléments du Sprint backlog déjà réalisés durant le Sprint sont analysés afin de déterminer s’ils peuvent être ou non ajoutés au produit. Les éléments du Sprint backlog non réalisés sont alors remis dans le Product Backlog.

Le sprint planning

SPRINT PLANNING
Durée2 heures par semaine de Sprint (soit 8H pour un Sprint de 4 semaines)
ObjectifPremier événement du Sprint, le Sprint planning permet d'identifier et de planifier la charge de travail pouvant être faite durant le Sprint par les développeurs. En fonction de ces éléments l'équipe SCRUM peut définir et s'engager sur l'objectif de Sprint (Sprint Goal).
Les éléments à développer sont discutés et affinés avec le PO durant cet événement. Le Sprint planning doit aborder les trois thèmes suivants : - Pourquoi le Sprint est important ? - Que peut-on faire durant le Sprint ? -Comment le travail choisit sera réalisé ?
PersonnesObligatoirement les PO et les développeurs, le SCRUM Master est optionnel. L'équipe peut également demander la présence de membres externes à l'équipe afin d'obtenir des conseils. Mais seul les développeurs disent comment transformer un élément du product backlog en incrément personne d'autre ne peut leur dire comment travailler.
EntréeLe SCRUM Guide n'indique aucun élément comme étant obligatoire. Cependant, il conseille à ce que les participants soient prêt à discuter sur les éléments les plus importants du backlog.
SortieLe Sprint backlog doit être suffisamment alimenté et détaillé pour que les développeurs puissent commencer à travailler. Le but du Sprint (Sprint Goal) doit être défini pour la fin de l'événement.
Le sprint planning est le premier événement scrum d'un sprint. Il permet de planifier les actions qui seront réalisées dans celui-ci. Il répond aux trois questions suivantes : Pourquoi le sprint a de la valeur ? Le Product Owner propose comment le produit devrait accroître sa valeur et son utilité durant ce sprint. Toute l'équipe Scrum échange et définie alors le but du sprint. Qu'est-ce qu'il peut être fait durant le sprint ? En collaborant avec le Product Owner les développeurs choisissent alors les éléments du product backlog qui seront inclus dans le Sprint. Durant le processus le Product Owner et les développeurs peuvent rediscuter sur les éléments pour les affiner et s'assurer de leur bonne compréhension. Sélectionner la bonne quantité de travail pouvant être fournie durant un Sprint peut être compliqué. Mais plus l'équipe a de l'expérience, plus ses prévisions seront justes. Comment le travail va-t-il être fait ? Pour chaque élément du product backlog sélectionné pour être traité dans le prochain Sprint les développeurs planifient le travail nécessaire pour créer un incrément qui remplisse la définition of done (DOD). Cela revient fréquemment à décomposer les fonctionnalités du product backlog en sous taches pouvant être réalisées en une journée ou moins. Seul les développeurs ont la possibilité de dire comment le travail doit être effectué. Personne d'autre ne doit leur dire comment développer une tache.

Le daily

DAILY
Durée15 minutes peu importe la taille de l'équipe et la durée du Sprint
ObjectifInspecter la progression vers l'objectif du Sprint, identifier les points de blocage, améliorer la communication et favoriser la prise de décision rapide. Si nécessaire adapter le Sprint backlog en ajustant les futurs travaux planifiés.
PersonnesObligatoirement les développeurs. Le PO et le scrum master peuvent également y assister notamment si travaillent activement sur des taches du Sprint backlog, ils y participent alors en tant que développeur. Parcontre aucune personne externe à l'équipe ne peut assister au daily scrum.
EntréeAucunne, le daily est quotidien, à heure fixe et au même endroit
SortieProduire un plan d'action pour la prochaine journée de travail.
Le daily scrum est comme son nom l'indique une réunion quotidienne. Habituellement placée le matin et à heure fixe avec une durée maximale d'un quart d'heure cette réunion rassemble au minimum les développeurs de l'équipe ainsi que le PO et le scrum master lorsque ceux-ci travaillent activement sur des taches du Sprint backlog.

La Sprint Review

REVIEW
DuréeUn maximum de 4 heures pour un sprint d'un mois, et moins pour les sprints plus court
ObjectifLa review permet de présenter l'incrément produit durant le sprint à l'ensemble des parties prenantes.
Elle ne se limite pas à une simple démonstration, mais consiste en une véritable session de travail avec notamment le client pour identifier la progression vers l'objectif du produit. Les réflexions sont portées sur le développement du produit et les futures fonctionnalités.
Le product backlog peut par conséquent être ajusté durant cet événement.
PersonnesToute l'équipe SCRUM (PO + développeurs + SCRUM Master), ainsi que tous les intervenants externes désirant y participer.
EntréeLe résulat du travail du Sprint, c’est-à-dire l'incrément du Sprint
SortieAmélioration de la vision des clients sur l'avancée des développements (transparence).
Le product backlog peut être affiné et réajusté.

La Sprint rétrospective

RETROSPECTIVE
DuréeUn maximum de 3 heures pour un sprint d'un mois, et moins pour les sprints plus court
ObjectifRéfléchir à des pistes pour améliorer la qualité et l'efficacité de l'équipe.
PersonnesObligatoirement toute l'équipe SCRUM (PO + développeurs + SCRUM Master). Aucun intervenant externe ne doit être invité à la retrospective.
EntréeAucune
SortieRien d'obligatoire depuis la version du SCRUM Guide 2020 même si cela reste recommandé.

Les artefacts

Scrum définit trois artefacts, chaque artefact peut être considéré comme un “objet” ayant chacun un objectif à atteindre.

Le Product Backlog

Engagement : le Product Goal (l'objectif de produit en français). Il s'agit du but que le produit essaie d'atteindre, tel qu’offrir un nouveau service, conquérir des parts de marchés, ...

Le Sprint Backlog

Engagement : le Sprint Goal (l'objectif du sprint en français), il s'agit de l'objectif à atteindre durant le Sprint, tel que le développement d'une nouvelle fonctionnalité.L'incrément produit durant le sprint doit répondre à ce Sprint Goal Le Sprint Goal est défini durant le Sprint Planning quand les développeurs ont identifiés ce qu'il est possible de réaliser durant le Sprint.

Incrément

Engagement : atteindre la definition of done

Trucs et astuces de SCRUM

Certains éléments de la vie réelle d'une équipe ne sont pas ou peu définis par le SCRUM Guide. Cependant l'organisme SCRUM.org y apportent des réponses en respectant les percept SCRUM.

Organisation de l'équipe

L'équipe grossit et dépasse le nombre de 10 membres recommandé, que faire ? Découper l'équipe en deux équipes indépendantes. Le choix de l'organisation du découpage est laissé à l'équipe SCRUM (PO + développeurs + SCRUM Master). Les deux équipes doivent être indépendantes. Elles doivent disposer de toutes les compétences requises pour développer les nouvelles fonctionnalités (incréments) à la fin de chaque Sprint. Chaque équipe dispose alors de son propre Sprint backlog. Si les deux nouvelles équipes partagent le même produit, alors elles devraient avoir le même Product Owner ainsi que le même Product Backlog. Un nouveau développeur doit arriver, quel est le meilleur moment ? Le Scrum Guide ne définit pas d'événement pour l'arrivée d'un nouveau membre de l'équipe. Un développeur doit quitter l'équipe ou être remplacé, que faire ? Un développeur peu quitter l'équipe quand cela est nécessaire (baisse de budget, fin d'un projet, ...), SCRUM ne prévoit pas d'événement particulier pour un départ ou un remplacement.

Communication

Un développeur ne s'entend pas avec le reste de l'équipe et les conflits sont fréquents, que faire ? Les développeurs doivent dans un premier temps tenter de résoudre ce problème entre eux. Si le problème persiste ils peuvent demander conseil au SCRUM Master, il est en effet de la responsabilité de ce dernier de supprimer les points de blocage de l'équipe. La communication entre le Product Owner et les développeurs est compliquée, que faire ? Le SCRUM Master ayant un rôle de facilitateur, il est de son devoir de réussir à améliorer la communication entre le Product Owner et les développeurs.

Traitement d'un nouveau besoin

Les développeurs sont contactés directement par un responsable (project manager) pour traiter un nouveau besoin (urgent), que faire ? Seul le Product Owner peut décider du contenu du Product Backlog et par conséquent du Sprint Backlog. Il est le point d'entré de chaque nouveau sujet. Il faut donc l'avertir afin qu'il puisse prendre une décision et indiquer au responsable de passer par le Product Owner. Le Product Owner veut absolument faire entrer une nouvelle tâche (item) urgente dans le Sprint, que faire ? Le Product Owner aurait dû identifier cette tâche avant le Sprint planning et la faire entrer à ce moment là dans le Sprint Backlog. Cependant, si cette tâche n'a pas pu être anticipée, celle-ci pourra être ajouté au Sprint en cours (dans le Sprint Backlog) à la condition qu'elle ne remette pas en cause l'objectif de Sprint (Sprint Goal). Dans ce cas le Product Owner doit voir avec les développeurs s’ils disposent de la capacité de traiter cette tache. Si ce n'est pas le cas le Product Owner et les développeurs devront échanger une tache (item) du Sprint Baclog du même poids par cette nouvelle tâche.

Responsabilités et mise en production

Qui prend la décision et est responsable d'envoyer une nouvelle release en production ? Seul le PO, conseillé par les développeurs prend la décision de livrer une nouvelle release en production. Car cela revient à ouvrir de nouvelles fonctionnalités au client et donc à modifier la valeur du produit dont il est responsable. Quand livrer en production ? Le Product Owner peut prendre la décision de livrer en production un incrément ou un ensemble d'incrément quand cela lui semble opportun, y compris en cours de Sprint. Une anomalie non détectée a entrainé un incident en production, qui est responsable ? L'ensemble de l'équipe, car la responsabilité est partagée entre tous les membres de l'équipe. Pour rappel les taches du sprint backlog appartiennent à toute l'équipe et non à une seule personne.

Événements et artefact

Comment définir la définition of done ( DOD ) ? Quand deux équipes ou plus travaillent sur le même produit, elles doivent alors disposer d'une même définition of done ( DOD ). Cette DOD commune à l'ensemble des équipes de l'organisation doit assurer la compatibilité des développements de chaque équipe. Si l'équipe est seule, elle peut alors décider de sa propre definition of donne. Un changement doit être effectué sur des tâches du Sprint backlog, que faire ? Le Sprint backlog peut évoluer en cours de Sprint en fonction des événements, toutes nouvelles doivent être vues et discutées avec le PO. Cependant l'objectif de Sprint doit rester inchangé et la qualité ne doit jamais être revu à la baisse. Peut-on prolonger un Sprint ? Non, un Spint une durée fixe. Il ne peut jamais être allongé ou raccourci. Si aucun incrément de produit n'a pas être produit durant le Sprint l'équipe doit considérer avoir échouée. Elle devra donc lors de la rétrospective identifier les points de blocage l'ayant empêché de pouvoir produire un incrément et y apporter un plan de correction pour le prochain sprint. Les taches du Sprint backlog non terminées avant la fin du Sprint peuvent être reportées au Sprint suivant. Lorsque toutes les taches du Sprint backlog sont terminées avant la fin du Sprint de nouvelles peuvent être ajoutées, du moment où ces nouvelles taches respecte l'objectif du Sprint. Peut-on arrêter un Sprint ? À une seule condition, que l'objectif du Sprint devienne obsolète. Et seul le Product Owner peut en prendre la décision.s