Étiquette : estimation

  • Les esti­ma­tions de petites tâches ne sont pas plus précises

    Un des premiers mensonges qu’on vous livre trop souvent avec SCRUM c’est qu’on peut esti­mer des petites tâches avec bien plus de préci­sion que des grandes, et qu’en consé­quence on peut être assez fiable dans l’es­ti­ma­tion des une à trois semaines de chaque itéra­tion.

    Foutaises !

    Combien de temps faut-il pour mettre les blou­sons avant d’al­ler à l’école ? Mettons 30 secondes si on ne se presse pas. La réalité c’est que ça mettra plus souvent 5 minutes que 30 secondes, et ça c’est si on n’a pas besoin de se battre.

    400% de marge d’er­reur ? Comment voulez-vous faire un plan­ning avec de telles esti­ma­tions. Pour­tant on est sur une tâche connue, répé­tée chaque jour. Seule solu­tion, on triche et on compte 2 minutes 30. Même ainsi on a une marge d’er­reur de 100%. Hallu­ci­nant !

    Ce n’est pas un exemple choisi. J’ai le même problème pour termi­ner la tartine, pour boire le verre d’eau ou pour passer aux toilettes avant de partir, pour descendre dans la rue, pour faire le trajet, pour trou­ver le badge et passer le portail de l’école, pour montrer ma carte au vigile, pour les 10 mètres dans l’école au milieu des copains et autres parents d’élèves, pour le bisou de bonne jour­née avant de pouvoir repar­tir…

    Ce n’est pas non plus la faute d’une mauvaise analo­gie. Esti­mer une petite tâche est juste impos­sible parce que le moindre aléa fait tout explo­ser.

    Ajou­ter un lien sur une page ça prend 30 secon­des… sauf si on vous dit de chan­ger l’URL au dernier moment et qu’il faut faire deux fois le travail, sauf si c’est le seul lien à cet endroit et qu’il faut retou­cher les règles de style, sauf si le lien passe à la ligne en plein milieu et que visuel­le­ment ça ne le fait pas du tout sur ce compo­sant, sauf si l’es­pace pris fait glis­ser le bouton qui suit sous le clavier sur un smart­phone une fois le clavier déplié, sauf s’il faut partir à la chasse de la bonne URL parce que c’était « ça n’a pas d’im­pact, on donnera le lien au dernier moment », sauf si on se rend compte qu’il faut mutua­li­ser ce lien avec autre chose ailleurs dans l’ap­pli­ca­tion, sauf si ajou­ter un lien casse le test end-to-end et qu’il faut le réécrire pour faire passer le serveur d’in­té­gra­tion conti­nue au vert, sauf si… pour un simple foutu lien !


    Et pour­tant, on n’est jamais en retard à l’école. Malgré les aléas infi­nis à chaque tâche, le projet « aller à l’école » prend 45 minutes à ±15 minutes. Pas plus.

    Ce n’est même pas qu’es­ti­mer le projet dans son ensemble permet de lisser les risques de déra­pages, c’est que le temps que prend chaque tâche dépend de toutes les tâches précé­dentes et des options qu’il nous reste pour les suivantes.

    S’il faut lutter pour termi­ner le crois­sant alors on active sérieu­se­ment la suite. Si les toilettes s’éter­nisent je prépare le blou­son et le bonnet pendant ce temps. S’il le faut on presse un peu le pas. À l’école, si on arrive dans les derniers, aucun parent d’élève ou cama­rade ne nous retient dans les dix derniers mètres et le bisou sera vite fait. Si vrai­ment on est super en retard on peut toujours sortir le vélo ou prendre le tram.


    En réalité si SCRUM estime les fonc­tion­na­li­tés unitaires ce n’est pas pour s’en­ga­ger sur un résul­tat donné à l’avance, ni même pour mesu­rer si l’ité­ra­tion a été une réus­site ou un succès lors de la rétros­pec­tive. C’est unique­ment pour savoir où on va dans la boîte de temps qu’on s’est donnée. Rien de plus.

    Quand on vous dit que ça permet d’être plus fiable, derrière se cache l’hydre du « on va trans­for­mer vos esti­ma­tions en enga­ge­ment » voire du « on va ajou­ter vos esti­ma­tions une à une et ça donnera la dead­line de fin de projet si rien ne change ».

  • Story points

    Points de complexité, points d’ef­fort, tailles de tshirt… J’ai vu des équipes travailler avec des comp­tages allant d’une mesure en heures de travail à des mesures au simple nombre de tickets.

    Je n’ai pas trouvé de réelle corré­la­tion entre la réus­site des équipes et leur façon d’es­ti­mer, ou même avec l’exis­tence ou non d’es­ti­ma­tions.

    Si je devais trou­ver un critère commun à la majo­rité des équipes que j’ai vu bien fonc­tion­ner, le voilà :

    Les esti­ma­tions de tâches indi­vi­duelles sont réali­sées au lance­ment du travail. Elles ne sont pas utili­sées au-delà de la courte période de travail concer­née pour laquelle elles étaient prévues. Elles ne sont pas utili­sées en dehors de l’équipe ou de son fonc­tion­ne­ment interne.


    Déci­der. On estime les epic, ces gros blocs qui recoupent géné­ra­le­ment plusieurs semaines voire plusieurs mois. Ces epic servent à faire des choix, déci­der de l’op­por­tu­nité de réali­ser, confron­ter les prio­ri­tés, savoir s’il est réaliste d’at­teindre l’objec­tif avant un événe­ment parti­cu­lier. Dans tous les cas on parle de stra­té­gie et de tactique.

    Les points de complexité n’ont aucun sens à ce niveau. On a juste besoin d’un ordre de gran­deur. Les esti­ma­tions se font au doigt mouillé et c’est très bien comme ça. 30% de marge d’er­reur c’est presque de la surqua­lité.

    Ces esti­ma­tions n’ont aucune valeur en dehors de la prise de déci­sion. Le péri­mètre n’est pas vrai­ment défini, la tech­nique en est à l’étude de faisa­bi­lité et aux pistes tech­niques crédibles ou non.


    Réagir. Et puis à partir de là on passe éven­tuel­le­ment en réali­sa­tion. Mesu­rer l’avan­ce­ment permet de ne pas se perdre, d’iden­ti­fier les blocages, de se rendre compte quand on patauge. C’est ce qui permet éven­tuel­le­ment de dire « on a un problème, il faut chan­ger quelque chose » ou « l’ordre de gran­deur qui a mené à la déci­sion de réali­sa­tion se révèle faux, est-ce qu’on conti­nue ou pas ? ».

    On peut mesu­rer en fonc­tion d’es­ti­ma­tions de travail ou en fonc­tion de ce qui est livré à la sortie. Les deux ont du sens et je vous invite à faire les deux. Côté scrum on parle de la burn-down qui trace le travail, limité à une itéra­tion ou à une date butoir, et la burn-up qui trace la valeur produite sur du plus long terme.

    Ces esti­ma­tions ne servent qu’à ça, iden­ti­fier d’éven­tuels problèmes pour agir en fonc­tion. Elles ne servent pas à savoir si l’équipe travaille bien ou pas. Ce sont de sacré­ment mauvais indi­ca­teurs pour ça.


    Et donc les problèmes arrivent quand on croise les deux.

    Les esti­ma­tions et les plans ne sont pas faits pour mesu­rer le succès et le travail d’une équipe. Il sont faits pour déci­der et réagir. Rien de plus.

    Un plan long terme ne se construit pas en jouant au puzzle à agen­cer plein de petits blocs ensemble pour les caser dans l’agenda. Ça ne fonc­tionne déjà pas pour les tâches de pure exécu­tion, parce que 18 tâches de 10 minutes ne prennent pas le même temps qu’une tâche de 180 minutes.

    Ça fonc­tionne encore moins dès qu’il y a une acti­vité de réflexion, de créa­tion, ou simple­ment l’in­ven­tion de quelque chose qui n’existe pas. On ne connait pas tout à l’avance, le puzzle sera explosé avant d’avoir atteint le premier quart. C’est vrai autant d’un point de vue fonc­tion­nel que tech­nique.

    Mais surtout, le plan est fait pour être changé. Mesu­rer la réalité par rapport au plan c’est dire que le chan­ge­ment et l’im­prévu doivent être vali­dés en amont, qu’ils sont anor­maux, qu’en que si la réalité ne corres­pond pas au plan c’est la réalité qui a tort et que le problème se situe donc au niveau de ceux qui suivent le plan.

    Malheu­reu­se­ment essayer de tordre ou de contes­ter la réalité ne fonc­tionne que à ma connais­sance que dans les livres et les films de science-fiction (et encore : même là, en géné­ral, on a les problèmes qui nous sautent au visage dès qu’on essaie).

    Par­fois il y a aussi des problèmes au niveau de ceux qui suivent le plan, mais savoir si la réalité est conforme au plan est tout sauf le bon indi­ca­teur pour ça.

  • Respect du plan­ning et du péri­mètre

    Je lis les fiches de poste, je discute. Visi­ble­ment ce que les DG attendent prin­ci­pa­le­ment de leur direc­tion tech­nique c’est d’avoir de la visi­bi­lité sur la road­map et de garan­tir les délais de réali­sa­tion.

    Ne tape­rait-on pas un tout petit peu à côté ?

    Quand ça commence comme ça j’ai l’im­pres­sion que le boulot prin­ci­pal va surtout être de faire évoluer la DG, ou de s’as­su­rer que jamais oh grand jamais elle ne soit déci­sion­naire sur l’opé­ra­tion­nel.

    * * *

    Ce n’est pas ce qui était prévu ? Ça a pris plus ou moins de temps que prévu ? Ça couvre un péri­mètre fonc­tion­nel plus ou moins impor­tant que prévu ?

    Et alors ?

    Tant que les équipes livrent des réponses adéquates à un rythme correct, le reste n’est même pas secon­daire, c’est juste sans objet.

    On aurait peut-être pu faire une meilleure prévi­sion, mais peut-être pas. Ce qui est certain c’est qu’il y a quarante-douze trucs à plus forte valeur ajou­tée que de faire comme c’était prévu.

    Je préfère l’adé­qua­tion au besoin à l’adé­qua­tion au plan. Je préfère parler péren­nité, adap­ta­bi­lité, coût, inves­tis­se­ment, dette tech­nique, qualité, exper­tise ou capi­ta­li­sa­tion que meilleures esti­ma­tions.

    Et si le besoin est lié à une date précise, alors on livrera quelque chose à la date précise, du mieux qu’on le peux pour les ressources allouées. Peut-être pas ce qui est prévu ou espéré, mais quelque chose d’utile et perti­nent.

    * * *

    Si vous avez des problèmes de respect du plan­ning, ne commen­cez à pas à cher­cher des chan­ge­ments dans les équipes opéra­tion­nelles. Envi­sa­gez d’abord de faire chan­ger le fonc­tion­ne­ment de la direc­tion. Souvent le problème se situe là.

  • Et que fait-on des esti­ma­tions ?

    Quelle est votre stra­té­gie agile ?

    • Le plus stra­té­gique en premier ?
    • Ce qui est tech­nique­ment plus complexe en premier ?
    • Ce qui est le plus risqué en premier ?
    • Ce qui se voit en premier ?
    • Ce qui est le plus simple en premier ?
    • Ce qui apporte le meilleur retour sur inves­tis­se­ment en premier ?

    Il n’y a pas de bonne ou de mauvaise réponse. C’est unique­ment une histoire de stra­té­gie. L’im­por­tant est d’être cohé­rent sur une période pour mettre en œuvre cette stra­té­gie et de ne pas faire un peu de tout à la fois.

    Inté­res­sant de noter tout de même que sauf ordre de gran­deur extra­or­di­naire (donc facile à iden­ti­fier sans être bon en esti­ma­tion), seule les deux dernières stra­té­gies ont réel­le­ment besoin d’es­ti­ma­tion avant réali­sa­tion.

  • Toute l’es­time que je vous porte

    Toute l’es­time que je vous porte

    Comme beau­coup d’in­gé­nieurs, je suis réti­cent à donner des esti­ma­tions.

    je ne sais pas esti­mer

    Tous les jours, je résous des problèmes nouveaux, pour lesquels je n’ai encore jamais implé­menté de solu­tion.

    Si vous n’avez jamais fait d’in­for­ma­tique, mettez-vous bien ça dans la tête : Contrai­re­ment au maçon qui peut construire des dizaines de maisons, l’in­for­ma­ti­cien ne fait jamais deux fois la même chose. Il peut réuti­li­ser la solu­tion précé­dente à l’in­fini, en quelques heures. Qu’un déve­lop­peur fasse deux fois exac­te­ment la même chose est le symp­tôme d’un problème d’or­ga­ni­sa­tion.

    Si je passe plus de quelques heures, c’est qu’il y a un problème nouveau ou quelque chose de nouveau dans le problème, même si de haut il ressemble à un autre. Mon travail c’est unique­ment de créer ce qui manque, ce qui est nouveau par rapport à d’éven­tuelles solu­tions précé­dentes.

    Et pour ce nouveau, je vais devoir étudier le problème posé, proba­ble­ment décou­vrir des sous-problèmes qu’on n’ima­gi­nait pas. Je ne sais pas ce quelles diffi­cul­tés je vais rencon­trer, quelles solu­tions vont devoir être appliquées, comment les mettre en œuvre, si elles vont réus­sir ou échouer, et encore moins si le besoin racine va effec­ti­ve­ment être couvert à la fin de tout cela.

    Il y a plein de textes qui expliquent la problé­ma­tique de l’es­ti­ma­tion mais j’ai trouvé plus d’une fois que le récit de voyage de Michael Wolfe illustre très bien les enjeux avec une analo­gie que tout le monde comprend.

    vous non plus

    J’ai croisé de nombreuses personnes qui annonçaient savoir esti­mer assez correc­te­ment, et quelques unes qui semblaient effec­ti­ve­ment le faire. Vous en connais­sez peut-être aussi.

    En pratique à chaque fois qu’on y regarde de plus près, l’es­ti­ma­tion n’est pas plus juste qu’une autre. Au mieux on compense les mauvaises esti­ma­tions en jouant sur le contexte. L’es­ti­ma­tion est poten­tiel­le­ment respec­tée, mais elle n’en est pas plus juste. Et quand compen­ser ne suffit pas, on se rassure en consi­dé­rant que ça ne compte pas parce que c’est excep­tion­nel, qu’il y a une cause exté­rieure, ou en repor­tant la faute sur un tiers.

    Même les itéra­tions de la tant aimée métho­do­lo­gie SCRUM jouent sur le même registre : Donner une cible avec un enga­ge­ment permet d’avoir un peu de pres­sion sur l’équipe. C’est de la pres­sion dite « posi­tive », pour avoir envie d’at­teindre l’objec­tif.

    Au final c’est de la pres­sion tout de même, qui souvent se retrouve sur l’am­pli­tude horaire ou sur la fatigue. Quand le mana­ge­ment n’a pas une atten­tion et une culture extrê­me­ment forte sur le sujet, ça joue aussi sur une baisse de qualité ou une créa­tion de dette tech­nique. C’est humain. À défaut c’est le péri­mètre qui bouge, mais l’es­ti­ma­tion n’en est pas meilleure. Bref, on pallie la mauvaise esti­ma­tion en jouant sur le contexte.

    Si vrai­ment quelqu’un estime toujours juste à plus de 90%, sans compen­ser sur le contexte, c’est qu’il est en train de passer du temps à refaire ce qu’il a déjà fait. S’il travaille pour vous : virez-le et embau­chez quelqu’un qui saura réuti­li­ser plutôt que perdre du temps.

    même par petits lots

    Même l’es­ti­ma­tion par petits lots itéra­tifs n’est qu’une illu­sion. On estime effec­ti­ve­ment mieux des petites tâches qu’on sait perce­voir, mais c’est unique­ment parce qu’on réflé­chit déjà à la problé­ma­tique et à sa solu­tion au moment de donner l’es­ti­ma­tion.

    Par la suite on se trompe autant qu’ailleurs. On compense là aussi par l’am­pli­tude horaire, le stress de la pres­sion person­nelle, la qualité ou la dette tech­nique. C’est juste que plus la tâche est petite, plus le déca­lage probable est petit et donc moins il se voit de l’ex­té­rieur quand on regarde unitai­re­ment.

    Vous avez déjà remarqué qu’on ne fait pas tenir 8 tâches d’une heure dans une jour­née ou 5 tâches d’une jour­née dans une semaine ? Des tâches d’une heure dans une jour­née, prévoyez-en 6, moins le temps pour les réunions.

    Et des fois on a juste oublié un cas d’usage ou manqué une problé­ma­tique. Sur un lot impor­tant on aurait assumé et dérapé un peu. Sur une petite tâche le cas manqué peut prendre plusieurs fois l’es­ti­ma­tion de la tâche initiale. On en fait donc une nouvelle tâche, avec sa propre esti­ma­tion. Là aussi, l’ex­cuse du cas excep­tion­nel ou de la sortie de péri­mètre permet d’évi­ter de remettre en cause ses esti­ma­tions.

    Alors oui, les esti­ma­tions sur des petits lots ont tendance à être plus souvent respec­tées mais elles n’en sont pas beau­coup plus justes. Tout ceci n’est qu’œillères et illu­sions.

    C’est mieux – et c’est logique vu qu’on estime au fur et à mesure du projet, une fois la connais­sance acquise – mais ce n’est toujours pas bon.

    la mauvaise ques­tion

    On peut discu­ter de l’uti­lité des esti­ma­tions, de la capa­cité du genre humain à savoir donner des esti­ma­tions abso­lues. On peu aussi s’en­fon­cer dans un projet d’op­po­si­tion, scan­der #noes­ti­ma­te… mais qu’ap­por­te­rait-on comme valeur ?

    Je suis surtout agacé qu’on se pose surtout la mauvaise ques­tion. Au jour le jour je n’ai aucu­ne­ment besoin d’es­ti­mer. J’ai besoin d’ap­por­ter de la valeur. La seule ques­tion à me poser est « qu’est-ce qui amènera à priori le plus de valeur demain si je le fais aujourd’­hui ? » et mettre mes ressources dessus.

    La ques­tion n’est pas simple pour autant. J’ai besoin d’éva­luer si le niveau d’ef­fort à four­nir est rentable par rapport à la valeur ajou­tée atten­due. Ensuite j’ai besoin de prio­ri­ser les évolu­tions entre elles, en fonc­tion de la valeur et du niveau d’ef­fort.

    Sauf que juste­ment, je n’ai besoin pour ces usages que d’un ordre de gran­deur : Est-ce 10, 100 ou 1000 ? Est-ce beau­coup plus ou beau­coup moins que l’autre évolu­tion à laquelle je pense ? Tout autre détail est aussi utile qu’un para­chute pour monter sur une échelle.

    L’éva­lua­tion de la valeur atten­due subit de toutes façons les mêmes incer­ti­tudes que le niveau d’ef­fort à four­nir. Même s’il est fait à base d’une page pleine de formules, calcul de la valeur atten­due dépend parfois tota­le­ment de para­mètres esti­més au doigt mouillé, où même un ordre de gran­deur relève plus de la convic­tion que de l’es­ti­ma­tion.

    le mauvais usage

    Vous posez-vous vrai­ment la bonne ques­tion ?

    En cher­chant à savoir si votre projet dérape vous êtes simple­ment en train de regar­der s’il se conforme au plan prévu, à son esti­ma­tion. Véri­fier la vali­dité d’une esti­ma­tion ne vous appor­tera aucune valeur, surtout quand on sait dès le départ qu’elle est soumise à des aléas impré­vi­sibles.

    Pire, en impo­sant l’es­ti­ma­tion préa­lable comme indi­ca­teur, on freine l’ini­tia­tive (si je le fais, on prend un risque, même si je sais qu’il faut le faire), on freine la capa­cité de chan­ger (si on le fait, il faut recal­cu­ler le plan, re-esti­mer, négo­cier cette esti­ma­tion, expliquer le mauvais indi­ca­teur, ça ne vaut pas le coût ici, tant pis), et on oublie notre objec­tif (l’in­di­ca­teur est bon, tant pis si en fait on s’est rendu compte que ça ne créait pas la valeur atten­due et qu’il aurait fallu faire autre chose, ça aurait remis en cause le plan).

    Vous pouvez vous dire que vous saurez déjouer tout cela, rester agile et prag­ma­tique. Vous vous mentez, du moins tant que votre ques­tion sera « où est-ce qu’on en est par rapport aux esti­ma­tions ? ».

    C’est encore pire si vous utili­sez l’es­ti­ma­tion comme métrique pour appré­cier l’ef­fi­ca­cité ou la compé­tence de l’équipe de produc­tion. Là non seule­ment vous compa­rez juste des choux et des carottes, mais en plus vous inver­sez votre résul­tat : Ce sont des équipes qui respectent toutes leurs esti­ma­tions que vous devriez avoir peur. Elles masquent leurs erreurs en les compen­sant, volon­tai­re­ment ou non, et ça faus­sera toutes vos analyses sur la produc­tion passée ou future.

    arrê­ter de navi­guer dans le passé

    Les méthodes agiles vont dans le bon sens mais il est trop facile de s’ar­rê­ter aux arte­facts sans en comprendre l’objec­tif. Le prin­cipe n’est pas que de décou­per en petits lots plus faciles à esti­mer pour pouvoir reprendre une déci­sion entre les diffé­rents lots.

    Il y a aussi une philo­so­phie derrière, celle de l’ap­port de valeur.

    Seul le présent créé de la valeur. La stra­té­gie envi­sage le futur, les rétros­pec­tives tirent les leçons du passé. Si vous n’êtes ni dans un contexte de choix stra­té­gique ni en train de tirer des leçons en rétros­pec­tive, vous ne devez que vous préoc­cu­per de la meilleure façon d’ap­por­ter de la valeur là, main­te­nant, tout de suite, peu importe ce que vous aviez pu prévu ou estimé par le passé.

    Que dois-je faire aujourd’­hui et main­te­nant pour appor­ter le plus de valeur ?

    La perti­nence de l’es­ti­ma­tion passée ne m’est jamais d’au­cune utilité pour répondre à cette ques­tion. J’in­siste : Jamais. Je prends en compte les diffi­cul­tés et faci­li­tés dans des rétros­pec­tives pour m’amé­lio­rer. Je les prends en compte pour évaluer l’ef­fort à four­nir sur le reste à faire, et donc l’op­por­tu­nité de conti­nuer. Que ces faci­li­tés ou diffi­cul­tés aient été prévues ou non, que j’ai divisé par 2 ou multi­plié par 20 mon esti­ma­tion n’im­porte fina­le­ment aucu­ne­ment.

    Esti­mez, c’est utile, impor­tant. Ensuite oubliez-les et surtout ne les réuti­li­sez pas pour autre chose.

    (sur le même sujet We don’t need no stin­king esti­mates)

    Photo d’en­tête sous licence CC BY-NC-SA par Mark Notari

  • S’oc­cu­per de l’ave­nir et pas du passé

    Pour faci­li­ter les esti­ma­tions l’état de l’art est de travailler par compa­rai­son. On prend la tâche la plus simi­laire réali­sée par le passé et on estime si la nouvelle va rele­ver du même effort, un peu plus ou un peu moins, en fonc­tion des diffi­cul­tés atten­dues.

    Les esti­ma­tions s’amé­liorent vrai­sem­bla­ble­ment avec l’ex­pé­rience, tant parce qu’on a plus de chances d’avoir une réfé­rence simi­laire, que parce qu’on a déjà traversé beau­coup de problé­ma­tiques et qu’on risque moins d’en oublier une.

    Pour que cela fonc­tionne au mieux il faut savoir reve­nir sur ce qui a été réalisé : Iden­ti­fier les diffi­cul­tés, les faci­li­tés, les impré­vus passés. Cher­cher comment on pourra les résoudre mieux ou les iden­ti­fier plus tôt.

    Le dernier verbe conju­gué est au futur.

    Je cherche comment on pourra résoudre les diffi­cul­tés ou impré­vus, pas comment on aurait pu les résoudre. La diffé­rence est de taille. Le passé ne m’in­té­resse pas en soi, c’est trop tard. C’est le futur qui m’in­té­resse.

    Ça peut semble une ques­tion de voca­bu­laire mais ça ne l’est pas. Parfois la réponse est la même, mais pas toujours :

    Imagi­nons qu’une tâche a tota­le­ment dérapé à cause d’une problé­ma­tique majeure qui n’avait pas été prévue. Pour finir la tâche on a du résoudre la problé­ma­tique, elle ne bloquera donc plus jamais. Une démarche qui aurait pu permettre d’iden­ti­fier ce problème en amont ne m’in­té­resse pas, vu que juste­ment ce problème n’exis­tera plus à l’ave­nir. Je suis poten­tiel­le­ment inté­ressé par une démarche qui permet­trait d’iden­ti­fier les autres futurs problèmes qui ne ressemblent pas à celui passé et qui nous sont incon­nus aujourd’­hui. Si on trouve cette perle rare trouve alors on l’adopte, mais sinon on s’épargne du temps et on passe à autre chose.

    Une prévi­sion passée n’est qu’une vision d’un autre présent, peu utile pour prépa­rer l’ave­nir

    Dans la boucle d’ap­pren­tis­sage, je m’in­té­resse au temps passé, aux diffi­cul­tés rencon­trées, aux faci­li­tés que je pour­rais avoir, et aux impré­vus qui sont surve­nus. Je m’y inté­resse car ils sont sources d’amé­lio­ra­tion, que l’es­ti­ma­tion de la tâche passée ait été juste ou ait été fausse.

    En fait savoir quelle était l’es­ti­ma­tion passée et si elle a été respec­tée ne m’est d’au­cune utilité pour m’amé­lio­rer. Si j’ai eu un imprévu, alors que l’ana­ly­se­rai, même si fina­le­ment j’ai eu assez de temps pour le gérer. En fait je l’ana­ly­se­rai même surtout si j’ai eu assez de temps pour le gérer, parce que ça veut dire que j’ai eu une faci­lité par ailleurs qui mérite elle aussi d’être analy­sée.

    Inver­se­ment, si je n’ai eu aucune diffi­culté signi­fi­ca­tive, aucun imprévu ni aucune spéci­fi­cité remarquable, il est probable que je me serve du temps passé sur ma tâche comme réfé­rence pour la suivante simi­laire. Avais-je réussi ou échoué à mon esti­ma­tion la dernière fois ? Peu importe : Main­te­nant j’ai appris et je peux me servir d’un cas concret comme base de réfé­rence. L’es­ti­ma­tion passée n’entre pas en ligne de compte, et encore moins si elle était mauvaise.

    L’es­ti­ma­tion ne sert qu’à déci­der de l’ave­nir. Une fois qu’elle est passée, elle est aussi inté­res­sante qu’un bulle­tin d’ho­ro­scope de l’an­née dernière.

  • Dead­line

    Dead­line

    La plupart du temps la dead­line est une manif d’une fausse urgence créée par une absence de déci­sion
    Raphaël

    Je ne saurais mieux dire. Esti­mer puis mesu­rer le niveau d’ef­fort est impor­tant pour pilo­ter la déci­sion. Parfois la date de livrai­son est un élément néces­saire, mais le plus souvent il ne s’agit que d’un élément arti­fi­ciel qui se veut moti­vant et qui ne vient que d’une inca­pa­cité à pilo­ter l’ef­fort en continu, à s’adap­ter aux situa­tions qui se présentent.

    Qu’im­porte quelle était l’es­ti­ma­tion précé­dente, la date qu’on a pu maladroi­te­ment en déduire. L’im­por­tant est quelle est la déci­sion la plus perti­nente à prendre aujourd’­hui, en fonc­tion de la valeur produite, et du niveau d’ef­fort encore à four­nir pour ce qu’on envi­sage.

    Le reste est simple­ment hors sujet, y compris savoir si on est « en avance »,  « en retard » ou même « parfai­te­ment dans le plan­ning » par rapport à la date prévue en direc­tion. Le pilo­tage par la date est juste une inca­pa­cité à prendre ce recul et à s’adap­ter au présent plutôt qu’aux plans passés. Tout envi­sa­ger en un bloc et sous forme de retard ou d’avance est juste telle­ment plus rassu­rant, plus simple… Ça n’ap­porte malheu­reu­se­ment aucune valeur.

    Photo d’en­tête sous licence CC BY-NC-SA par João Almeida

  • Esti­ma­tion is evil

    Peut être est-ce du à mon inca­pa­cité flagrante à sortir de bonne esti­ma­tions, mais je suis convaincu que l’exer­cice est des plus nocifs. Je conçois le déve­lop­pe­ment comme une acti­vité créa­tive, avec des problèmes qui sont large­ment incon­nus et des besoins qui sont à peine effleu­rés.

    Esti­ma­tion is evil, chez prag­prog.

    Soit on fait semblant, soit on accepte que les esti­ma­tions soient en perma­nence fausses, soit on tient les esti­ma­tions. La dernière option implique forcé­ment une astuce bien connue : c’est la qualité qui trinque. C’est l’op­tion des SSII, mais elle me parait diffi­ci­le­ment tenable en interne à une société.

    Le problème c’est que le busi­ness a besoin d’avoir des dates et de les commu­niquer. Passer du « produire ce qu’on vend » au « vendre ce qu’on produit » est loin d’être simple. L’équi­libre du néces­saire compro­mis est parfois diffi­cile à trou­ver.

  • Perplexité, complexité, vélo­cité … une autre vue

    J’ai lu « Perplexité, complexité, vélo­cité » sur le blog d’OCTO. L’ar­ticle est bien tourné et on sort complè­te­ment convaincu. Mon problème c’est que quelques heures après j’ai commencé à avoir des doutes et plus les jours avancent plus mes doutes se trans­forment en avis contraire. Je vous encou­rage à lire d’abord le billet d’OCTO, le mien n’aura de sens qu’en réponse.

    À quoi sert la vélo­cité ?

    À quoi sert la vélo­cité ?

    1.     Esti­mer ce qui sera réalisé ou non dans le sprint

    2.     Mesu­rer la produc­ti­vité de l’équipe

    3.     Mesu­rer le réalisé pour le projet, le produit

    Ma diver­gence avec l’ar­ticle source vient d’un constat simple : Nous n’uti­li­sons pas cet indi­ca­teur dans le même objec­tif. Lui l’uti­lise pour mesu­rer la produc­ti­vité, moi pour amélio­rer les esti­ma­tions.

    Amélio­rer les esti­ma­tions

    Amélio­rer les esti­ma­tions c’est faire en sorte de mieux évaluer ce qui sera livré dans chaque sprint et aider à la prio­ri­sa­tion. Bref, gérer le projet.

    Pour amélio­rer nos esti­ma­tions on tente de se baser sur les tâches simi­laires précé­dentes et on en réuti­lise l’es­ti­ma­tion sans tenir compte de la produc­ti­vité de l’équipe. On utilise pour cela une unité virtuelle qui nous détache des jours/hommes : le point. Réali­ser une esti­ma­tion ainsi est de plus en plus simple, rapide et fiable.

    Pour prendre en compte les évolu­tions de produc­ti­vité (équipe plus effi­cace ou dette tech­nique gran­dis­sante) c’est le nombre de points réali­sable dans un sprint qu’on fait varier. Afin de ne pas sortir le dé pour évaluer ce nombre de points, on se base sur ce qui a été réalisé dans les quelques sprints passés et on tente de rester sur une courbe la plus stable possible.

    Nos réfé­rences d’es­ti­ma­tion sont stables, nos esti­ma­tions se fiabi­lisent avec le temps. Le nombre magique de points qu’on peut mettre dans un sprint, c’est pour moi ce qu’est la vélo­cité de l’équipe.

    En prenant en compte la tech­nique

    Si on calcule en points et pas en heures ou en jours, ce n’est pas parce qu’on compte en complexité fonc­tionne, c’est pour s’au­to­ri­ser à faire varier la somme totale plutôt que chaque esti­ma­tion.

    Il ne faut pas perdre de vue que notre objec­tif reste bien d’éva­luer une charge de déve­lop­pe­ment. Il faut donc tenir compte dans nos esti­ma­tions de tout ce qui est néces­saire à évaluer le temps de déve­lop­pe­ment et livrer la fonc­tion­na­lité : Ça va des besoins fonc­tion­nels à la complexité tech­nique en passant par les contraintes orga­ni­sa­tion­nelles spéci­fiques.

    Si je ne prends en compte que la complexité fonc­tion­nelle, l’es­ti­ma­tion n’aura plus aucun lien avec le temps de déve­lop­pe­ment. Pour savoir ce qui tient ou pas dans le sprint, on en vien­dra à faire une esti­ma­tion globale, au jugé, sans réfé­rences simi­laires : tout l’in­verse de l’objec­tif.

    Outil privé versus indi­ca­teur public

    À mon humble avis l’er­reur de l’ar­ticle n’est pas seule­ment de faire de la vélo­cité une mesure de produc­ti­vité, c’est en plus de l’avoir commu­niquée à l’ex­té­rieur de l’équipe.

    Du coup, forcé­ment, la vélo­cité devient un enjeu poli­tique. L’équipe, son mana­ger, son coach commencent à avoir inté­rêt à amélio­rer l’in­di­ca­teur au lieu de se concen­trer sur ce qui devrait être leur seul objec­tif : appor­ter de la valeur au produit.

    Que la vélo­cité augmente, dimi­nue, c’est quelque chose propre à l’équipe. S’il faut un indi­ca­teur de produc­ti­vité et de pertur­ba­tion, il faut publier la seule chose impor­tante : la progres­sion de la valeur du produit (si ça ressemble au para­graphe précé­dent, ce n’est pas une coïn­ci­dence).

    Cette vélo­cité doit être prise pour ce qu’elle est : un outil d’es­ti­ma­tion, de plani­fi­ca­tion et de prio­ri­sa­tion. Comme tous les outils, il a voca­tion à être utilisé en interne, par l’équipe, et nulle part ailleurs.

    Et la complexité fonc­tion­nelle ?

    Mon second problème est là : Selon moi la complexité fonc­tion­nelle n’in­dique rien de valable. Ce n’est pas une mesure de ce que coûte la fonc­tion­na­lité, ce n’est pas une mesure de ce qu’ap­porte la fonc­tion­na­lité, et inci­dem­ment ce n’est pas une mesure de l’im­pli­ca­tion ou de la produc­ti­vité de l’équipe.

    Tout au plus la complexité fonc­tion­nelle permet de faire une première esti­ma­tion des histoires utili­sa­teurs qui ne sont pas prévues pour tout de suite ou dont on ne connaît pas la complexité tech­nique.