Pour en finir avec l'incrément du Guide Scrum

Un crémant ça va, des (in)crémants, bonjour les dégâts !

Pour en finir avec l'incrément du Guide Scrum

J’étais parti pour écrire la suite de mes commentaires sur le Guide Scrum 2020. Mais en relisant la page 12, je me suis arrêté sur l’artefact Increment (sans accent).

Et là je me suis dit que ça méritait un article entier tellement le texte était en contradiction avec l’objectif de simplification de ce nouveau guide.

En effet, il est écrit que ce nouveau guide a mis l’accent sur une simplification globale de la langue pour un public plus large.

Je reproduis ci-dessous le texte de la version française concernant Increment et je vous laisse juger de l’atteinte de cet objectif :

Un Increment est une première étape concrète vers l’Objectif de Produit. Chaque Increment s’ajoute à tous les Increments précédents et fait l’objet d’une vérification approfondie, ce qui garantit que tous les Increments fonctionnent ensemble. Afin de fournir une valeur, l’Increment doit être utilisable.

Plusieurs Increments peuvent être créés durant un Sprint. La somme des Increments est présentée lors de la Sprint Review, ce qui permet ainsi de soutenir l’empirisme. Toutefois, un Increment peut être livré aux parties prenantes avant la fin du Sprint. La Sprint Review ne doit jamais être considérée comme une porte d’accès à la délivrance de la valeur.

Le travail ne peut être considéré comme faisant partie d’un Increment que s’il satisfait à la Definition of Done.

C’est vraiment mal écrit. Cependant ça vaut la peine de décortiquer tellement il y a d’informations. Des infos importantes perdues dans des formulations hasardeuses.

Incrément apparaissait déjà dans les versions précédentes du guide Scrum, ce n’est pas une nouveauté, mais sa présentation a changé. Je m’y intéresse au point d’en faire un article parce que le mot est utilisé abondamment dans tout le guide ; ça m’a poussé à critiquer son usage et à proposer qu’on s’en débarrasse.

Je reprends les phrases une par une.

Un Increment est une première étape concrète

Incrément est un mot français ; sa définition est accroissement, développement.

Le CNTRL donne même une définition informatique :

INFORMAT. ,,Quantité dont on augmente une variable à chaque phase de l’exécution d’un programme

En se rapprochant encore du domaine d’origine de l’agilité, on parle depuis longtemps de développement incrémental de logiciel pour signifier une façon de travailler morceau par morceau.

Un incrément est donc un morceau, ce n’est pas une étape ; on peut dire qu’un incrément est réalisé en une étape, mais pourquoi diable ne faudrait-il considérer que la première étape, comme c’est écrit ?

…vers l’Objectif de Produit

L’objectif de produit est une nouveauté du guide Scrum 2020. Nouveauté très intéressante pour notre propos : s’il y a un objectif de produit, cela signifie qu’il y a un produit.

Ce produit est développé pas à pas, par versions successives, avec des boucles de feedback permettant de réorienter vers l’objectif si nécessaire. Dans ma nouvelle version de Scrum, je préfère parler de résultat, plutôt que de produit : une équipe peut travailler sur plusieurs produits.

Chaque Increment s’ajoute à tous les Increments précédents…

Très bien, un incrément s’ajoute, cela correspond à la définition. Mais à quoi s’ajoute t-il ? À quel tout ?

Les auteurs ont un problème avec les notions de tout et de partie, car ils appellent incrément les deux. Oui, l’incrément est bien le morceau ajouté. Non, le résultat de l’ajout n’est pas un incrément, c’est le produit (ou résultat).

Résultat de fin d'étape = Résultat de fin d'étape précédente + incrément

Et là on comprend (un peu) mieux :

l’ajout d’un incrément est une étape vers l’objectif de produit, en ce sens qu’il augmente le produit.

…et fait l’objet d’une vérification approfondie, ce qui garantit que tous les Increments fonctionnent ensemble.

Je reformule :

le produit obtenu par l’ajout d’un incrément fait l’objet d’une vérification approfondie pour garantir qu’il fonctionne toujours et qu’il est utilisable

On suppose que la vérification inclut des tests fonctionnels (pour vérifier que ça fonctionne) et des tests d’utisabilité.

Du coup je supprimerais la phrase suivante (afin de fournir une valeur, l’Increment doit être utilisable), qui n’a plus de valeur, c’est le cas de le dire.

Plusieurs Increments peuvent être créés durant un Sprint

C’est une clarification importante : avec Scrum on peut faire du flux. Avoir un produit qui évolue pendant le sprint et pas seulement à la fin.

La somme des Increments est présentée lors de la Sprint Review

Parler de somme des incréments laisse croire qu’on assemble des morceaux à la fin du sprint, ce qui est le contraire de la phrase précédente sur le flux.

À la fin du sprint on obtient un produit (partiel par rapport à l’objectif). Lors de la revue, on présente ce produit en se focalisant sur la partie ajoutée pendant le sprint, celle qui correspond à l’objectif du sprint.

Dans Scrum édition 5 et L’art de devenir une équipe agile, je l’appelle résultat du sprint.

Toutefois, un Increment peut être livré aux parties prenantes avant la fin du Sprint

Très important ! La décision de livrer est dé-corrélée du rythme des sprints. Mais ce n’est pas un incrément qu’on livre, c’est un produit !

Le PO décide de déployer quand il considère que le produit courant peut procurer de la valeur aux parties prenantes et ce n’est pas forcément en fin de sprint.

Je suppose que c’est ce que voulait essayer de dire la phrase — un poil lyrique — qui vient après : La Sprint Review ne doit jamais être considérée comme une porte d’accès à la délivrance de la valeur (sic).

Le travail ne peut être considéré comme faisant partie d’un Increment que s’il satisfait à la Definition of Done

Cette phrase vient en écho à la vérification approfondie évoquée plus haut. Elle laisse entendre que cette vérification s’appuie entièrement sur la définition de fini, ce qui me laisse dubitatif, mais c’est un autre débat.

L’usage d’incrément, dont nous avons vu qu’il était incorrect, est, de plus, trompeur ici : à la lecture on pourrait facilement croire qu’on vérifie le morceau mais pas son intégration dans le tout qui constitue le produit.

En conclusion

Arrêtons les dégâts avec incrément. L’artefact, c’est le résultat du sprint.

Gardons éventuellement incrémental, sans oublier itératif, pour expliquer le processus qui amène au produit. Car avec seulement incrémental, on reste sur une idée d’accroissement ; or il arrive qu’on retire, et ce guide Scrum 2020 en est un bon exemple.

Un autre exemple avec mon blog, qui est un produit mis à jour plus souvent que le guide Scrum : je déploie quand j’ajoute un nouvel article, mais bien plus souvent après des changements sur des articles existants ou sur la mise en forme (j’itère), et parfois les deux. Une approche agile est incrémentale et itérative.

Merci à Jean-Pascal et Anthony pour la relecture et à Patrice pour le dessin(très ancien et dont je me suis souvenu en écrivant l’article).

Voir aussi