Le demi-cercle (épisode 50 -- Fruits inaccessibles)

_

Unless and until all members of a team have a common understanding of the problem, attempts to solve the problem are just so much wasted energy. Jerry Weinberg

_

Il est presque dix-huit heures. Jean-Bernard tape avant d'entrer, bien que la porte du bureau soit ouverte, et demande : - Est-ce que vous auriez un peu de temps à me consacrer ?

Jérémie et toi finissez de commenter votre session. Hugo est déjà parti, Farid est en congés. Audrey, qui était occupée à fouiller dans un répertoire à la recherche d'une ancienne documentation fonctionnelle, se tourne sur son siège et dit : - Pas de souci. Mais je dois partir d'ici 20 minutes.

Jean-Bernard s'assied sur un coin de table et dit : - Oh je n'en ai pas pour longtemps. Je viens vous voir parce que j'ai eu une petite conversation avec Maria, Victor et Lionel à propos de notre Suite XXL.

Vous l’observez, dans l’expectative. Il reprend : - D'abord, il faut savoir que Lionel est aux anges avec les ventes effectuées sur les deux dernières livraisons. Le taux de conquête est excellent, et les prévisions du deuxième semestre sont prometteuses.

Rien à voir avec le fait que son neveu travaille dans l'équipe. Aux anges, mais… ?

- Super ! dit Audrey. - Il insiste pour qu'on lui explique pour quelle raison nos autres produits ne sont pas fabriqués comme XXL. Vous savez comme il est, à toujours interférer et à vouloir s'occuper de nos méthodes. - Qu'est-ce qu'il entend par "fabriqué comme XXL" ? demande Jérémie. - Eh bien justement, c'est là que le bât blesse. On ne sait pas ce que vous faites.

C'est vrai, qu'est-ce qu'on fait, au juste ? Il y a un bug dans ce que dit J.B. Mais de quoi on parle ?

Tu fronces les sourcils. Tu te concentres sur le "bug". - Qu'est-ce que tu veux dire, quand tu dis : on ne sait pas ce que vous faites ? - Ce que je veux dire c'est que Lionel nous a demandé si vous pourriez transmettre aux équipes des autres produits votre recette de succès.

Hmmmmm.

Jérémie se lance : - Il n'y a pas — je veux dire, nous n'avons pas — de recette de succès. - Tu veux dire que vous ne savez pas reproduire ?

Pause. Tu te sens de plus en tendu, et désorienté. Impossible de lire la carte avec tous ces cahots.

Tu hasardes une question : - Qu'est-ce que tu entends par "reproduire" ?

Jean-Bernard a l’air contrarié. Il efface d'un revers de la main un tableau invisible et reprend : - Je vais essayer d'être plus clair, mais n’hésitez pas à me venir en aide. Lionel voudrait que nous reproduisions le succès d'XXL dans les autres suites que nous vendons. Et ça, ça suppose de prendre vos bonnes pratiques, et de les appliquer dans les projets Parady, TeTrA, et pourquoi pas pour la maintenance, le cas échéant. C'est plus clair ? - Oui. Merci. - Donc ?

Jérémie : - À vrai dire on n'a pas vraiment analysé en détail ce qui fait que ça marche mieux maintenant. - Alors faites-le, s'il vous plaît.

Tu ajoutes : - Et, non, on ne sait pas le reproduire. Ce n'est pas une recette. - Qu'est-ce que tu racontes ? - Si je te donne la recette d'un chorus de jazz, est-ce que tu sais la reproduire ? - Bien sûr que non, je ne suis pas musicien. Quel est le rapport ? - Hum, bon ce n'est peut-être pas la bonne analogie…

J'essaye.

Jean-Bernard réfléchit un moment, puis demande : - Simplement : qu'est-ce que vous faites différemment par rapport à ce que vous faisiez avant ?

Jérémie tente une réponse : - Tu connais le dicton : _garbage in, garbage ou_t ? - Bien sûr. Quel rapport ? - Avant, on suivait ce principe : Si ce qu'on a en entrée pour faire notre travail est du charabia, alors ce qu'on produira en sortie sera également du charabia. - C'est à dire ? - Quand on recevait une story incomplète, ambiguë, ou incohérente, eh bien on essayait de la développer quand même, autant que possible, et on fabriquait un logiciel incomplet, ambigu, ou incohérent. - Du logiciel ambigu ça n'existe pas. Ton logiciel se comporte toujours d'une certaine manière, voyons. - Disons qu'on produisait du logiciel qui marchait d'une certaine manière, mais personne n'était vraiment sûr que cette manière soit la bonne, je veux dire sûr à 100%. - Admettons. - Et quand ce n'était pas possible de développer une story, on remontait nos questions. Et en attendant les réponses à nos questions, on passait à la story suivante. - Ça me paraît logique. - Sauf que : pour peu que notre Product Owner soit inaccessible, débordé ou occupé à rechercher les réponses à nos questions, on se retrouvait alors devant une pile de stories en attente de clarification. - Je vois. - Ce travail qui s'entassait, personne d'autre que nous, l’équipe de développement, ne le voyait. Et on n'en parlait pour ainsi dire jamais, sauf pour dire de temps en temps : c'est embêtant toutes ces stories pas finies dont on n'est pas sûr qu'elles vont être finies à temps ou même correspondre aux besoins du P.O. Et ensuite chacun passait à autre chose. Jusqu'au moment où toutes les stories se retrouvaient en attente. - C'est clair. Mais ça peut se résoudre facilement. Il suffit de…

Facilement, si on veut.

Tu fronces les sourcils. Tu laisses Jean-Bernard expliquer, mais sans l'écouter vraiment. Tu essaies de l'écouter.

Tu lèves la main, et tu dis en souriant : - Je suis surpris, parce que tu nous a demandé de t'expliquer comment nous travaillons, et j'ai l'impression que maintenant tu souhaiterais plutôt nous expliquer ta propre façon de faire.

Hésitation. Jean-Bernard dit : - Oui. Bon. Tu as raison. Continue, Jérémie. - En fait, voilà ce qui se passait : le Product Owner nous indiquait ses priorités pour les stories, mais ce qui sortait effectivement en premier c'était tout simplement ce qui était suffisamment clair pour être réalisé. - Je vois.

Tu ajoutes : - Et encore, ce qui sortait était la plupart du temps défectueux.

Jean-Bernard croise les bras. Il dit : - Et maintenant ? Qu'est-ce qui a changé ?

Audrey attrape la balle au vol : - Eh bien ce qui a changé, c'est que désormais, pour développer une story, on regarde cette story comme un problème à résoudre, et pas seulement un bout de code à modifier. - Quelle différence est-ce que ça fait ? - Eh bien il y a beaucoup de manières de considérer un problème…

Jérémie, lève doctement l'index et dit : - Un problème, c'est la différence entre une situation perçue et une situation souhaitée…

Jean-Bernard, les mains enfoncées dans ses poches, lève les yeux au plafond et dit : - Et elle nous avance à quoi ta définition, Jérémie ?

Audrey reprend : - Eh bien je crois que ça change pas mal de choses. D'abord on peut se demander qui perçoit la situation, et comment, avant de se précipiter sur une solution. Et on peut se demander si vraiment cette solution apporte quelque chose qui va contribuer à ce qui est souhaité… - Mais concrètement ? interrompt Jean-Bernard.

Tu vois où Audrey veut en venir dans son explication. Tu essayes de compléter : - Concrètement, on se demande ce qui manque, aussi bien à la définition du problème qu'à sa solution. - Mais concrètement ?

Audrey enchaîne : - Eh bien par exemple, si on ne comprend pas la story, on sollicite le P.O. Si le P.O. n'est pas disponible, on cherche un moyen de l'aider à se rendre plus disponible, ou bien on cherche à diviser la story, en se demandant : qu'est-ce qui est déjà clair, sans ambiguïté, cohérent dans cette story et que l'on puisse l’implémenter tout de suite ?

Jérémie ajoute : - C'est un exemple. Disons que ce qui a changé, c'est que désormais, nous nous donnons un certaine marge de manœuvre pour comprendre, voire définir le problème à résoudre, avec l'aide du P.O. - Je vois, dit Jean-Bernard. Mais l’inconvénient avec cette façon de faire, c'est qu'il faut discuter avec votre P.O, hors de quoi vous risquez de remodeler les stories n'importe comment. - De toute évidence, énonce Jérémie, la disponibilité de ceux qui sont intéressés en premier lieu par la résolution du problème, compte énormément. - En somme, il vous faut un P.O tout le temps disponible.

Audrey intervient : - Pas tout le temps, loin de là. Mais régulièrement.

Jean-Bernard se lève et se dirige vers la porte en disant : - Bon. Une marge de manœuvre. Ce n'est pas très clair, tout ça. Merci quand même. Il faudra qu'on en reparle.

Jérémie commence à rassembler ses affaires puis se retourne, et dit : - Ah oui, et on écrit beaucoup plus de tests, également…

Tu ajoutes : - Exact. Et on ne met plus en production du code écrit en solo.

Mais Jean-Bernard a déjà quitté le bureau.

(à suivre) Episodes Précédents : 1 -- Si le code pouvait parler 2 -- Voir / Avancer 3 -- Communication Breakdown 4 -- Driver / Navigator 5 -- Brown Bag Lunch 6 -- Conseils à emporter 7 -- Crise / Opportunité 8 -- Le Cinquième Étage 9 -- Que faire ? 10 -- Soit... Soit... 11 -- Boîtes et Flêches 12 -- Le prochain Copil 13 -- La Faille 14 -- Poussière 15 -- L'hypothèse et la Règle 16 - Déplacements 17 -- Jouer et ranger 18 -- Arrangements 19 -- Mise au point 20 -- Expérimentation 21 -- Échantillons 22 -- Non-conclusions 23 -- Non-décisions 24 -- Épisode neigeux 25 -- Fusions et confusions 26 -- Débarquement 27 -- Tempête 28 -- Embardée 29 -- Aménagement 30 -- Interruptions 31 -- Normalisation 32 -- Outsiders 33 -- Fabrication 34 -- Observation 35 -- Perturbations 36 -- Conclusions 37 -- Nouvelle Donne 38 -- Transaction 39 -- Mutation 40 -- Exclusion Mutuelle 41 -- Préemption 42 -- Démonstration 43 -- Conversation 44 -- Exception 45 -- Explications 46 -- Télescopage 47 -- Négociations 48 -- Plaques tournantes 49 -- Cocktail