Blog Arolla

Promesses et divination – la malédiction de la grosse release

Pluto Krath était à 2 doigts de jeter son laptop à la poubelle en se laissant tomber sur la chaise de son bureau. Il respira un grand coup, ouvrit les yeux et son écran, s’apprêta à faire face au déluge d’emails de barrage qui suivraient immanquablement le meeting, et sursauta en voyant Tara Reid en position de... yoga ?

— Ah non, je viens de passer 4h en comex pour défendre l’avancement du projet, ce n’est pas le moment de me faire la morale.

Tara, comme pour faire écho à Pluto, expira tranquillement par la bouche, ouvrit les yeux, et remit doucement sa tête et ses jambes dans le bon ordre.

— Tu devrais essayer le yoga, ça te ferait du bien. Tu penses à une chose à la fois.

— Justement, là tout de suite, j’aimerais me concentrer sur tous les managers qui font leur séance de Cover My Ass. Si je ne participe pas, je perds aux chaises musicales.

— J’ai l’impression que ta réunion a été festive. J’ai raté quelque chose ?

— OK, je sais que tu ne me lâcheras pas tant que je ne t’aurai pas raconté, alors allons-y. Avec les 5 entités qui attendent la release du mois prochain, on a fait le dernier point mensuel du projet. Et entre les managers qui n’ont pas exactement ce qu’ils pensaient avoir, les projets qui devront attendre les fonctionnalités qu’on livrera finalement en retard, et les personnes qui ont bien compris que certains retards annoncés signifient “jamais”, ça a été une foire d’empoigne. Tout le monde profite de l’occasion pour trouver une excuse à ses propres retards. Je sais que ma boîte mail est en train de se remplir de passive agressivité. C’est du pain béni pour tout le monde.

— Dis-moi, tu as beaucoup de responsabilités. Un si gros projet, tant de clients, ça en fait un gros cargo à mener à bon port.

— Arrête tes sarcasmes, ça ne va rien résoudre.

— OK change-toi les idées, alors. On va jouer à pile ou face. Pile tu me donnes 10€, face je te donne 15€. Ça marche ?

— Tu m’étonnes que mon projet te semble compliqué. Tu n’as pas vraiment la bosse du commerce, toi. Je lance la pièce.

...

— Pile, donne-moi 10€.

— Et dire que tu devais me remonter le moral. Tiens.

— On rejoue ?

— Non merci, je vais essayer de garder mon salaire, plutôt que te le donner.

— Pourtant tu devrais.

— ... J’ai l’impression qu’il y a une leçon dans ton petit regard narquois.

— Tu vois souvent les fruits de ton imagination faire du yoga dans ton bureau, si ce n’est pour te montrer ce qui est caché sous tes yeux ? On a joué à pile ou face, tu as misé 10€, et j’en ai misé 15. Moi j’avais 50% de chances de gagner 67% de ma mise, et toi 50% de gagner 150% de ta mise. Tu avais toutes les raisons de jouer, mais tu as perdu. Pourtant, au casino, c’est toujours la maison qui gagne, avec des probabilités largement moins favorables. Alors où est le secret ?

— Les probabilités ne s’appliquent que si on joue suffisamment de coups, tout le monde sait ça.

— Et pourtant tu joues ton projet sur un seul coup de dé. Avais-tu 100% de chances de fournir 100% de ce que tu avais promis ?

— Évidemment non, un projet n’est pas une usine à saucisses. C’est complexe et imprévisible. Je vois bien où tu veux en venir, mais tu sais comment ça se passe. On veut des releases pour rationaliser. Alors on y met tout le monde, et on gère les priorités.

— Je n’ai pas l’impression que tu ais géré grand-chose. Avec un tout petit peu de calcul, tu aurais vite vu que la probabilité de livrer ton gros projet en temps et en heure était proche de 0. Il suffisait d’estimer les probabilités de livrer chacune des fonctionnalités promises, et de les multiplier. Même en estimant mal chacune des probabilités. En fait c’est inéluctable. Génère tes probabilités aléatoirement, de toute façon tu arriveras toujours au même résultat. Tiens faisons un bête calcul. Si tu as 10 fonctionnalités dont chacune a 90% de chances de réussir, l’ensemble a 0,9¹⁰, c’est à dire 34% de chances, de réussir. Personne ne tenterait ce pari. Quelles que soient les probabilités de livrer chacune de tes fonctionnalités, tu serais arrivé à une probabilité de succès du projet qui n’a aucun sens d’un point de vue industriel. Ça ne me semble pas très sérieux, tout ça.

— Bien, gérer un gros projet c’est mal. Mais quelle est l’alternative ? Gérer plein de petits projets ?

— Et pourquoi pas ? Qui t’a demandé de monter un si gros barnum ? Tu as quelque chose à prouver, peut-être ? Tu as des entités qui ont des attentes. Pourquoi ne traites-tu pas ces attentes une par une ? C’est ce que font tous les commerçants.

— Attends laisse-moi réfléchir. Quand tu le dis comme ça, ça semble évident. Pourtant il y avait des raisons. Oui je sais. On veut industrialiser, mettre le maximum de choses en commun. C’est pour ça qu’on veut connaître les besoins en amont, et essayer de servir tous les besoins en même temps.

— Tu mélanges tout, tu te perds toi-même. Déjà, tu vois bien que le fait de mettre les choses en commun vient de votre côté, pas de vos clients. On a progressé. Ensuite, tu confonds la prédiction de besoin, l’architecture, la gestion des dépendances, les estimations, les engagements. Tu mets tout ça dans un gros panier, et tu l’appelles release. Et tu te retrouves dans le cas que je pensais réglé depuis plus de 20 ans. Un gros train, qu’on a chargé au maximum parce qu’on a peur de manquer du fait du délai. Une boule de dépendances parce qu’on a mis toutes les choses qui avaient l’air de se ressembler dans les mêmes boîtes que tout le monde utilise. La même promesse à tout le monde. Qui plus est sur un engagement qui n’est ni ce dont les utilisateurs ont besoin, ni ce que le produit va proposer, mais sur une espèce de contrat intermédiaire dont tout le monde a une grille de déchiffrement différente. Saupoudre ça de guerres d’influence, et tu as 4h par mois de gaspillage et de cheveux qui blanchissent inutilement.

— Si seulement on se limitait à ces 4h. Ça c’est juste le spectacle en direct. Ça demande beaucoup de travail pour en arriver là.

— C’est bien, vide ton sac, ça fait du bien.

— Bon reprenons. Je traite chaque demande, ou chaque client, indépendamment. Je vois à peu près comment ça pourrait s’organiser. Ça a l’air tellement simple.

— Exactement, et tu gères proprement l’incertitude sur chacun de ces items. Un nouvel horizon ça fait du bien hein ?

— En plus tout le monde sait que c’est plus facile d’estimer des petites choses.

— Heureusement que j’ai fait mon yoga avant, je savais que ce serait long avec toi. Tu me dis que le logiciel est complexe et imprévisible, et ensuite tu me dis qu’il faut donc mieux le prédire. J’espère que tu vois le problème ?

— Oh oui, cynefin, on y revient toujours. Je ne dois pas essayer d’optimiser la prédiction mais la réponse.

— Et voilà, tu itères. Chaque itération est un pari. A la fin de chaque étape, tu vérifies où tu en es. Tu identifies tes certitudes et tu cherches comment les vérifier. Tu prends le prochain pari en fonction des opportunités les plus à jour. Au passage, tu en profites pour adapter le système : en renforcer les éléments qui entraînent les résultats qui te plaisent, et affaiblir ce qui dégrade le contexte. Comme ce que disent les livres depuis maintenant une trentaine d’années, quoi.

— OK j’ai l’impression de comprendre. Alors récapitulons. D’abord, je traite chaque client, chaque engagement, indépendamment des autres.

— En façade, oui. En interne, ton équipe se débrouillera pour jongler avec tout ça. En faisant ça, tu rends tes engagements indépendants. C’est ça le secret. Tu n'obtiens plus une grosse chance d'échec, mais plein de chances de succès: à la place de 34% de chances de succès, tu as 10 fois 90% de chances de satisfaire quelqu’un. Et là, une financière ou une joueuse de poker te suivent.

— Ça a du sens, tout d’un coup. Pour chaque demande, j’itère avec le client. Il faut donc que je commence à leur livrer des choses bien avant les dates promises.

— Exactement, ça va t’obliger à travailler en plus petites étapes. Tu vois, tu ne multiplies pas seulement les paris en multipliant les clients et les engagements, mais aussi les livraisons pour chaque engagement. Tu optimises pour accélérer les boucles de vérification, pas pour maximiser la quantité livrée. Chaque aller-retour est une raison de diminuer la probabilité de se tromper sur une livraison. Et c’est une chance supplémentaire de fabriquer de la confiance entre tes clients et ton équipe. Et puisqu’on parle de ça, tu noteras que tu parles de date promise, pas de conformité aux estimations. Sépare clairement les 2 actes d’estimation et d’engagement. En fait, la meilleure chose à faire avec une estimation, c’est de la jeter dès qu’on l’a traduite en engagement.

— Si je veux pouvoir itérer, il va falloir que je m’engage sur autre chose qu’une spec détaillée.

— Attends... vous échangez encore par spec détaillée ? Vous êtes dans ce siècle-là ? Évidemment, oui, il va falloir que tu bascules un peu plus dans ce que les dévs considèrent comme abstrait, c’est à dire ce que les clients considèrent comme concret, c’est à dire le besoin. Tu vas t’engager à faciliter la vie de quelqu’un en réglant ses problèmes concrets.

— Oh du coup on itérera autant pour vérifier qu’on comprend le problème, que pour vérifier que la solution va dans le bon sens.

— Exactement. Au sein de l’équipe, vous apprendrez à organiser votre code, non pas en bibliothèques réutilisées, prédéfinies, solides et stables, mais en domaines fonctionnels, en métiers, en besoins, qui pourront évoluer de manière autonome et donc réactive.

— Pardon ?

— OK, on en reparlera après tes formations DDD. Une chose à la fois. Pour l’instant, musclez vos talents de refactoring.

— Mais au fait, comment je justifie mon équipe si elle ne répond pas à ses clients d’une manière commune ?

— Là tu vas trop loin. Si tu ne sais pas justifier une équipe et son savoir-faire sans son logo, alors vous avez effectivement des gros problèmes. Le plus gros étant peut-être que ton équipe n’a pas de raison d’être, effectivement. Si ton équipe est justifiée, alors tu le sauras en répondant à tes clients d’une manière commune, pour des bonnes raisons. Il n’y a qu’un moyen de le savoir. Fonce mon tigre.

— Tu as raison, une chose à la fois. Rends-moi ma pièce, on joue la revanche.

Le bureau vide ne répondit jamais à Pluto. Tara avait disparu. Pluto se fit sortir de sa rêverie par les notifications de sa boîte mail. Il décida de laisser ça pour demain. Tant pis pour l’arène. Il se ferait probablement étriper le lendemain par les lions. Mais il commençait à avoir la peau dure, maintenant. Il savait plus que jamais qu’il se sortirait de ce jeu, ne serait-ce que par l’assurance d’avoir de nouvelles règles à proposer pour la prochaine partie. En éteignant son ordinateur avec un sourire pensif, il ne se rendit même pas compte qu’il avait perdu 10€ et une pièce.

Et vous, où vous situez-vous entre ce que subit Pluto et ce que propose Tara ?

Plus de publications

Post navigation

Comments are closed.