Le demi-cercle (épisode 32 -- Outsiders)

_

Oleg : Hello ! Est-ce que tu serais disponible un de ces quatre ? J’ai un service à te demander

Qu’est-ce que je peux faire pour toi Oleg ?

Oleg : Je préfère t’en parler de vive voix

Pas de pb. On pourrait déjeuner ensemble, ce midi par exemple

Oleg : Pourquoi pas ? Je suis dans le coin

_

Audrey rompt le silence : - Bon, qui déjeune ?

Jérémie répond, sans quitter son écran des yeux : - Moi !

Farid et Hugo, qui viennent de finir une story, répondent également.

Tu dis : - Ce serait avec plaisir, mais je déjeune avec Oleg… - Oleg ? Du dojo ? - Oui, Oleg du dojo. Je suis en discussion avec lui. - On pourrait déjeuner ensemble, si vous acceptez du monde à votre table… - On n’a rien de prévu encore. Je lui demande.

_

ToF : Ça te dit de déjeuner avec mon équipe ?

Oleg : Avec plaisir.

_

Tout le monde se retrouve au coin de la rue juste à côté de la sortie de l’immeuble. Le soleil brille, mais le vent est encore particulièrement frais. Poignées de main. Conversations hésitantes.

Farid demande à Oleg : - Donc c’est toi qui a convaincu notre tech lead de faire du mob programming ? - Ah bon, c’est ce qu’il t’a dit ? - Hein ? Non, ce n’est pas ce qu’il nous a dit. - Mais si c’est le cas, j’en suis fort honoré.

Vous vous arrêtez à la première brasserie qui convient à tous. Vous vous installez, commandez formules et plats du jour. Vous parlez programmation, technologie, pratiques de développement.

Oleg : En parlant de mob, comment ça se passe pour vous ? Jérémie : Ça ne se passe pas exactement comme on voudrait, je dirais. Farid : Il y a des jours où ça marche plutôt bien, d’autres où on dirait que rien ne fonctionne. Audrey : Dans l’ensemble, c’est mieux qu’avant je trouve. Hugo : Moi je ne peux pas vraiment dire, je viens d’arriver. Jérémie : Ce qui ne se passe pas bien, grosso modo, c’est que l’équipe n’est pas efficace avec cette démarche. Ou plutôt, pas efficiente. Audrey : Ce n’est pas comme si elle avait beaucoup perdu, remarque. Jérémie : Ça se discute.

Tu te tiens coi. Tu savoures un brick au thon et au fenouil. Tu réalises que tu apprécies la présence d’Oleg même si tu ne participes pas directement à la conversation.

Oleg : Jérémie — Jérémie c’est bien ton prénom ? En quoi est-ce que l’équipe n’est pas efficace, ou efficiente ? Jérémie : Efficace, mais pas efficiente. Oleg : Pas efficiente, par rapport à quoi ? Audrey : Bonne question. Jérémie : Par rapport aux objectifs qui nous sont donnés. Tu pourrais dire que ces objectifs ne sont pas réalistes, mais je suis sûr qu’il y a tout de même un moyen d'en faire plus, d'aller plus vite. Audrey : D’aller plus vite, tout en faisant mieux bien sûr. Aller plus vite en faisant moins bien, on connaît, ça ne marche pas. Jérémie : On est bien d’accord, Audrey. Oleg : Qu'est qui vous ralentit ? Toi : C'est difficile à dire… Oleg : Est-ce parce que vous travaillez lentement, ou bien est-ce parce que vous perdez votre temps ? Farid : Quelle différence ? Oleg : Par exemple, je perds tu temps quand je ne suis pas à mon poste et que je suis pris dans une réunion qui n’a rien à voir avec ce que j’ai à faire. Jérémie : De ce côté là, on arrive à peu près à éviter le pire. Farid : Oui. Vu que notre projet est en retard, les gens réfléchissent à deux fois avant de nous inviter à des réunions. Jérémie : C’est le bon côté de la chose. Oleg : Je perds mon temps également quand je travaille sur quelque chose qui ne sera jamais utilisé, ou du moins pas dans les semaines qui viennent. Audrey : On travaille sur un backlog qui est priorisé par notre Product Owner. Elle change parfois les priorités, mais en tout cas, je ne pense pas qu’on soit en train de travailler sur des fonctions inutiles. Toi : Il y a d’autres façons de faire du travail inutile. Comme quand on généralise une solution pour l’adapter à des cas qui ne se posent pas encore, voire des cas qu’on ne rencontrera peut être jamais. Jérémie : Ça dépend. Quelque fois, il faut pourtant en passer par là, sinon tu es obligé de tout casser et de refaire. Toi : Tout casser et refaire, pas obligatoirement. Jérémie : Regarde le module Compensation. Pour intégrer des nouvelles règles, plus générales, on a dû le refondre. Toi : C’est parce que le code existant n’avait aucun test. C’était du code spaghetti. Oleg : Dans votre projet, est-ce que vous faites des généralisations de ce genre ? Vous essayez de prévoir des cas qui ne se rencontrent pas encore ? Jérémie : À vrai dire, non. Il y a bien eu quelques tentatives dans le passé, soit-disant pour optimiser l’application. Du pur over engineering. Ce n’était pas justifié, on y a mis fin. Oleg : Une autre source fréquente de perte de temps dans mon équipe, c’est quand on rencontre des problèmes d’intégration. Jérémie : Tu veux dire, avec les autres applications ? Oleg : Oui, ou bien dans la même application, des problèmes entre le front-end et le back-end, comme on dit. Jérémie : Pas de souci de ce côté là : étant donné la complexité du système, on fait ce qu’il faut de conception préalable pour que personne ne se retrouve le bec dans l’eau à l’intégration. Farid : Ça me rapelle quand le marketing avait tenté de faire passer à l’arrache une demande pour un flux spécial, en temps réel. On a botté en touche, et le CTO nous a appuyé. Oleg : Je vois.

Vous restez tous silencieux un moment. Tu te demandes si Oleg n’est pas en train de penser : « Voilà un groupe qui affirme qu’il n’est pas efficace, qui dit qu’il perd du temps, mais qui ne sait pas dire où. »

Audrey : Jérémie, rapelle-toi la dernière fois que tu t’es dit qu’on perdait du temps. Jérémie : OK. Je m’en rappelle bien, c’était ce matin. Audrey : Qu’est-ce qui s’est passé ce matin ? Jérémie : Nous étions en train de coder la story 452, en demi-cercle. Et à un moment, Hugo a posé une question sur le fonctionnel. Hugo : Oui. Jérémie : Et personne n’avait la réponse à cette question. J’en profite pour faire remarquer, au passage, que c’était une excellente question. Hugo : Pour le coup, c’est une question qui m’est venue spontanément. Audrey : Charlène a la réponse. Je lui envoyé un message. On en saura plus cet après-midi. Toi (explique à Oleg) : Charlène est une personne du service marketing/vente, chargée de tout ce qui est analyse fonctionnelle sur notre application. Oleg : Je vois. Jérémie : On n’est pas sûrs que Charlène ait la réponse… Oleg : Et donc, vous attendez la réponse… Jérémie : Bien sûr que non, on est passé sur une autre story. La 455. Farid : Dans ce cas de figure, c’est là que le mob n’est pas efficace. Audrey : Farid, si on travaillait chacun à son poste, Hugo n’aurait pas pu poser la question… Farid : Elle se serait posée tôt ou tard. Audrey : Tard. Elle se serait posée tard. Jérémie : Audrey a raison, On aurait continué la 452 sans y prendre garde, et ensuite, on se retrouvait en recette avec une partie du logiciel inutilisable. Oleg : Par conséquent, ce matin, vous avez gagné du temps. Audrey : Ha ! Jérémie : Bien vu. Effectivement, on a gagné du temps. Toi : La perte de temps vient du fait que la conception de la story 452 était incomplète. Oleg : Peut-être. Mais comment savoir si la conception d’une story est complète ? Audrey : Ça fait des semaines que je le leur dis : venez au réunions backlog avec Maria et Charlène… Farid : Avec toutes les stories en retard, si tu crois qu’on a le temps pour les réunions ! Audrey : C’est amusant ce que tu viens de dire. Oleg (regarde son téléphone) : Déja une heure vingt, il faut que je file…

Vous sortez du restaurant, en vous promettant de renouveler ça, à l’occasion. Oleg court vers l’arrêt de bus. Vous n’avez pas parlé du service qu’il voulait te demander. Tu te demandes si c’est important. Tu tapes : et à propos de ce service ? Après une dizaine de minutes, Oleg répond : Ça peut attendre la prochaine fois !

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