Académique Documents
Professionnel Documents
Culture Documents
Tranches
Comment nous appliquons Scrum
Ecrit par :
Henrik Kniberg
Guillaume Mathias
Bruno Orsier
Emmanuel Etasse
Christophe Bunn
http://bruno-orsier.developpez.com
http://homoagilis.blogspot.com
Remerciements
Le premier brouillon de ce papier a t tap en un week-end seulement,
mais ce fut un sacr week-end ! Focalisation 150% :o)
Merci ma femme Sophia et mes enfants Dave et Jenny pour avoir
support mon asocialit ce week-end, et aux parents de Sophia, Eva et
Jrgen, pour tre venus aider prendre en charge la famille.
Merci galement mes collgues de Crisp Stockholm et aux gens sur le
groupe yahoo scrumdevelopment pour avoir corrig le papier et pour
mavoir aid lamliorer.
Et, finalement, merci tous mes lecteurs qui ont fourni un flux constant
de feedback utile. Je suis particulirement content dentendre que ce
papier a incit autant dentre vous essayer le dveloppement de logiciels
agile !
iii
INTRO ............................................................................................................7
AVERTISSEMENT ..........................................................................................8
POURQUOI JAI ECRIT CECI ...........................................................................8
MAIS SCRUM, QU'EST-CE QUE C'EST ? ..........................................................9
COMMENT NOUS FAISONS LES BACKLOGS DE PRODUIT..........11
CHAMPS D'HISTOIRE SUPPLEMENTAIRES ....................................................13
COMMENT NOUS GARDONS LE BACKLOG DE PRODUIT A UN NIVEAU METIER
...................................................................................................................14
COMMENT NOUS PREPARONS LA REUNION DE PLANNING DU
SPRINT.........................................................................................................16
COMMENT NOUS FAISONS LES PLANNINGS DE SPRINT.............19
POURQUOI LE DIRECTEUR DE PRODUIT DOIT Y ASSISTER ............................19
POURQUOI LA QUALITE N'EST PAS NEGOCIABLE .........................................21
LES REUNIONS DE PLANNING DE SPRINT QUI S'ETERNISENT... .....................22
LORDRE DU JOUR DE LA REUNION DE PLANNING DE SPRINT ......................23
LE CHOIX DE LA DUREE DU SPRINT .............................................................24
LA DEFINITION DU BUT DU SPRINT .............................................................25
LE CHOIX DES HISTOIRES A INCLURE DANS LE SPRINT ................................26
COMMENT LE DIRECTEUR DE PRODUIT PEUT-IL EXERCER UNE INFLUENCE
SUR LES HISTOIRES QUI IRONT DANS LE SPRINT ?........................................27
COMMENT LES EQUIPES CHOISISSENT-ELLES LES HISTOIRES A INCLURE DANS
LE SPRINT? .................................................................................................29
POURQUOI NOUS UTILISONS DES FICHES.....................................................35
DEFINITION DE TERMINE ........................................................................38
LESTIMATION DE TEMPS AVEC LE POKER DE PLANNING ............................38
LA CLARIFICATION DES HISTOIRES .............................................................40
LA DECOMPOSITION DES HISTOIRES EN PLUS PETITES HISTOIRES................42
LA DECOMPOSITION DES HISTOIRES EN TACHES .........................................42
LE CHOIX DU LIEU ET LHEURE POUR LA MELEE QUOTIDIENNE...................44
OU TRACER LA LIMITE ? .............................................................................44
LES HISTOIRES TECHNIQUES .......................................................................45
SYSTEME DE SUIVI DE BUG VS. BACKLOG DE PRODUIT ...............................48
LA REUNION DE PLANNING DE SPRINT EST FINALEMENT TERMINEE !..........49
COMMENT NOUS COMMUNIQUONS SUR LES SPRINTS...............51
L'apport du livre d'Henrik est que, si vous suivez les pratiques dcrites,
vous aurez un Directeur de produit, des estimations pour votre Backlog de
produit, une Courbe du reste faire, et vous connatrez la vlocit de
votre quipe ainsi que de nombreuses autres pratiques essentielles pour un
Scrum dangereusement oprationnel. Vous passerez le test Nokia pour
Scrum et serez digne de l'investissement dans votre travail. Si vous tes
une startup, vous pouvez mme bnficier du financement d'une socit
capital-risque. Vous serez peut-tre le futur du dveloppement logiciel et
le crateur d'une nouvelle gnration d'minents logiciels.
Jeff Sutherland,
Ph.D., Co-Crateur de Scrum
INTRO | iii
Cest par cette focalisation sur le faire plutt que le thoriser que
se distingue ce livre. Il est facile de sapercevoir que Henrik Kniberg la
bien compris ds le dbut. Il ne fait pas de longs discours sur ce quest
Scrum ; pour a, il se rfre des sites faciles comprendre. Au lieu de
cela, Henrik entre dans le vif du sujet et commence directement dcrire
comment son quipe gre et travaille son carnet de produit. A partir de l,
il parcourt tous les autres lments et les pratiques dun projet agile bienportant. Pas de thorie. Pas de rfrence. Pas de note de bas de page.
Aucun besoin de cela. Le livre dHenrik nest pas un expos
philosophique expliquant pourquoi Scrum marche ou pourquoi vous
voudriez utiliser ceci ou cela. Il sagit dune description sur comment une
certaine quipe agile efficace travaille.
1
Intro
Vous tes sur le point d'utiliser Scrum dans votre organisation. Ou peuttre vous avez dj utilis Scrum pendant quelques mois. Vous avez les
bases, vous avez lu les livres, peut-tre que vous avez mme obtenu votre
certification de Scrum Master. Flicitations !
Mais pourtant vous ressentez de la confusion.
Selon les mots de Ken Schwaber, Scrum n'est pas une mthodologie, c'est
un cadre. Ce qui signifie que Scrum ne va pas rellement vous dire
exactement ce que vous devez faire. Zut.
La bonne nouvelle c'est que je vais vous dire comment je pratique Scrum,
dans les plus petits dtails. La mauvaise nouvelle est qu'il s'agit
uniquement de comment je pratique Scrum. Cela ne signifie pas que vous
devriez faire exactement la mme chose. En fait je pourrais mme le faire
d'une autre manire si je rencontrais une autre situation.
La force et la douleur de Scrum est que vous tes obligs de l'adapter
votre situation particulire.
Mon approche actuelle de Scrum est le rsultat d'une anne
d'exprimentation dans une quipe de dveloppement d'environ 40
personnes. L'entreprise tait dans une situation difficile avec beaucoup
d'heures de travail supplmentaires, de graves problmes de qualit, des
incendies teindre constamment, des dates de livraison manques,
etc. L'entreprise avait dcid d'utiliser Scrum, mais n'avait pas termin son
implmentation, ce qui devait tre mon travail. Pour la plupart des
membres de l'quipe de dveloppement l'poque, Scrum tait juste un
trange mot la mode entendu de temps en temps dans les couloirs, sans
relle implication sur leur travail quotidien.
Avertissement
Ce document ne prtend pas reprsenter la bonne manire de pratiquer
Scrum. Il reprsente seulement une faon de pratiquer Scrum, le rsultat
d'une anne de perfectionnement constant. Vous pourriez mme dcider
que nous avons tout faux.
Tout le contenu de ce document reflte mes opinions personnelles et
subjectives, et n'est en aucune faon une dclaration officielle de Crisp ou
de mon client actuel. Pour cette raison j'ai intentionnellement vit de
mentionner des personnes ou des produits spcifiques.
INTRO | 9
J'espre que ce papier va susciter un feedback utile de la part de ceux qui
sont dans la mme situation. Eclairez-moi s'il vous plat !
2
Comment nous faisons les backlogs de
produit
Le Backlog de produit est le cur de Scrum. C'est l o tout commence.
Le Backlog de produit est en gros une liste priorise d'exigences,
d'histoires, de caractristiques ou autre. Des choses que le client veut,
dcrites selon la terminologie du client.
Nous appelons a des histoires, ou parfois simplement des lments du
backlog.
Nos histoires incluent les champs suivants :
Notes
Ncessite un
diagramme de
squences
UML. Ne pas
se soucier du
cryptage pour
l'instant.
Utiliser la
pagination
pour viter
Faire un dpt.
Revenir aux
transactions, vrifier
que le nouveau
dpt apparat.
des requtes
volumineuses
. Conception
semblable
la page des
utilisateurs.
Nous avons expriment beaucoup d'autres champs, mais la fin, les six
champs ci-dessus taient les seuls que nous utilisions sprint aprs sprint.
Nous faisons habituellement un document Excel avec le partage activ
(c'est--dire que plusieurs utilisateurs peuvent modifier le fichier en mme
temps). Officiellement le directeur de produit possde ce document, mais
nous ne voulons pas verrouiller l'accs aux autres utilisateurs.
Rgulirement un dveloppeur veut ouvrir le document pour clarifier
quelque chose ou changer une estimation.
Pour la mme raison, nous ne plaons pas le document dans le dpt de
contrle de version ; nous le plaons dans un rpertoire partag plutt.
Ceci semble la manire la plus simple d'autoriser les modifications
simultanes sans causer des verrous ou des conflits de rconciliation.
Cependant, presque tous les autres artefacts sont placs dans le systme de
contrle de version.
3
Comment nous prparons la runion de
planning du sprint
OK, le jour de planification du sprint arrive rapidement. Une leon que
nous rapprenons sans cesse est :
Leon : Faites en sorte que le backlog de produit soit en ordre avant cette
runion de planification du sprint.
Et qu'est-ce que cela signifie ? Que toutes les histoires doivent tre
parfaitement dfinies ? Que toutes les estimations doivent tre correctes ?
Que toutes les priorits doivent tre fixes ? Non, non et non ! Tout ce que
cela veut dire est :
4
Comment nous faisons les plannings de
sprint
Le planning de sprint est une runion critique, probablement l'vnement
le plus important dans Scrum (d'aprs mon opinion subjective bien sr).
Une runion de planning de sprint mal excute peut perturber un sprint
complet.
Le but de la runion de planning de sprint est de donner l'quipe
suffisamment d'informations pour qu'elle soit capable de travailler
paisiblement, sans drangements pendant quelques semaines, et de donner
au directeur de produit suffisamment de confiance pour les laisser faire.
OK, c'est un peu flou. Concrtement, la fin de cette runion on doit
avoir :
En gnral, un systme avec une qualit interne leve peut tout de mme
avoir une qualit externe faible. Mais un systme avec une faible qualit
interne aura rarement une qualit externe leve. Il est difficile de btir
quelque chose de bien sur des fondations pourries.
Je traite la qualit externe comme faisant partie de la porte. Dans certains
cas il peut y avoir d'excellentes raisons pour livrer une version du systme
qui aurait une interface utilisateur lente et peu lgante, et livrer ensuite
une version nettoye plus tard. Je laisse ce compromis au directeur de
produit, puisqu'il est responsable de dfinir la porte.
Toutefois la qualit interne n'est pas sujette discussion. C'est la
responsabilit de l'quipe de maintenir la qualit du systme dans toutes
les circonstances et ceci est simplement non ngociable. Jamais.
(Eh bien, OK, presque jamais)
Lintuition marche plutt bien pour des petites quipes et des sprints
courts.
Dans ce cas lquipe peut choisir les 4 histoires en tte pour un total de 19
points dhistoire, ou les 5 histoires en tte pour un total de 24 points.
Disons quils choisissent 4 histoires, car cela est le plus proche de 20
points. En cas de doute, choisissez moins dhistoires.
Comme ces 4 histoires font au total 19 points dhistoires, leur vlocit
estime finale pour ce sprint est 19.
La mto de la veille est une technique pratique mais utilisez la avec une
dose de bon sens. Si le dernier sprint tait anormalement mauvais car la
plupart des membres de lquipe tait malade pendant une semaine, alors
il serait prudent de considrer que vous ne serez pas malchanceux une
seconde fois et vous pourrez estimer un facteur de focalisation plus lev
pour le prochain sprint. Si lquipe a mis en place rcemment un nouveau
systme dintgration continu aussi rapide que la foudre, alors vous
pouvez probablement augmenter le facteur de focalisation en raison de
cela. Si une nouvelle personne va rejoindre lquipe, vous devez baisser le
Nous ne mettons pas jour le backlog du produit dans Excel avec notre
dcoupage en tche, pour deux raisons :
Le dcoupage en tches est gnralement tout fait phmre,
i.e. les tches sont frquemment modifies et raffines durant le
sprint, de telle sorte quil serait trop harassant de garder le
backlog du produit synchronis dans Excel.
Le Directeur de produit na pas besoin dtre impliqu ce
niveau de dtail de toute faon.
Dfinition de termin
Il est important que le Directeur de produit et lquipe saccorde sur une
dfinition claire de termin. Une histoire est-elle termine lorsque tout
le code a t archiv ? Ou est-elle termine seulement quand elle a t
dploye sur un environnement de test et vrifie par une quipe de test
dintgration ? Chaque fois que cela est possible, nous utilisons la
dfinition de termin prt dployer en production mais ds fois nous
devons nous rabattre sur la dfinition de termin dploy sur serveur de
test et prt pour le test dacceptation.
Au commencement nous utilisions des checklists dtailles pour cela.
Maintenant souvent nous disons juste une histoire est termine quand le
testeur de lquipe Scrum le dit. Cest alors au testeur de sassurer que
lintention du Directeur de produit est bien compris par lquipe, et que
llment est assez termin pour satisfaire la dfinition requise de
termin.
Nous sommes venus raliser que toutes les histoires ne peuvent pas tre
traites de la mme faon. Une histoire appele Formulaire de requte
utilisateurs sera traite trs diffremment dune histoire nomme Guide
des oprations. Dans le dernier cas, la dfinition de termin pourrait
simplement tre accept par lquipe des oprations.Cest pourquoi le
bon sens est souvent meilleur que les checklists formelles.
Si la dfinition de termin vous semble souvent confuse (ce qui tait notre
cas au dbut) vous devriez probablement avoir un champ dfinition de
termin pour chaque histoire individuelle.
Chaque membre de lquipe reoit un jeu de 13 cartes comme montr cidessus. Chaque fois quune histoire doit tre estime, chaque membre de
lquipe slectionne une carte qui reprsente son estimation de temps (en
points dhistoire) et la place sur la table face cache. Quand tous les
membres de lquipe ont termin, toutes les cartes sur la table sont
Pour les histoires bien comprises, cest tout aussi simple de faire
ce dcoupage lavance que de le faire plus tard.
O tracer la limite ?
OK, le temps commence manquer. Parmi toutes les choses que nous
voulons faire durant le planning de sprint, quest-ce nous laissons de ct
si le temps manque ?
Eh bien, jutilise la liste de priorits suivante :
5
Comment nous communiquons sur les
sprints
Il est important de tenir au courant toute l'entreprise sur ce qui se passe.
Autrement les gens se plaindront ou, pire, feront de fausses hypothses
sur ce qui se passe.
Pour cela nous utilisons une page d'information de sprint .
Nous avons aussi un tableau de bord sur notre wiki qui donne des
liens vers toutes les itrations en cours.
6
Comment nous faisons les backlogs de
sprint
Vous tes arriv jusque l ? Ouf, bon travail.
Maintenant que nous avons termin la runion de planification du sprint et
parl au monde entier de notre superbe nouveau sprint, il est temps pour le
Scrum master de crer un backlog de sprint. Cela doit tre fait aprs la
runion de planification du sprint, mais avant la premire mle
quotidienne.
Vous pourriez utiliser un tableau blanc bien sr. Mais ce serait un peu du
gchis. Si possible, gardez les whiteboards pour les brouillons de
conception et utilisez les murs sans whiteboards pour les tableaux des
tches.
NOTE - si vous utilisez des post-its pour les tches, n'oubliez pas de les
attacher avec du vrai scotch, ou vous retrouverez un jour tous vos post-its
en tas sur le sol.
Ici cest lexemple dun vrai backlog de sprint approchant la fin du sprint.
Il devient moins ordonn au fur et mesure que le sprint progresse, mais
cest bon tant que a ne dure pas longtemps. A chaque nouveau sprint
nous crons un nouveau backlog de sprint, tout propre.
H, et la traabilit ?!
La meilleure traabilit que je peux offrir dans ce modle est de prendre
une photo numrique du tableau des tches chaque jour. Si vous le devez.
Je lai fait parfois mais je nai jamais eu besoin dutiliser ces photos.
Si la traabilit est trs importante pour vous, alors peut-tre que le
tableau des tches nest pas la solution qui vous convient.
Mais je suggre dessayer destimer la valeur apporte par une traabilit
dtaille du sprint. Une fois que le sprint est fini et que le code qui marche
a t livr et que la documentation a t enregistre, est-ce que a
intresse vraiment quelquun de savoir combien dhistoires taient
termines au 5e jour du sprint ? Est-ce que a intresse vraiment
quelquun de savoir quelle tait lestimation de temps pour crire un test
qui choue pour Dposer ?
7
Comment nous organisons le bureau de
lquipe
Le coin conception
Jai not que beaucoup de discussions de conception les plus intressantes
et ayant le plus de valeur prennent place spontanment en face du tableau
des tches.
Pour cette raison, nous essayons darranger cet espace en coin
conception.
Cest vraiment utile. Il ny a pas de meilleur moyen pour avoir une vue
densemble du systme quen se tenant dans le coin conception, on peut
8
Comment nous faisons les mles
quotidiennes
Nos mles quotidiennes suivent peu prs le livre. Elles commencent
exactement lheure, chaque jour la mme place. Au dbut nous allions
dans une pice spare pour faire le sprint planning ( lpoque o nous
utilisions des backlogs de sprint lectroniques), mais maintenant nous
faisons les mles quotidiennes dans le bureau de lquipe pile en face du
tableau des tches. Il ny a rien de mieux.
Nous faisons les mles en nous tenant debout, ce qui diminue le risque
de dpasser les 15 minutes.
9
Comment nous faisons les dmos de
sprint
La dmo de sprint (ou revue de sprint comme certains lappellent) est une
partie importante de Scrum que les gens ont tendance sous-estimer.
Oh devons-nous vraiment faire cette dmo ? Il ny vraiment pas grandchose damusant montrer !
Nous navons pas le temps de prparer une &%$# de dmo!
Je nai pas le temps dassister aux dmos des autres quipes !
10
Comment nous faisons les
rtrospectives de sprint
Pourquoi nous insistons pour que toutes les
quipes fassent des rtrospectives
La chose la plus importante propos des rtrospectives est de sassurer
quelles ont lieu.
Pour certaines raisons, les quipes ne semblent pas toujours enclines
faire des rtrospectives. Si on ne les aiguille pas dlicatement, la plupart
des quipes laissent tomber la rtrospective et passent directement au
sprint suivant. Il sagit peut-tre dun truc culturel en Sude, pas sr.
Cependant, tout le monde semble daccord, les rtrospectives sont
extrmement utiles. En fait, je dirais que la rtrospective est la seconde
partie la plus importante de Scrum (la premire tant la runion de
planification de sprint) parce que cest la meilleure chance de vous
amliorer !
Bien sr, vous navez pas besoin dune runion de rtrospective pour
avoir de bonnes ides, vous pouvez le faire dans votre baignoire la
maison ! Mais lquipe va-t-elle accepter votre ide ? Peut-tre, mais la
probabilit davoir ladhsion de lquipe est beaucoup plus importante si
lide vient de lquipe , cest--dire si elle vient pendant la
rtrospective quand tout le monde est autoris contribuer et discuter
des ides.
Sans les rtrospectives vous trouverez des quipes qui reproduiront les
mmes erreurs, encore et encore.
Trois colonnes :
Bien : Si nous pouvions refaire le mme sprint, nous ferions ces
choses exactement pareil.
Peut mieux faire : Si nous pouvions refaire le mme sprint, nous
ferions ces choses diffremment.
Amliorations : Ides concrtes pour samliorer dans le futur.
Les colonnes 1 et 2 concernent le pass, tandis que la colonne 3 concerne
le futur.
Aprs que les membres de lquipe aient dball tous ces post-its, ils
utilisent le vote par points pour dterminer quelles amliorations
prendre en compte au prochain sprint. Chaque membre de lquipe
dispose de 3 aimants et sont invits voter pour les amliorations quils
aimeraient voir pris en compte en priorit pendant le prochain sprint.
Chaque membre peut distribuer ces aimants comme il veut, il peut mme
placer les 3 sur le mme post-it.
En se basant l-dessus ils slectionnent les 5 amliorations faire en
priorit, et les suivront la prochaine rtrospective.
Cest important de ne pas tre trop ambitieux ici. Concentrez-vous sur un
petit nombre damliorations par sprint.
11
Relcher le rythme entre les sprints
Dans la vraie vie, vous ne pouvez pas sprinter tout le temps. Vous avez
besoin de vous reposer entre deux sprints. Si vous sprintez tout le temps,
vous tes en effet juste en train de faire un jogging.
Cest la mme chose avec Scrum et le dveloppement logiciel en gnral.
Les sprints sont plutt intenses. En tant que dveloppeur vous ne vous
relchez jamais, chaque jour vous devez assister cette fichue runion et
dire tout le monde ce que vous avez fait la veille. Peu auraient tendance
dire Jai pass la majeure partie de la journe mon bureau surfer sur
des blogs et siroter du capuccino.
En plus de la vraie pause elle-mme, il y a une autre bonne raison davoir
un relchement entre les sprints. Aprs la dmo du sprint et la
rtrospective, la fois lquipe et le directeur de produit seront saturs
dinformations et dides digrer. Sils se remettent immdiatement
courir et commencer planifier le sprint suivant, il est peu probable que
quiconque ait loccasion de digrer une information ou des leons
apprises, que le directeur de produit naura pas le temps dajuster ses
priorits aprs la dmo de sprint, etc.
Mauvais :
Encore mieux :
Une faon de faire cela sont les jours labo (ou quoique vous choisissiez
de les appeler). Ce sont des journes o les dveloppeurs sont autoriss
faire essentiellement ce quils veulent (OK, je le reconnais, inspir par
Google). Par exemple, tudier fond les derniers outils et APIs, suivre
une formation, discuter de trucs dinformatique avec les collgues, coder
un projet perso, etc.
Notre but est davoir un jour labo entre chaque sprint. De cette faon vous
avez naturellement une pause entre les sprints, et vous avez une quipe de
dveloppement qui a de relles chances de garder jour leurs
connaissances. De plus, cest un avantage plutt attractif
pour
lemployeur.
Meilleur?
Actuellement nous avons des jours labo une fois par mois. Le premier
vendredi de chaque mois pour tre prcis. Pourquoi pas entre les sprints
la place ? Eh bien, parce que jai pens que ctait important que toute
lentreprise soit en journe labo en mme temps. Autrement les gens ont
tendance ne pas le faire srieusement. Et comme nous (jusque l)
12
Comment nous faisons la planification
de release et les contrats au forfait
Ds fois, on a besoin de planifier lavance plus dun sprint la fois.
Typiquement dans un contexte de contrat au forfait o on doit planifier en
avance, ou sinon on risque de signer pour quelque chose quon ne peut
dlivrer temps.
Typiquement, la planification de release est pour nous une tentative de
rpondre la question quand, au plus tard, serons-nous en mesure de
dlivrer la version 1.0 de ce nouveau systme ? .
Si vous voulez vraiment apprendre la planification de release je vous
suggre de sauter ce chapitre et la place dacheter le livre de Mike Cohn
Agile estimating and planning . Jaurais voulu avoir lu ce livre plus tt
(Je lai lu aprs que nous soyons arrivs comprendre par nous
mmes). Ma version de la planification de release est assez simpliste
mais elle devrait tre un bon point de dpart.
Nom
banane
pomme
orange
goyave
poire
raisin
cacahute
beignet
oignon
pamplemousse
papaye
myrtille
pche
Imp
130
120
115
110
100
95
80
70
60
40
35
10
10
Nom
Estimation
banane
12
pomme
9
orange
20
goyave
8
poire
20
raisin
12
cacahute
10
beignet
8
oignon
10
pamplemousse
14
papaye
4
myrtille
pche
Estimer la vlocit
OK, alors maintenant nous avons des sortes destimations brutes pour les
histoires les plus importantes. La prochaine tape est destimer notre
vlocit moyenne par sprint.
Cela veut dire que nous avons besoin de dfinir notre facteur de
focalisation. Voir page XXX Comment lquipe choisit les histoires
inclure dans le sprint ? .
Le facteur de focalisation revient fondamentalement se demander
quelle est la part du temps pass par lquipe consacre aux histoires
adoptes en cours ? . Ce nest jamais 100% car les quipes perdent du
temps en faisant des choses non prvues, en changeant de contexte, en
aidant les autres quipes, en lisant leurs emails, en rparant les problmes
dordinateur, en discutant politique dans la cuisine, etc.
Disons que nous dterminons un facteur de focalisation de 50% pour
lquipe (trs bas, normalement on tourne autour de 70%). Et disons que
notre sprint dure 3 semaines (15 jours) et que la taille de lquipe et 6.
Nom
Estimation
Sprint 1
banane
12
pomme
9
orange
20
Sprint 2
goyave
8
poire
20
raisin
12
Sprint 3
cacahute
10
beignet
8
oignon
10
pamplemousse
14
Sprint 4
papaye
4
myrtille
pche
13
Comment nous combinons Scrum avec
XP
Dire que Scrum et XP (eXtreme Programming) peuvent tre combins
avec profit nest pas une dclaration rellement sujette controverse. La
plupart des choses que je vois sur le net sont en faveur de cette hypothse,
donc je ne vais pas passer de temps argumenter pourquoi.
Tout de mme, je vais mentionner une chose. Scrum se concentre sur le
management et les pratiques dorganisation tandis que XP se concentre
surtout sur les pratiques de programmation concrtes. Cest pour a quils
fonctionnent bien ensemble ils concernent diffrentes zones et sont
complmentaires.
Je dclare donc formellement que jajoute ma voix aux preuves
empiriques dj existantes que Scrum et XP peuvent tre combins de
manire productive !
Je vais souligner certaines des pratiques XP les plus intressantes, et
comment elles sappliquent notre travail de tous les jours. Toutes nos
quipes nont pas russi adopter toutes les pratiques, mais au total nous
avons expriment la plupart des aspects de la combinaison XP/Scrum.
Certaines pratiques XP sont directement prises en compte par Scrum et
peuvent tre vues comme du recouvrement, par exemple Toute
lquipe , Sasseoir ensemble , Histoires et Jeu du planning .
Dans ces cas nous nous en sommes simplement tenus Scrum.
La programmation en binme
Nous avons commenc cela rcemment dans une de nos quipes. Ca a
plutt bien fonctionn en fait. La plupart de nos autres quipes ne
travaillent toujours pas beaucoup en duo, mais aprs lavoir rellement
essay avec une quipe pendant maintenant plusieurs sprints, je suis
motiv pour essayer dentraner plus dquipes faire lessai.
La conception incrmentale
Cela signifie garder la conception simple au dpart et lamliorer
continuellement, plutt quessayer de tout faire parfaitement ds le dpart
et ensuite tout geler.
Nous sommes plutt bons a, cest--dire que nous passons un temps
raisonnable remanier et amliorer la conception existante, et que nous
passons rarement du temps faire de grandes conceptions lavance.
Quelques fois nous chouons bien sr, par exemple en permettant une
conception branlante de simplanter trop fortement, si bien que le
remaniement devient un gros projet. Mais tout bien considr nous
sommes raisonnablement satisfaits.
Lamlioration continue de la conception est principalement un effet de
bord automatique du DDT.
Lintgration continue
La plupart de nos produits ont un systme dintgration continue plutt
sophistiqu, bas sur Maven et QuickBuild. Cela est trs efficace et fait
conomiser du temps. Cest la solution ultime au bon vieux problme h
mais a marche sur ma machine . Notre serveur de build en continu sert
de juge ou point de rfrence partir duquel on peut dterminer la
sant de toutes nos bases de code.
Chaque fois que quelquun enregistre quelque chose dans le systme de
gestion de version, le serveur de build en continu reconstruit tout partir
de zro sur un serveur partag, et excute tous les tests. Si quelque chose
ne va pas il envoie un email notifiant toute lquipe que le build a chou,
en indiquant quel changement dans le code a cass le build, des liens sur
les rapports de test, etc.
14
Comment nous faisons les tests
Cest la partie la plus difficile. Je ne sais pas si cest la partie la plus
difficile de Scrum, ou juste la partie la plus difficile du dveloppement
logiciel en gnral.
Le test est la partie qui va probablement varier le plus entre diffrentes
organisations. Cela dpendra du nombre de testeurs que vous avez, de
lampleur de lautomatisation de vos tests, de quel type de systme vous
avez (juste server+application web ? ou bien vous tes un diteur de
logiciel vendu dans des botes ?), de la dure des cycles de release, de la
criticit du logiciel (un serveur de blog vs. un systme de contrle de vol),
etc.
Nous avons pas mal expriment sur la manire de faire des tests dans
Scrum. Je vais essayer de dcrire ce que nous avons fait et appris jusque
l.
Faux.
Daprs notre exprience, cela ne fonctionne gnralement pas. Il y aura
de mchants bugs. Si la qualit a une valeur quelconque pour vous, il faut
une sorte de phase de test dacceptation manuelle. Cest le moment o des
testeurs ddis, qui ne font pas partie de lquipe, martlent le systme
avec ces types de tests que lquipe Scrum navait pas imagins, ou
navait pas eu le temps de faire, ou pour lesquels elle navait pas le
matriel ncessaire. Les testeurs accdent au systme exactement comme
les utilisateurs finaux, ce qui signifie quils doivent le faire manuellement
(en supposant que votre systme est destin des utilisateurs humains).
Lquipe de test va trouver des bugs, lquipe Scrum va devoir faire des
releases de corrections de bugs, et tt ou tard (jespre tt) vous pourrez
livrer aux utilisateurs finaux une version corrige 1.0.1, au lieu de la
version instable 1.0.0.
Quand je dis phase de tests dacceptation , je fais rfrence la priode
complte de tests, dbogage, et nouvelles releases jusqu ce quil y ait
une version suffisamment bonne pour la production.
Cela nest en aucune faon une solution parfaite mais elle est
suffisamment bonne pour nous dans la plupart des cas.
Aprs le sprint 1, une version 1.0.0 bugge est livre. Durant le sprint 2,
des rapports de bugs commencent arriver et lquipe passe la majeure
partie de son temps dbugger et est force de faire mi-sprint une
release 1.0.1 de correction de bugs. Ensuite la fin du sprint 2 ils livrent
une nouvelle version 1.1.0 avec de nouvelles fonctionnalits, qui est bien
sr encore plus bugge puisquils ont eu encore moins de temps pour la
faire correctement cette fois-ci tant donn toutes les perturbations venant
de la release prcdente. Etc etc.
Les hachures rouges dans le sprint 2 symbolisent le chaos.
Pas trs joli nest-ce pas ? Eh bien, ce qui est triste cest que le problme
perdure mme si vous avez une quipe de test dacceptation. La seule
diffrence est que la plupart des rapports de bugs vont venir de lquipe
de test au lieu de clients finaux mcontents. Cest une norme diffrence
sur le plan commercial, mais pour les dveloppeurs cela revient peu prs
la mme chose. Sauf que les testeurs sont habituellement moins
agressifs que les utilisateurs finaux. Habituellement.
Retour la ralit
Je vous ai probablement donn limpression que nous avons des testeurs
dans toutes les quipes Scrum, que nous avons de grosses quipes de test
dacceptation pour chaque produit que nous livrons aprs chaque sprint,
etc.
Eh bien, nous ne les avons pas.
Nous avons quelquefois russi faire tout cela, et nous en avons vu les
effets positifs. Mais nous sommes encore loin dun processus dassurance
qualit acceptable, et nous avons encore beaucoup apprendre dans ce
domaine.
15
Comment nous grons les quipes
multi-Scrum
Beaucoup de choses deviennent plus difficiles quand vous avez plusieurs
quipes Scrum qui travaillent sur le mme projet. Ce problme est
universel et na pas vraiment de lien avec Scrum. Plus de dveloppeurs =
plus de complications.
Nous avons (comme dhabitude) fait des essais. Au plus nous avions une
quipe de 40 personnes environ qui travaillaient sur le mme projet.
Les questions cls sont :
Combien dquipes faut-il crer ?
Comment rpartir les personnes dans les quipes ?
Equipes virtuelles
Comment savoir si vous prenez la bonne ou mauvaise dcision par rapport
au compromis entre grosses quipes vs beaucoup dquipes ?
Si vous gardez les yeux et les oreilles ouvertes vous aurez remarqu la
formule quipes virtuelles .
Exemple 1: Vous choisissez davoir une grande quipe. Mais quand vous
regardez qui parle qui pendant litration, vous notez que lquipe est
effectivement divise en deux sous-quipes.
Disons que vous avez une seule quipe Scrum de 12 personnes, car le
code est dans un tat tellement lamentable quil ny a pas moyen pour 2
quipes diffrentes de travailler dessus indpendamment. Faites de
srieux efforts pour corriger le code (au lieu de construire de nouvelles
fonctionnalits) jusqu ce que vous puissiez diviser lquipe. Cet
investissement sera probablement amorti rapidement.
Cest la solution que nous avons utilise depuis, et nous ne lavons jamais
regrett. Je ne saurai jamais si la stratgie des sprints qui se chevauchent
aurait choue, mais je pense que oui. Les avantages des sprints
synchroniss sont :
Il y a un moment naturel o lon peut rarranger les quipes
entre les sprints ! En chevauchant les sprints, il ny a pas moyen
de rarranger les quipes sans perturber au moins une quipe au
milieu du sprint.
Toutes les quipes peuvent travailler vers un objectif commun sur
un sprint et faire les runions de planification de sprint ensemble,
ce qui mne une meilleure collaboration entre quipes.
Il y a moins de travail administratif, cest--dire moins de
runions de planification de sprint, de dmonstrations de sprint,
et de releases.
Et disons que vous avez 15 personnes travaillant sur le produit, aussi vous
ne voulez vraiment pas en faire une seule quipe Scrum. Quelles quipes
crez-vous ?
Chaque quipe Scrum slectionne une section de mur vide pour elle, et y
poste son nom dquipe. Cest leur mur dquipe . Chaque quipe
prend alors des histoires sur le mur de backlog de produit, en commenant
Branches de code
Avec plusieurs quipes qui travaillent sur la mme base de code, il est
invitable davoir grer des branches de code dans le systme de gestion
de configurations. Il y a beaucoup de livres et darticles sur la manire de
grer plusieurs personnes travaillant sur la mme base de code, donc je
nirais pas dans les dtails ici. Je nai rien de nouveau ou de
rvolutionnaire ajouter. Toutefois je vais rsumer quelques unes des
plus importantes leons que nos quipes ont apprises jusque l.
Rtrospectives multi-quipes
Comment faisons nous les rtrospectives de sprint quand plusieurs
quipes travaillent sur le mme produit ?
Immdiatement aprs la dmonstration du sprint, aprs les
applaudissements et le mlange gnral, chaque quipe part dans une
pice rserve pour elle, ou pour un endroit confortable lextrieur. Elles
font leurs rtrospectives peu prs comme je lai dcrit page 82
Comment nous faisons les rtrospectives de sprint .
Durant la runion de planning de sprint ( laquelle toutes les quipes
participent, puisque nous faisons des sprints synchroniss pour chaque
produit), la premire chose que nous faisons est de laisser un porte-parole
par quipe faire un rsum des points cls de leur rtrospective. Cela
prend environ 5 minutes par quipe. Ensuite nous avons une discussion
ouverte pendant 10 20 minutes. Puis nous faisons une pause. Ensuite
nous commenons le planning de sprint proprement dit.
Nous navons pas essay dautres manires, ceci marche suffisamment
bien. Le plus gros inconvnient est quil ny a pas de temps libre aprs la
rtrospective, et avant le planning. (voir page 88 Relcher le rythme
entre les sprints )
Pour les produits une seule quipe, nous ne faisons pas ce rsum de
rtrospective durant la runion de planning de sprint. Cela nest pas
ncessaire, puisque tout le monde tait prsent lors de la rtrospective du
sprint.
16
Comment nous grons les quipes
gographiquement disperses
Que se passe-t-il lorsque des membres de lquipe sont dans des lieux
gographiques diffrents ? Le plus gros de la magie de Scrum et XP
sappuie sur des quipiers colocaliss qui collaborent troitement en
programmant par paires et en se runissant chaque jour.
Nous avons des quipes spares gographiquement les unes des autres,
ainsi que des quipiers qui travaillent de chez eux de temps en temps.
Notre stratgie est alors assez simple. Nous employons toutes les ficelles
imaginables pour maximiser la bande passante utilise par les quipiers
spars physiquement, pour communiquer entre eux. Je ne parle pas
seulement de bande passante en termes de Mbits/seconde (bien que celleci soit videmment importante galement). Je parle de bande passante en
termes de communication, au sens plus large :
Certaines des mesures que nous avons implmentes (ou que nous
sommes en train dimplmenter, elles ne sont pas encore toutes
oprationnelles) sont :
Une webcam et un casque avec microphone chaque station de
travail.
Dlocaliser Offshore
Nous avons plusieurs quipes offshore et exprimentons depuis un
certain temps des faons de grer la situation avec Scrum.
Il existe ici deux stratgies principales : des quipes spares et des
quipiers spars.
17
Pense-bte du Scrum Master
Dans cet ultime chapitre, je vais vous montrer notre pense-bte du
Scrum master, qui inventorie les routines administratives les plus
courantes pour nos Scrum Masters. Des choses qui soublient facilement.
Nous passons sur les vidences telles que supprimer les obstacles
rencontrs par lquipe .
Dbut du Sprint
Fin du Sprint
18
Mot de la fin
Eh bien ! Je naurais jamais cru que a deviendrait aussi long.
Jespre que ce papier vous a donn des ides utiles, que Scrum soit
nouveau pour vous ou que vous soyez un vtran chevronn.
Parce que Scrum doit tre faonn diffremment pour chaque
environnement, il est difficile de dbattre objectivement des meilleures
pratiques en gnral. Nanmoins, je suis intress par vos remarques.
Dites-moi en quoi votre approche diffre de la mienne. Donnez-moi des
ides damlioration !
Nhsitez pas me contacter henrik.kniberg@crisp.se.
Je garde aussi un il sur scrumdevelopment@yahoogroups.com.
Si vous avez aim ce livre, vous aurez peut-tre envie de jeter un il
mon blog de temps en temps. Jespre y ajouter des articles sur Java et le
dveloppement informatique agile.
http://blog.crisp.se/henrikkniberg/
Lectures recommandes
Voici quelques livres qui mont donn beaucoup dinspiration et dides.
Hautement recommands !
A propos de lauteur
Henrik Kniberg (henrik.kniberg@crisp.se) est un consultant chez Crisp
Stockholm (www.crisp.se), spcialis dans Java et le dveloppement
informatique Agile.
Ds lapparition des premiers livres sur XP et du manifeste agile, Henrik
adopta les principes agiles et essaya dapprendre les appliquer de faon
efficace dans diffrents types dorganisations. En tant que cofondateur et
Directeur Technique de Goyada entre 1998 et 2003, il et amplement
lopportunit dexprimenter avec le dveloppement dirig par les tests
ainsi que dautres pratiques agiles, alors quil construisait et manageait
une plateforme technique et une quipe de dveloppement de 30
personnes.
Fin 2005, Henrik effectua une mission en tant que responsable du
dveloppement dans une socit sudoise dans le domaine du jeu. La
socit tait en situation de crise avec des problmes organisationnels et
techniques urgents. Par lutilisation de Scrum et XP comme outils, Henrik
aida la socit sortir de sa crise en implmentant des principes agiles
tous les niveaux de la socit.
Un vendredi de novembre 2006, Henrik tait alit avec de la fivre et
dcida de prendre quelques notes sur ce quil avait appris pendant lanne
passe. Mais une fois quil et commenc crire, il ne pouvait plus
sarrter et aprs avoir tap sur son clavier et dessin pendant trois jours,
les notes initiales staient transformes en un article de 80 pages intitul
Scrum et XP depuis les Tranches , qui ventuellement devint ce livre.
Henrik adopte une approche holistique et apprcie de jouer diffrents
rles tels que manager, dveloppeur, Scrum Master, professeur et
entraneur. Aider les socits dvelopper des applications et des quipes
excellentes le passionne, adoptant tout rle quil juge ncessaire.
Henrik a grandi Tokyo et vit maintenant Stockholm avec son pouse
Sophia et leurs deux enfants. Durant son temps libre, il compose de la
musique et joue de la basse et du clavier avec des groupes locaux.
Pour plus dinformation, visitez http://www.crisp.se/henrik.kniberg