J’anime depuis un certain temps des sessions d’introduction ร l’Agilitรฉ, dans lesquelles jeย me focalise tout particuliรจrement sur leย ยซย pourquoiย ยป : pourquoi l’agilitรฉ ? pourquoi souhaitons-nous changer ? Pourquoi utilise t-on telle pratique ? Comparer ce que l’on appelle ยซย Approche Traditionnelleย ยป ร ยซย l’Approche Agileย ยป est doncย devenu un sujet rรฉcurrent, qui selon moi estย essentiel ร la bonne comprรฉhension du changement occasionnรฉ.
C’estย lorsque j’ai dรป accompagner une collรจgue dans sa montรฉe en compรฉtence que j’ai dรฉcidรฉ de revoir ma maniรจre de faire. En effet, mรชme si l’animation รฉtait majoritairement participative – grรขce auย questionnement – il n’en restait pas moins qu’une grande partie รฉtaitย descendante, surtout en dรฉbut de formation. Je me suis alors demandรฉ comment au travers d’un atelier, je pourrais faire รฉmerger des participants toute l’information que je leur donnais sur un plateau auparavant.
Voici le rรฉsultat ๐
Instructions
Aprรจs avoir formรฉ des sous-groupes, j’indique aux participants qu’ils vont avoir une liste de mots, dans laquelle ils vont devoir, former des couples. Ces derniers devront opposer un mot correspondant ร l’approche Traditionnelle et l’autre l’approche Agile.
Voici la liste de mots proposรฉe :
- Prรฉdictif
- Nous
- Apprentissage
- Plan
- Dรฉploiement
- Incertitudes
- Compliquรฉ
- Nous <-> Eux
- Valeur
- Empirique
- Certitudes
- Complexe
Note : J’invite la plupart du temps les participants ร noter chaque mot sur un Post-it afin de pouvoir collaborer de maniรจre plus efficace.
J’insiste sur le fait que ce qui importe estย l’argumentaire justifiant le choix plutรดt queย la rรฉponse elle-mรชme; nous verrons ensemble pourquoi par la suite. Entre 10 et 15 mn sont gรฉnรฉralement suffisantes pour avoir un rรฉsultat dans les รฉquipes. L’idรฉe n’est pas de rechercher la perfection, mais de permettre aux participants de rรฉflรฉchir ensemble afin d’amorcer les discussions.
Dรฉbriefing
Le dรฉbriefing se dรฉroule de maniรจre informelle en parcourant les rรฉponses des participants. Chaque รฉquipeย justifiera ses choix par rapport ร sa comprรฉhension des mots proposรฉs.
Note : En effet, selon l’interprรฉtation, un mot peut basculer d’un cรดtรฉ ou d’un autre (tout en restant tout ร fait cohรฉrent) ce qui gรฉnรจre des รฉchanges particuliรจrement intรฉressants ! ๐
Je vous partage ci-aprรจs mes rรฉponses ainsi que mes รฉlรฉments de justification sous la forme : (T) Approche Traditionnelle vs (A) Approche Agile.
Je vous donnerais รฉgalement les arguments exposรฉs par les participants (P) lorsque leurs rรฉsultats ne concordaient pas avec les miens ! Vous verrez que nous sommes bien d’accord sur le fond, c’est simplement notre positionnement qui est diffรฉrent : alors que je me place la plupart du temps en entrรฉe, eux peuvent se placer en sortie ! ๐
Prรฉdictive vs Empirique
(T) Prรฉdictive pourย Approche prรฉdictive
L’approche Traditionnelle est basรฉe sur de la prรฉdiction. On fournit d’ailleurs un certainย d’effort pour la rendre la plus prรฉcise possible : l’exemple le plus flagrantย est le fameux diagramme de Gantt que l’on met des semaines voire des moisย ร ย construire et qui s’avรจre รชtre faux dรจs les premiers jours de mise en oeuvre.
(A) Empiriqueย pour Approche empirique
L’approche Agile est basรฉe sur de l’expรฉrimentation. Comme dans la dรฉmarche scientifique, on part d’hypothรจses que l’on va vรฉrifier au fur et ร mesure afin d’accumuler des informations fiables provenant du terrain.
Dรฉploiement vs Apprentissage
(T) Dรฉploiement pour Dรฉploiement de mรฉthodes
Le principe de dรฉploiement de mรฉthodes part du principe que si cela marche dans une รฉquipe, le fait de faire la mรชme chose dans une autre produira รฉgalement le mรชme rรฉsultat. On parle d’ailleurs trรจs souvent du ยซย dรฉploiement de l’agilitรฉย ยป dans les entreprises, comme si c’รฉtait une simple mรฉthode gรฉnรฉrique ร appliquer et ร rรฉpliquer dans les รฉquipes, ceย qui s’avรจre รชtre bien plus difficile sur le terrain.
En effet, ce qui pourrait รชtreย potentiellement applicable partout est l’ensemble de valeurs et principesย dรฉcrits dans le Manifeste Agile. Maintenant, cela ne suffit pas car chaque contexte est diffรฉrent, avec des contraintes et des enjeux spรฉcifiques : le travail des coachs agiles est selon moi essentiellement un travail deย contextualisation.
L’approche Agile est donc ร la fois gรฉnรฉrique dans l’esprit et spรฉcifique dans la pratique.
(A) Apprentissage pour Stratรฉgie d’apprentissage
La mise en oeuvre d’expรฉrimentations nรฉcessite de dรฉfinir une stratรฉgie pour valider nos hypothรจses. Ainsi, passerย d’une hypothรจse conditionnรฉe (quelque chose que l’on suppose) ร une information vรฉrifiรฉe (quelque chose que l’on sait) estย un apprentissage !
Partir sur des hypothรจses implique รฉgalement que l’on accepte de se tromper : le droit ร l’erreur est donc fondamental !
(P) Arguments participants
Le terme Dรฉploiement peut รชtre associรฉ ร la notion de Dรฉploiement continu chรจre au DevOps et ร l’Agilitรฉ en gรฉnรฉral. Le fait de dรฉployer en continu permet d’avoir un rรฉsultat concret, disponible aux utilisateurs, sur lequel vรฉrifier ses hypothรจses rapidement ce qui est typiquement ce que l’on souhaite faire en Agile.
Le terme Apprentissage est parfois dรฉcrit comme l’ensemble des apprentissages (statiques) que l’on a acquis par leย passรฉ et qui nous enferment dans un modรจle de pensรฉe prรฉdictif.
Certitudes vs Incertitudes
(T) Certitudes pour Gestion de certitudes
L’approche Traditionnelle รฉtant prรฉdictive suppose qu’elle peut savoir tout ce qu’il va se passer. Elle part donc d’un ensemble de certitudes qu’il n’y a qu’ร mettre en oeuvre. Il suffit donc simplement de dรฉployer les actions nรฉcessaires pour aboutir au rรฉsultat.
Si l’on prend l’exempleย de projets logiciels, il paraรฎt aujourd’hui trรจs difficile de pouvoir penser ร tout, surtout lorsqu’un grand nombre d’รฉlรฉments sont interconnectรฉs et interdรฉpendants les uns avec les autres. Ainsi, malgrรฉ cette impression de certitude, on ne fait qu’accumuler de l’incertitude, augmentant dans le mรชme temps le risque, jusqu’ร la livraison finale.
(A) Incertitudes pour Gestion d’incertitudes
L’approche Agile part du postulat que l’on ne sait pas tout et que ce que l’on croit savoir n’est qu’hypothรจse. En acceptant l’incertitude, on met en place des expรฉrimentations pourย apprendre et pour accumuler des informations validรฉes qui deviendront nos certitudes du moment. On rรฉduit alors la probabilitรฉ de mauvaises surprises et leurs impacts si nรฉanmoins ilsย ont lieu.
(P) Arguments participants
En Agile, on met en place des expรฉrimentations afin d’accumuler des certitudes. L’objectif est donc de gรฉrer des certitudes pour limiter les risques et ainsi augmenter nos chances de toucher la bonne cible au bon moment.
En Traditionnel, on croit gรฉrer des certitudes mais qui ne sont en fait que des incertitudes. On gรจre donc une quantitรฉ d’incertitudes qui ร un moment ou ร un autre risquent de mettre en pรฉril le projet.
Nous <-> Eux vs Nous
Pour comprendre le changement de modรจle de pensรฉe amenรฉ par l’Agilitรฉ, il faut comprendre d’oรน l’on part. Je dรฉcrisย alorsย l’approche Traditionnelle au travers du modรจle en Cascade puis du Cycle en V, pas toujoursย connus des participants.
(T) Nous <-> Eux : Responsabilitรฉย locale
Le modรจle en Cascade est issu du monde du bรขtiment oรน l’on ne construit pas la toiture avant les fondations. Il se caractรฉrise par des รฉtapes longues, effectuรฉes de maniรจre sรฉquentielle et par des รฉquipes le plus souvent spรฉcialisรฉes. Le problรจme fondamental rรฉside dans le manque de rรฉactivitรฉ de l’approche lorsqu’il y a un changement ou un problรจme car ilย doit repasser par l’ensemble des รฉtapes ร nouveau.
Pour rรฉduire l’impact de ce problรจme dans le monde de l’informatique – oรน il est possible de construire la toiture avant les fondations – a รฉtรฉ mis en place le cycle en V oรน les รฉtapes de la phase montante sont mises en regard des รฉtapes de la phase descendantes par des rรฉtro-actions plus rapides.
Cependant, il a bien hรฉritรฉ des mรชmes caractรฉristiques que le modรจle en cascade : รฉtapes longues, sรฉquentielles et รฉquipes spรฉcialisรฉes. Le problรจme qui se pose est que la phase de dรฉveloppement peut dรฉmarrer quelques mois aprรจs les phases amont de spรฉcification ce qui fait que les personnes sachantesย peuvent dรฉjร s’รชtre engagรฉes sur d’autres projets ou peuvent simplement รชtre parties.
Il n’y a donc pas le choix : il faut รฉcrire de maniรจre exhaustive tout ce que l’on sait pour s’assurer que les informations seront bien transmises dans les phases suivantes ! Un peu de compassion pour la documentation donc, c’est un effet induit par le cycle en V ! ๐
Maintenant, que se passe t’il lorsqu’un problรจme est dรฉtectรฉ, en phase de Test par exemple ? Que peuvent dire les testeurs des phases amont ? Et les autres ?
- ยซย C’est la faute aux dรฉveloppeurs, ils ont fourni un code de mauvaise qualitรฉ !ยซย
- ยซย C’est la faute aux spรฉcifieurs, la documentation est imprรฉcise !ยซย
- ยซย C’est la faute au client, il ne sait pas ce qu’il veut !ยซย
C’est la recherche du coupable : chacun estย ou se sent uniquementย responsable d’une phase spรฉcifique du projet plutรดt que de ce qui sera produit dans son ensemble. Il y a donc un ยซย Nousย ยป, et unย ยซย Euxย ยป ! ๐
(A) Nous : Responsabilitรฉย globale
En approche Agile, nous appartenons ร la mรชme รฉquipe, nous sommes focalisรฉs sur le mรชme objectif commun. Mรชme si l’on peut avoir des spรฉcialitรฉs et/ou des compรฉtences spรฉcifiques, notre effort est continu jusqu’ร la fin du projet. En effet, s’il y a un problรจme, c’est celui de l’รฉquipe en son intรฉgralitรฉ et chacun est susceptible d’y apporter un รฉlรฉment de solution.
La responsabilitรฉ est donc commune et partagรฉe entre tous les membres de l’รฉquipe ce qui peut contribuerย ร avoir des interactions de meilleures qualitรฉs :
- plus de confiance car on sait que l’on peut compter les uns sur les autres,
- plus de collaboration car on sait que l’on va tous dans la mรชme direction,
- plus d’engagement car on sera ensemble du dรฉbut jusqu’ร la fin.
(P) Arguments participants
Dans l’interprรฉtationย du Nous <-> Eux, de par la prรฉsence des flรจches ร double sens, on peut considรฉrer que les รฉchanges vont bien ร l’extรฉrieur de notre silo. On est alors plus ร l’รฉcoute des autres parties afin de pouvoir atteindre notre objectif commun, ce qui est plutรดt Agile.
Dans l’interprรฉtation du Nous, on peut croire que le focus reste en local, ยซย chez nousย ยป, plutรดt que de s’ouvrir vers l’extรฉrieur et partager nos contraintes et problรฉmatiques avec les autres. Cela ressemble alors plus ร du Traditionnel.
Plan vs Valeur
Pour expliquer cette partie, je passe par la notion du Triangle de Fer, une autre version du triangle (Qualitรฉ, Coรปt, Dรฉlai). Il se caractรฉriseย par 2 types de critรจres : fixes et variables (ou estimรฉs).
(T) Plan pour Pilotage par le plan
En approche Traditionnelle, le contenu demandรฉ est fixe (ยซย Je veux tout รงa !ยซย ). Les personnes (Charge) et le temps (Calendrier) agiront alors en variables d’ajustement : on rajoute des gens et/ou on dรฉplace la date pour pouvoir dรฉlivrer l’ensemble du contenu.
Cependant, il arrive parfois queย tous ces paramรจtres soient fixes : ยซย Je veux tout ce que j’ai demandรฉ, ร la date donnรฉe, avec les personnes prรฉvuesยซย . Et commeย on saitย que les projets ne se passent pas souvent comme prรฉvu, il nous faut malgrรฉ tout jouer sur une variable pour รชtre en mesure de rรฉpondre ร la demande. C’est souvent la qualitรฉ qui devient alors variable d’ajustement : ยซย Rรฉduisonsย les tests pour livrer ร la bonne date, au pire รงa reviendraยซย
L’importance est donc mise sur la date,ย au dรฉtriment de la qualitรฉ de ce qui estย produit : on parleย de pilotage par le plan.
(A) Valeur pour Pilotage par la valeur
Fort du constat prรฉcรฉdent, on comprend pourquoi les projets pouvaientย avoir tendance ร dรฉpasser leur budget et ร livrer du contenu qui ne sera pas forcรฉment utilisรฉ (cf. Chaos Report 1995).
Il est alors intรฉressant d’observer que les critรจres que l’on laisse varier sont ceux sur lesquels on a le moins le contrรดle : les personnes peuvent ne pas รชtre compรฉtentes individuellement ou collectivement, elles peuvent tomber malades… ce qui impactera naturellement le temps de livraison du contenu attendu.
De maniรจre pragmatique, comment rendre prรฉvisibleย une variable imprรฉvisibleย ? En la fixant ! On renverse alors le triangle en fixant la charge et le calendrier : ยซย on a ce nombre de personnes et ce dรฉlaiย ยป. Et sur quel critรจre avions-nous le contrรดle depuis le dรฉbut ? Le contenu ! On peut alors se permettre de le laisser varier en optimisant la valeur de ce qui sera produit : on parle ici de pilotage par la valeur.
En approche Agile, on part sur un postulat de base : la qualitรฉ est non nรฉgociable. Ainsi, on prรฉfรจre livrer moins (en quantitรฉ) mais livrer bien (en qualitรฉ) !
Compliquรฉ vs Complexe
Cette partie est gรฉnรฉralement celle qui clรดture l’atelier. En effet, ellemรฉrite quelques explications surtout dans la terminologie utilisรฉe : les termes ยซย compliquรฉย ยป et ยซย complexeย ยป sont parfois utilisรฉs de maniรจre interchangeable ou ont un sens un petit peu diffรฉrent selon les personnes. Il est nรฉanmoins intรฉressant de voir que le terme ยซย compliquรฉย ยป tend ร avoir une connotation nรฉgative ร la diffรฉrence du terme ยซย complexeยซย .
L’objectif de cette partie est principalement de dรฉcrire lร oรน l’approche Agile fait le plus de sens, d’ouvrir le champ de perspectives des participants en leur montrant qu’il existe diffรฉrentsย domaines, chacun avec leurs caractรฉristiques propres.
Pour poser une base commune de comprรฉhension, je passe par un modรจle appelรฉย le Framework Cynefinย –ย sur lequel j’avais dรฉjร รฉcrit une sรฉrie d’articles :
Ce modรจle est particuliรจrement puissant carย pour chaque domaine, il dรฉcrit le modรจle de prise de dรฉcision recommandรฉ. Je ne rentrerais pas dans l’intรฉgralitรฉ de la description (si cela vous intรฉresse, je vous invite ร aller lire cet article) mais expliciterait simplement les messages principaux. Nous verrons que cela reprend de maniรจre cohรฉrente l’ensemble des caractรฉristiques vues prรฉcรฉdemment.
Note : D’autres collรจgues prรฉfรจrent passer par la Matrice de Stacey pour dรฉcrire les notions de ยซย complexeย ยป et ยซย compliquรฉย ยป.
(T) Compliquรฉ
Le domaine Compliquรฉ fait partie de la famille des systรจmes ordonnรฉs, c’est-ร -dire que l’on sait qu’un lien causal existe entre un dรฉclencheur et son rรฉsultat, un besoinย et une solution. La grande diffรฉrence avec le domaine รvident est que ce lien n’est justement pas directement visible, il nous faut donc duย temps pour analyser la situation pour le dรฉterminer : d’oรน le modรจle de prise de dรฉcision dรฉcrit comme Sentir – Analyser – Rรฉpondre.
Le postulat qu’un lien causal existe, que l’on peut donc tout contrรดler, correspond typiquement ร l’approche traditionnelle dans son caractรจre prรฉdictif, de gestion de certitudes et de dรฉploiement de solutions. En effet, dans ce domaine, on fournit un grand effort pour analyser la situation afin de pouvoir dรฉcrire le dรฉroulement idรฉal de notre projet : cela explique donc les grandes planifications en amont.
Compliquรฉ signifie รฉtymologiquement ยซย liรฉ ensembleย ยป, ยซย composรฉ de plusieurs chosesย ยป. Un systรจme compliquรฉ est donc un systรจme que l’on peut dรฉmonter et remonter dans son รฉtat initial.
(A) Complexe
Le domaineย Complexeย fait partie de la famille des systรจmes non-ordonnรฉs, c’est-ร -dire qu’il n’y a pas de lien causal entre un dรฉclencheur et son rรฉsultat, un besoinย et une solution. Si un รฉvรฉnement se reproduit, cela peut รชtre considรฉrรฉ comme une coincidence.ย C’est donc le domaine du Test and Learn etย de l’expรฉrimentation d’oรน le modรจle de prise de dรฉcision dรฉcrit comme Sonder (on met en oeuvre une expรฉrimentation)- Sentir (on observe ce qu’il se passe)- Rรฉpondre (on rรฉagit selon la concordance des rรฉsultats avec nos hypothรจses).
L’approche Agile est donc toute dรฉsignรฉe pour des problรฉmatiques du domaine complexe de par son caractรจre empirique, de gestion d’incertitudes et d’apprentissage : cela explique d’ailleurs les composantes itรฉratives et incrรฉmentales de ce type de dรฉmarche.
Complexeย signifie รฉtymologiquement ยซย entrelacรฉย ยป, ยซย entremรชlรฉย ยป. Un systรจme complexeย est donc un systรจme qu’il est ยซย impossibleย ยป de reproduire ร l’original de par la multiplicitรฉ des interactions qui le composent.
Mais alors, Scrum se trouve dans le domaine complexe ?
Eh bien pas tout ร fait ! Analysons un petit peu ce qu’il se passe dans un processus Scrum :
- Sprint planning : j’รฉmets une hypothรจse sur ce qui a le plus de valeur pour mon prochain Sprint, mon point de dรฉpart est donc bien dans le domaine complexe.
- Daily Scrum : chaque jour, je prends une dรฉcision sur ce que je vais rรฉaliser dans la journรฉe par rapport ร mon apprentissage de la veille, je reste donc dans le domaine complexe.
- Sprint review : je rรฉcupรจre mon incrรฉment de produit potentiellement livrable, je l’analyse avec l’ensemble des parties prenantes afin de dรฉterminer ce quiย sera la prochaine prioritรฉ, autrement dit la prochaine hypothรจse. Je viens donc de basculer dans le compliquรฉ.
- Sprint retrospective : je me base sur les donnรฉes objectives (rรฉsultats) et subjectives (ressentis) issues du Sprint, j’analyse la situation et dรฉcide des actions d’amรฉlioration ร mettre en oeuvre avec mon รฉquipe. Je suis bien dans le domaine du compliquรฉ.
Scrum est donc un mรฉcanisme de transition Complexe-Compliquรฉ, dรฉcrite commeย une des cadences Cynefin. C’est pourquoi on dit souvent que ce qui est important dans Scrum n’est pas la synchronisation mais plutรดt le rythme !
L’approche Agile apporte donc une notion de dynamisme permanent ร la diffรฉrence de l’approche traditionnelle qui est beaucoup plus statique intrinsรจquement. Peut-รชtre un nouveau couple de mots ร tester ? ๐
Conclusion
Cet atelier m’a permis de pouvoir donner la main aux participants dans la construction d’un contenu qui venait d’eux, tout en y injectant de la thรฉorie au fur et ร mesure des รฉchanges. Une participante me disait que pour cette activitรฉ, je partais du postulat qu’ils ne partaient pas de 0 et je pense que c’est fondamentalement vrai. On entend le terme agile un peu partout aujourd’hui et on lui donne รฉgalement la signification que l’on veut. L’idรฉe est donc plutรดt de s’aligner sur ce dont on parle plutรดt que d’imposer une vision statique sur le sujet en laissant place ร l’รฉchangeย constructif et argumentรฉ.
Suite ร cet atelier,ย j’espรจre que les participants comprendrontย qu’il y a bien une diffรฉrence fondamentale dans les modรจles de pensรฉe entre l’approche Traditionnelle et l’approche Agile, d’oรน la difficultรฉ du changement dans les organisations.
4 Responses
Hello Olivier,
Merci beaucoup pour ce partage. Je souhaiterais m’en inspirer pour une sensibilisation ร l’Agilitรฉ, si tu en es d’accord?
Hello Sylvia, avec plaisir ! N’hรฉsite pas ร me faire un feedback aprรจs coup ! ๐
Coucou Olivier,
รงa marche, merci!
Je l’anime cet aprรจs midi.
Je lui ai trouvรฉ un petit nom ย ยป Agile Wor(l)dย ยป ๐
Trรจs bons retours ๐
Propice ร la discussion, sans mรชme chercher ร forcรฉment donner ยซย laย ยป correction. L’important c’est l’argumentaire associรฉ.
J’avais 2 groupes, j’ai donnรฉ un ensemble de couples de mots sur un groupe, diffรฉrent de l’ensemble de l’autre groupe (6 couples chacun) et un 7ieme couple dont j’ai mis un membre dans un groupe et un membre dans l’autre. :-p
A renouveler, merci pour l’inspiration ! ๐