Ce matin, un tweet auquel @spacefox a répondu est arrivé dans ma timeline :
Bien que ce tweet ne soit pas parti en débat, ça m’a rappelé un débat qu’on avait eu une fois avec Nohar sur discord et surtout cet article de 2021 sur it-expert.
Dark agile, vrai agile, l'agile pure, plus agile qu'agile
S’il y a une chose à laquelle tout le monde va vite tomber d’accord c’est qu’on "ne fait pas de l’agile" mais qu’on "est agile". Ce petit jeu sémantique est surtout là pour acter une chose : dans certaines entreprises la direction demande de "faire de l’agile", entendez par là "tu sais pas ce que tu vas faire demain car j’aurai sûrement changé d’avis sur tes priorités". J’ai connu ça, c’est horrible.
Par contre rapidement, on va avoir des débats sur ce que permet ou pas l’idée d’être agile. Et c’est là que le manifeste agile n’aide que très peu. En fait à part "faut que tu aies un utilisateur ou au pire un représentant des utilisateurs qui testent tout très tôt et te fasse des retours tout de suite", sacralisé par le principe:
Tout le reste est ultra théorique, parfois équivoque et pire pour certains principes ce ne sont que des vers blancs.
Prenons l’exemple :
Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée.
C’est beau, c’est bien dit, tout le monde et d’accord. Du coup, on fait quoi maintenant?
- C’est quoi la haute valeur ajoutée? La fonctionnalité qui ne se fait nulle part ailleurs? La fonctionnalité qui sera mieux intégrée chez nous? La réponse globale à un besoin au delà du développement de fonctionnalités?
- Quand est-ce que le client est satisfait? Quand le gros du process est là? Quand il a l’intégration global à son workflow? Quand il a le thème couleur et la police qu’il préfère?
Bref, je suis pas sûr qu’une entreprise qui fasse du cycle en V n’ai pas envie de respecter ce principe, pourtant on te dit qu’au contraire c’est le principe de base de l’agilité et donc qu’il est là pour passer outre le non agile cycle en V.
Autre principe qui peut être interprété de 30 manières différentes et qui font que certains refusent le concept de "agilité" à certaines équipes (dont la mienne) :
Les meilleures architectures, spécifications et conceptions émergent d’équipes autoorganisées.
Moi, je dis que mon équipe est agile selon ce concept.
Notre logiciel doit répondre à plusieurs défis :
- hétérogénéité des environnement de run (on est on premise)
- connexion pas forcément stable à un service externe souvent en SPOF chez le client
- attentes clients hétérogènes (certains veulent de la perf temporelle, d’autres veulent limiter les coûts de stockage et de ram)
- intégration à des workflow complets dont on ne connaît pas tout à cause de certaines partie "confidentielles" côté client;
- intégration technique et fonctionnelle dans un code qui a désormais plus de 8 ans.
Alors oui, quand une fonctionnalité complexe arrive dans notre backlog on a une sorte de réflexe autogéré : on fait une "étude" on on a 3 buts :
- faire une documentation des besoins qu’on veut couvrir avec cette fonctionnalité
- voir quels sont les pièges et les risques envisageables
- voir les pistes envisageables techniquement et si on voit des soucis pointer documenter pourquoi on n’a pas choisi certaines.
Comme ça ressemble un peu à un "cycle en V" les puristes de l’agile disent que "non faut pas faire ça, faut livrer tout de suite un truc, prendre les retours et refacto".
Et selon moi, ça entre clairement en conflit avec :
Pourquoi livrer un "poc" ou un truc "vite euf" pour choper des retours et ensuite passer un temps fou à refacto et donc injecter des bugs là où c’est pas nécessaire alors qu’avec un tout petit peu de recul on avait non seulement un détection des soucis en avance de phase, une documentation (et non le code n’est pas une documentation) et aussi une idée de l’étendue du travail possible.
Quand c'est bien fait ça, marche
J’aurais pu arrêter là avec le simple fait que les "principes" de l’agile sont tellement flou qu’en fait les "puristes" ont juste un avis très arrêté sans être vraiment adossé à une infraction auxdits principes.
Mais souvent ce qu’on entend —au delà du quasi paralogisme du vrai écossais—, c’est pas que "c’est pas du vrai agile" c’est que "c’est pas bien fait". Notamment, c’est là que le "scrum" est très critiqué.
En effet, dans le monde de l’agilité, un framework nommé "scrum" fait 80% des usages d’après… la fondation scrum. Mais quand on regarde linked in ou les blogs on trouvera facilement des gens qui parlent de "vrum" (mot valise pour "cycle en V" est "SCRUM") pendant que les entreprises (dont celles qui m’emploie) aiment montrer qu’elles "font de l’agilité avec SCRUM".
Bref. Pour beaucoup de personnes hors équipe de dev "bien être agile" c’est "faire du scrum". Mais comme il faut surveiller, on va mettre un cadre qui ressemble au V mais avec des review/retro/refinement/plan et pourquoi pas un daily meeting qui durera 30 minutes?
Les cérémonies du scrum ne font pas en soit la gestion de projet scrum. On peut tout à fait bien gérer un projet scrum en limitant le temps aloué au refinement et au planning.
Maintenant c’est quoi du coup "bien faire un projet en agilité"? C’est une question à laquelle je n’ai pas de réponse car finalement y’a pas de checklist… contrairement à un waterfall ou un cycle en V.
Et vous vous en pensez quoi?