Le demi-cercle (épisode 40 -- Exclusion mutuelle)

- Bonjour ! C'est ici, l'atelier n'est-ce pas ? Il n'y avait pas de salle sur le rendez-vous.

Charlène entre dans le bureau XXL, les bras chargés d'un gros classeur en carton et d'un ordinateur entre-ouvert dans lequel elle a glissé une liasse de pages A4, vraisemblablement des copies d'écran.

Audrey dit : - Bonjour, Charlène, oui c'est bien ici. On va s'installer de manière à pouvoir travailler ensemble.

Il est 15h10. Tu te lèves et cherches comment faire de la place. Farid commente votre session de travail et la dépose sur le gestionnaire de source. Puis vous déplacez la table afin de reformer un demi-cercle. Charlène pose ses affaires sur la table et fait remarquer :

- Vous devriez demander l'installation d'un projecteur fixe, au plafond. Vous gagneriez en place. Et ça vous éviterait d'avoir la prise qui court au milieu de la pièce. Parce qu'avec un projecteur qui tombe alors qu'il est allumé, vous êtes sûrs de détériorer la lampe.

Jérémie répond : - Excellente idée, je ne savais pas que c'était possible. On m'a dit que les commandes de matériel sont bloquées pour le reste de l'année. On nous a remplacé la lampe, mais c'est tout. - La Direction des Ventes en a fait installer un dans la salle du 6ème pour les démonstrations. - Oh. Je vais émettre une demande dans ce cas. Audrey se poste devant le mur du fond et explique : - Notre objectif aujourd'hui, c'est de terminer la story 479, qui concerne l'export des données avec critères de sélection dans le cas d'une reprise.

Charlène ouvre son ordinateur portable et recherche un document en s'aidant du trackpad. Audrey continue : - L'idée c'est de coder cette feature ensemble, tout en profitant de ta présence, Charlène, pour avoir les réponses à nos questions quand nous avons un doute sur une règle de gestion, ou sur la bonne chose à faire, dans certains cas… - Ça commence mal, je n'ai pas de story 479 dans le catalogue XXL. J'ai une story 478, "export avec sélection des critères. En tant qu'utilisateur, je veux exporter sur critères afin de pouvoir bénéficier d'une reprise des données dans une autre entreprise". 479 ? Connais pas.

Jérémie intervient : - C'est sûrement parce que le catalogue n'est pas à jour de la décision que nous avons pris avec Maria lundi. - Ça m'étonnerait, je l'ai vue en réunion ce matin. Elle m'en aurait parlé.

C'est possible que vous n'ayez pas eu le temps d'en parler. C'est possible que Maria se soit dit : l'équipe va mettre Charlène au courant et elle changera le backlog en séance. C'est possible que Maria ait oublié.

Hugo observe Charlène d'un air vaguement intrigué et un peu courroucé. A l'aide de son index, il fait tourner son stylo sur la paume de sa main.

Tu dis : - C'est possible qu'elle ait oublié. On va reprendre la story telle qu'on l'a vue avec Maria.

Charlène répond : - Je veux bien, mais je croyais qu'on devait fixer le contenu de l'itération au début de l'itération. Vous ne pouvez pas créer des stories sans nous prévenir. Surtout si nous sommes supposées en faire la recette.

Charlène dévisage chaque membre de l'équipe tour à tour, comme pour vérifier que ses interlocuteurs approuvent ce principe, et s'ils l'approuvent, montrer qu'elle se tient prête à toute explication du moment que l'explication ne présente aucune contradiction avec la règle.

C'est du bon sens, mais ça va mieux en le disant. Mmouais.

Tu dis : - Non, c'est vrai on ne peut pas créer des stories sans vous prévenir. Et la règle générale, c'est de figer l'ensemble des stories qui sont embarquées dans l'itération, et de ne pas en ajouter pendant l'itération. Je suis entièrement d'accord. - Voilà.

Regards attentifs. Il y a quelque chose dans la façon dont Charlène s'exprime qui fait que personne ne cherche à discuter.

Ne pas charger la barque, alors qu'elle est au large. C'est du bon sens. Le temps passe.

Tu continues : - Mais dans le cas qui nous occupe, c'était la chose à faire, si l'on voulait terminer la story 478 à temps. Avec Maria, nous avons convenu de couper la 478 en deux. Et maintenant la story 478 est passée en recette. Et on se propose de finaliser celle-ci, la 479.

Charlène dit : - D'accord. Admettons. Je vois. Qu'est-ce que je peux faire pour vous aider ?

Jérémie enchaîne : - Alors voilà : on se demandait à quel cas correspondait la situation où un administrateur exporte des données d'XXL en indiquant des rubriques à exclure de l'export, tout en spécifiant : situation = reprise. - Oui. - Et en particulier, on se demandait si toi, Charlène, tu n'aurais pas un fichier d'exemple d'export en vue d'une reprise, correspondant à un cas déjà rencontré chez un client sur la version en production.

Charlène se penche sur son ordinateur et en fouille les répertoires : - Reprise… Export reprise.. 4807.. J'ai quelque chose qui ressemble à ça.

Jérémie croise les mains, et demande : - C'est parfait. Peux-tu nous envoyer le fichier par mail ? - Oui mais, non : ce serait de la triche. - Comment ça, de la triche ? - C'est trop facile, si vous avez déjà la réponse, vous êtes sûr de passer la recette.

Hugo ouvre des yeux grands comme des balles de ping pong. Audrey éclate de rire.

Hugo dit : - C'est un escape game ou quoi ? - Qu'est-ce que c'est qu'un escape game ?

Tu demandes : - De quoi tu parles, Hugo ?

Cinq agents, à la porte de l'étage, sont aux prises avec la Supervision. L'auxiliaire de supervision dispose d'un plan de l'étage. Il s'avère qu'elle ne souhaite pas en révéler le contenu. A l'entrée du dédale sans lumière, la discussion s'anime, même si le chuchotement reste de mise. - Vous voulez dire que c'est à nous de trouver le parcours attendu, alors que vous avez le plan ? - Pas du tout. Je dispose d'un parcours possible. Mais si vous adaptez l'étage à ce parcours seulement, votre solution ne tient pas. - Qu'est-ce qui vous ferait dire que notre solution tient ? - Si mon parcours fonctionne. - Qu'est-ce qui vous conduirait à croire qu'elle tient dans d'autre cas que vous n'avez pas sur le plan ?

Tu te demandes si Hugo voit également l'immeuble. Dans sa tête.

Bon. On avance ?

Jérémie se penche un peu en avant sur son siège, et précise : - Charlène, ce fichier, c'est un exemple. On en a besoin pour mieux comprendre, pas pour coder une solution en dur. - J'entends bien. Ce n'est pas exactement ce que je voulais dire.

Audrey fait remarquer : - Au contraire, c'est une très bonne idée ! Je propose qu’on essaye déjà de coder le cas qui correspond exactement au fichier de Charlène. C’est suffisamment compliqué comme ça. Ensuite, on identifie d’autres cas d’exemples, et pour chaque variation, on fait évoluer le code en conséquence, en s’appuyant sur des tests. Rien de plus, rien de moins.

Farid intervient : - Ça risque de prendre pas mal de temps ! - Eh bien dans ce cas là, on trichera pour gagner du temps. - Tricher comment ? Je demande à voir… - Alors commençons.

Charlène transmet le fichier à Jérémie, qui l’ouvre. Le fichier se trouve projeté sur le mur du fond.

- Regardons déjà la tête qu’il a.

Vous commencez.

(à 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