Le retour des antipatterns

La fresque propose une approche pragmatique, qui part des difficultés rencontrées sur le terrain. Elles sont provoquées par des antipatterns.

C’était il y a quelques jours alors que nous discutions de la Fresque de l’agilité. Jean-Pascal nous a proposé de jeter un œil sur unFIX, la nouvelle initiative de Jurgen Appelo.

Pour nous motiver, il a sorti son kit unFIX, avec des centaines de cartes.

UnFIX

J’ai regardé. unFIX se présente comme une bibliothèque de patterns. Une grande bibliothèque, car il y en a beaucoup de patterns, ça brasse large.

J’ai pensé immédiatement au RUP (Rational Unified Process) quand j’ai vu la liste des nombreux patterns présentant les rôles et encore plus en lisant dans la FAQ la réponse à la question “le modèle n’est-il pas trop compliqué ? :

Everything in the unFIX model is optional.

Un modèle ? Dans la page what in unFIX, la notion de modèle est effectivement mise en avant. Un modèle et des cartes, comme la fresque alors.

Bien sûr, le modèle est différent, les cartes aussi, la cible visée aussi, mais nous avons probablement des principes fondamentaux en commun : l’auto-organisation et les boucles de feedback, par exemple.

Notre fresque déconstruit le management moderne et, en quelque sorte, unFIX déconstruit SAFe et d’autres modèles et frameworks. C’est salutaire.

Nous nous disons depuis longtemps qu’il faudrait donner des références en complément aux cartes — nous n’avons pas eu le temps car nos moyens sont limités — et les patterns d’unFIX seraient probablement intéressants pour cela.

Tilt sur pattern

Cependant à la lecture d’UnFIX ce qui a fait tilt chez moi, c’est le mot pattern. Je viens du génie logiciel, j’ai connu les Design Patterns par le livre éponyme du gang of four.

Ensuite j’ai retrouvé l’utilisation de pattern dans l’agilité pour évoquer des transitions, comme dans cet article de Mike Cohn qui date de 2007.

Comme je m’intéressais à tout ce qui tournait autour de Scrum, j’ai découvert et étudié un truc bizarre appelé ScrumPlop. Des patterns Scrum. Plein de patterns gérés par The Scrum Patterns Group. C’est pourtant resté confidentiel.

Un peu plus tard, j’ai lu les articles de Lilian Ricaud sur le patterning. Lilian m’a fait découvrir les travaux d’Alexander, un architecte.

L’idée est intéressante :

Si le design bâtit des structures en assemblant des éléments, le patterning peut être vu comme une branche du design qui bâtit des systèmes en tissant des relations.

Ce qui me plaît, c’est de créer des concepts, en m’appuyant sur les idées des autres. J’y ai travaillé pour Scrum édition 5, paru en 2018.

Patterns et antipatterns

Il est question de patterns dans cette édition, on en trouve des dizaines, mais ce qui y prend plus de place, c’est la notion, antonyme, d’antipattern. J’ai récolté ces antipatterns avec mes expériences sur le terrain.

Dans cette édition, on trouve plus de 70 antipatterns, regroupés à la fin de chaque chapitre. Cela avait été apprécié (pour Scrum édition 6, les antipatterns sont placés dans le texte à l’endroit où on en a besoin plutôt qu’à la fin des chapitres).

Dans le livre, je donne les définitions suivantes :

  • Un pattern est, dans un contexte donné, une solution à un problème couramment rencontré.
  • Un antipattern est, dans un contexte donné, une mauvaise solution à un problème. Ceux qui utilisent cette solution pensent bien faire, le plus souvent par ignorance.

Je me suis posé la question de la notion de pattern agile par rapport à celle de pratique agile. Finalement j’avais choisi d’utiliser pattern comme une possibilité d’application d’une pratique, par exemple le fourmillement ou les 6D.

Dans Scrum édition 5 un antipattern est décrit par :

  • son nom,
  • le constat de la (mauvaise) solution,
  • ses conséquences,
  • un exemple (optionnel),
  • la rubrique “comment faire mieux ?”.

Exemple : le culte du cargo

  • Constat : on applique une pratique strictement, comme on l’a lu dans les livres ou à partir d’une expérience qui a été racontée.
  • Conséquences : on risque de se couper de l’environnement réel de l’organisation. Ce n’est pas parce qu’une pratique a fonctionné pour un projet qu’elle marchera à l’identique dans un contexte différent.
  • Exemple : il est raconté par Henrik Kniberg : dans son livre Scrum et XP depuis les trachées, il avait présenté une technique appelée focus factor. De nombreuses équipes ayant lu le livre l’ont appliquée au moment de leur passage à Scrum, croyant bien faire. Kniberg l’a constaté avec regret, expliquant que cet usage du focus factor était contextuel et qu’il ne l’avait pas utilisé dans d’autres situations.
  • Comment faire mieux? : il n’existe pas de Scrum «académique», seul le cadre est défini : tous les projets sont différents et constituent un contexte spécifique pour la mise en place des pratiques.

Les antipatterns dans la Fresque de l’agilité

Nous avons imaginé la Fresque de l’agilité comme les autres fresques, un atelier d’intelligence collective où on part des problèmes. Nous avons donc créé des cartes où figurent des problèmes couramment rencontrés. Il y a quelques mois, nous avons renommé problèmes en difficultés. Nous avons également des cartes substitutions pour remédier aux difficultés.

Aujourd’hui nous en venons à ajouter la notion d’antipattern pour donner un nom à la carte. Par rapport à ma description dans le livre Scrum, la difficulté ressentie est la conséquence de l’antipattern, et “comment faire mieux ?” correspond à la substitution par le pattern qui va bien.

Cela va plus loin que donner un nom. L’exercice d’opposition des principes modernes à ceux de l’agilité amène à l’idée que des antipatterns sont dus :

  • à l’influence résiduelle de principes modernes,
  • à une mauvaise compréhension des principes de l’agilité.

Nous allons expérimenter les nouvelles cartes antipatterns, à l’occasion d’Agile tour Toulouse en juin.

Articles liés