Note de lecture : Software by Numbers, par Mark Denne & Jane Cleland-Huang

Note : 5 ; Des idées réellement intéressantes dans l’IFM. Mais un propos sec et qui manque de profondeur sur certains sujets.

J’avais déjà eu l’occasion de croiser des références à cet ouvrage, suffisamment pour me décider à le lire, ce qui a fini par arriver. La totalité de l’ouvrage s’appuie sur une démarche appelée IFM, pour « incrémental funding methodology ». Formalisée au début des années 2000, cette approche se dit s’adapter aussi bien à Unified Process qu’à une approche agile. Force est de constater qu’elle a toutefois plus d’affinité avec des approches agiles !

Le livre en lui-même n’en impose guère : il ne compte que 180 pages, structurées en 11 chapitres. Le premier chapitre reprend quelques éléments de la philosophie agile (n’oublions pas qu’elle n’était pas largement développée à l’époque) : délivrer de la valeur au plus tôt et écouter la voix du client. C’est aussi dans ce chapitre que l’auteur introduit un concept important : le MMF (Minimum Marketable Feature), ou le lot de fonctionnalités qu’il faut livrer afin d’acter un incrément de valeur pour le client.

La douzaine de pages du chapitre suivant introduit le second concept import : le « new ROI », qui est tout simplement une application de la valeur-temps (NPV) bien connue en finance. Et déjà les premières tables d’actualisation de valeur apparaissent.

Lire la suite

Note de lecture : Planning Extreme Programming, par Kent Beck & Martin Fowler

Note : 6 ; Quand planifier rime plus avec visibilité qu’avec « estimer ».

L’extrême programming se focalise sur des cycles de développement fortement itératifs, au sein desquels l’interaction avec le client et permanente et le formalisme réduit au minimum. Dans ce cadre, écrire un livre sur la planification d’un tel processus peut sembler une gageure. En fait, ce livre ne traite guère de métrique d’évaluation ou de consommation du développement, mais se focalise sur les aspects humains. Planifier en Extreme Programming, c’est avant tout s’assurer que l’on travaille sur les choses les plus importantes et pouvoir se coordonner avec les autres (le sujet du 1er chapitre). Pour faire cela, il faudra aussi estimer, mais différemment.

Cet ouvrage, co-écrit par deux grands noms de la communauté, n’est guère long : 130 pages ! A l’instar de nombreux volumes de l’XP series, il compte beaucoup de chapitres, il y en a 27. Les passer tous en revue serait fastidieux, je vais me contenter de relever quelques éléments qui m’ont marqué ou que j’ai aimé.

Lire la suite

Soirée « en finir avec… »

Cela faisait déjà un petit moment que je pensais à ma petite soirée mégalo à moi. Oh, surprise, elle a fini par avoir lieu ! Nous nous sommes donc retrouvé ce Jeudi 29 Janvier chez Zenika autour de ce thème. Cette fois, ce ne sont pas les intempéries, mais une grève inopinée des transports qui ont eu raison de l’enthousiasme de 2/3 des inscrits. Heureusement pour nous le format d’atelier que nous proposions se prêtait bien à un groupe plutôt restreint, une vingtaine de personnes.

Bon, c’est ma soirée, c’est donc à moi de faire l’ouverture !

Pas de répit pour les braves, on enchaines avec les propositions et les choix de sujets !

La place de marché

Visiblement, choisir un sujet avec lequel on veut en finir n’est pas un problème.

image

Nous allons former 3 groupes dont les sujets seront finalement :

  • En finir avec le PO
  • En finir avec les Sprints
  • En finir avec les estimations

Première mission : produire un teaser sur son sujet !

image

Teasing, teasing

Les séquences duraient toutes 20 minutes. Cela peut paraitre long pour produire un teasing d’une minute ou moins, mais il fallait compter sur l’échauffement ! Les résultats sont timides, avec quelques bonnes idée :

  • Un sprint, c’est un mini cycle en V !
  • Un rôle de PO, c’est déjà fragmenter l’équipe.
image

Tout ca reste bien timide. Dans la forme, les équipes théatralisent différemment leurs présentations. On clos cette première partie par un petit perfection game.

image

Construire une mind-map

Cette seconde séquence durait également 20 minutes. Chaque équipe ayant pour mission de développer les idées initiées pour le teaser.

image

Voyons les résultats obtenus.

En finir avec le Product Owner

Plus de questions que de réponses à la fin du temps imparti. De bonnes questions de toute évidence, le temps ayant manqué pour aller plus loin.

L’équipe a probablement laissé échapper certaines idées :

  • Product Owner versus Product Ownership. Je suis même étonné que le groupe ait laissé échappé celui-là…
  • Les antagonismes et la déresponsabilisation que peuvent entrainer cette ségrégation des rôles.

La tendance de voir aujourd’hui ce rôle de PO comme celui d’un analyste et retourner ainsi à l’ancien modèle. Mais en gardant la conscience tranquille car le rôle est occupé !

Bref, il y avait quand même de quoi dire. J’avais traité le sujet il y a déjà un moment. Mais il est vrai que pour écrire un post, je m’accorde bien plus que 20 minutes !

image

En finir avec les Sprints

L’équipe a relevé quelques points tout à fait pertinents, comme l’essoufflement inhérent à cette pratique, le problème d’être « figé » sur une période de temps. Même si le « le sprint, si j’en fais je suis agile, non ? » est précisément la logique que j’essaie de combattre. Il n’en reste pas moins une matière première intéressante.

De mon côté, je crois que j’aurais aussi appuyé sur le côté « stock » inhérent à la préparation du travail et à la démonstration d’une quantité de travail sur une période de temps, fut-elle courte. Sans oublié « l’overhead » corrolaire de ce stock (durée du planning meeting meetin, de la démo…) ainsi que le délai induit pour avoir du feedback.

Je n’ai pas encore traité ce sujet dans ma série de posts. Peut-être le ferais-je cet été ?

image

En finir avec les estimations

On a de quoi se régaler avec ce sujet, qui est au coeur du mouvement « no estimates ». Un point qui n’a pas échappé à cette équipe.

L’illusion de visibilité inhérent aux estimations a bien été vu par l’équipe, bien qu’elle n’ait pas poursuivi sa reflexion vers le rejet de responsabilité vers l’équipe de réalisation qui est souvent lié.

Dans le même ordre d’idée, la notion « d’engagement » a été accrochée. On s’est toutefois arrêté là en proposant comme substitut l’observation du réalisé, alors que c’est la notion même de « quantité » contre laquelle il faut lutter.

C’est également un sujet que j’avais abordé, assez récemment pour celui-ci.

image

Et alors ?

Mon analyse des travaux peut paraitre critique. Mais il est dans ma nature d’être exigeant, je le suis d’ailleurs aussi avec moi-même ! Mais si je remonte au moins quelque points sur lesquels il aurait été possible d’aller plus loin, il ne s’agit nullement d’une déception.

image

D’abord, il est assez facile pour moi d’identifier des points alors que je réfléchis sans limite de temps !

Ensuite, l’objectif de cette soirée était d’amorcer une reflexion. Un jeu auquel les 3 équipes se sont livrées ardemment. Les résultats sont probants et tout le monde a oeuvré à sortir du carcan des ides reçues.

Bravo !

Fin de soirée

Le buffet clôturant la soirée était amplement mérité pour tout le monde. Déjà on évoque le ScrumDay 2015 qui fait maintenant plus que pointer le bout de son nez…

image

Open-Space des pratiques agiles, en toute intimité

Pour ce premier Open-Space 2015, nous étions accueillis par Malten. Etait-ce l’éloignement (pourtant pas si important, à Neuilly), la pluie ou un début d’année déjà chargé ? Seul un quart des inscrits étaient fidèles au rendez-vous.

Qu’importe, les règles de l’open-space disent : « les personnes présentes sont les bonnes personnes » et c’est ce que nous avons acté !

image

Il n’y avait pas non plus floraison de sujets. Mais il y en avait bien assez pour alimenter nos discussions. Et une fois n’est pas coutume, j’en ai proposé un ! Il a même reçu plus que sa part de vote.

image

Il s’est ainsi retrouvé en première tranche horaire. Allons-y

Et la motivation, alors ?

Les principes agiles nous disent bien de « prendre un groupe de développeurs motivés et de leur laisser faire leur travail ». Mais motivés par quoi ? Quelle type de motivation nous intéresse ? Et est-ce une bonne idée de chercher à filtrer un type de motivation adéquat ?

Assez rapidement, quand on parle de motivation, on arrive sur les fameuses motivations intrinsèques de Jurgen Appelo. Mais sélectionner le type de motivation recherchée ou retenir ceux-ci n’est pas si facile. Ici, nous avons identifié le facteur que je trouve le plus intéressant de cet atelier :

Aligner les valeurs de l’entreprise avec le ou les types de motivations qui nous intéressent.

Ainsi on favorisera « l’équilibre écologique » recherché, si bien sûr ces valeurs sont effectivement vécues au jour le jour.

Nous avons évoqué bien d’autres choses encore, comme la spirale dynamique, mais bon, pour en savoir plus, il fallait être là, n’est-ce pas ?

image

Entracte

Dans l’autre salle, on discutait agilité dans le business avec un jeune chef d’entreprise qui vient de découvrir l’agilité par ses informaticiens…

image

On perd quelques participants au passage, mais cela ne saurait nous empêcher d’attaquer le second créneau !

#noestimates

C’est à la manière du hashtag Twitter que nous était proposé le sujet. Sur cet atelier nous ne sommes carrément plus que 3, cela simplifie la photo de groupe.

image

En parlant d’estimations, on remonte aux finalités du planning meeting, qui sont l’acquisition de la connaissance du sujet et l’alignement sur la valeur recherchée et le plan d’action.

Mais les estimations focalisent sur la taille (comme on faisait avant l’agilité) plutôt que sur la valeur ! Il faut donc un nouveau type de discussion centrée sur le découpage, afin de maximiser la valeur et se créer des options. Des sujets que j’avais traité d’ailleurs dans « en finir avec les estimations ».

image

En clôturant l’open-space…

Pendant ce temps, on parlait portefeuille de projets dans l’autre salle…

image

Bref, c’était certes un open-space restreint, mais la quantité n’a jamais primé sur la quantité dans mon esprit. Une soirée que je noterais donc 4 (sur 5) sur mon « fist of 5 ».

La rentrée en open space !

Il n’aura pas fallu attendre longtemps pour voir notre premier rendez-vous agile de la rentrée. C’est d’ailleurs un agenda assez rythmé qui nous attend dans les semaines qui viennent !

Mais en ce 4 Septembre, c’est un open-space auquel Yannick nous a convié dans les locaux de Zenika. Beaucoup d’inscrits, peu de venus (environ une quinzaine), mais comme on dit dans les open spaces : les personnes qui sont là sont les bonnes personnes. Petit avantage : l’achalandage de notre place de marché va plutôt vite. C’est bien car ce sont 3 créneaux qui sont prévus pour ce soir !

image

1er round : où il est question de (non) estimations…

3 sujets sont proposés dans chaque tranche de temps, avec 45 minutes consacrées à chacune q’entre-elle ! Voilà, c’est parti.

image

Chaque groupe prend possession de son espace. J’avoue apprécier d’avantage les petits groupes de 5 comme c’est le cas ici.

Il faut faire des choix, parfois difficiles. Ce groupe a choisi d’aborder la définition de « done », un sujet pour lequel j’éprouve un certain intérêt … 

image

Je me décide finalement à rejoindre le groupe de Dov pour débattre du « no estimates ». Je me suis dit que cela faisait une bonne suite à ma rubrique de l’été : en finir avec les estimations !

image

J’ai été rapidement déçu par la direction qu’a prise la discussion, ou plutôt l’exposé que nous a fait Dov de son contexte. Outre que je suis plus intéressé par la discussion que par écouter une seule personne discourir, il ne nous parlait pas de « no estimates », mais plutôt de « diluate estimate » !

Supprimer les estimations « parce qu’elles font durer le planning meeting trop longtemps » sans changer la logique de travail entre le PO et l’équipe, c’est un peu mettre un sparadra sur un bobo. Certes, cela fait diminuer la pression … mais ce n’est pas du « no estimates ». Où plutôt cela l’est au sens littéral, comme quoi le terme n’est pas bon, du moins à mon avis.

Un avis apparemment partagé par Arturo ! Du coup, nous réorientons la discussion sur le changement de focus : la valeur et la définition de succès, du projet ou du rôle du product owner. Dans le cas du projet de Dov, on parle d’implémenter ce qui est dans le backlog : tant que l’on en est là, il n’y a pas de changement de logique et cesser d’estimer est futile, peut-être même malhonnête par rapport au client ?

J’aurais aimé avoir plus de temps pour creuser la question du changement de logique avec Arturo, mais le gong nous a rattrapé. Nous avons à mon goût passé bien trop de temps dans une direction qui ne m’intéressait pas. Oui, je sais j’aurais dû appliquer la loi des deux pieds. Mais le sujet m’intéressait et je préférais le rediriger dans une voie qui me convenait plus.

2nd round : Trop d’agile tue l’agile ?

Pour faire 3 round, Yannick nous a proposé un timing assez rythmé, pour ne pas dire serré. Ca ne laisse pas beaucoup de temps au partage ni au « slack », c’est un peu dommage.

image

Pour ce second round, je me suis joins à Renaud. Je ne suis pas fan de la manière dont il a exprimé le sujet. Peut-être même pas fan du sujet, d’ailleurs. Mais je me dis qu’au pire, il se prête assez bien au hacking !

Renaud s’étonne d’un certain nombre de sujets abordés dans le cadre de Scrum qui sont justement incompatibles avec Scrum. Sans aucun doute, il a raison. Renaud profite de l’occasion pour nous parler de Shu Ha Ri, cela vous rappelle-t-il quelque chose ?

Je ne vois pas trop où le « trop d’agile » intervient dans cette discussion, car on en arrive à évoquer le « Scrum by the book », ce qui est un peu normal quand on parle de Shu, mais pour le seconde fois de la soirée, je m’aperçois que ce n’est pas une direction de la discussion qui m’intéresse !

image

Le « trop d’agile », c’est pour moi trop se focaliser sur le fait de faire effectivement de l’agile au travers de telle ou telle pratique. Et s’intéresser à l’orthodoxie des pratiques (comme nous le faisons là), c’est se focaliser sur les choses qui sont au final inintéressantes. L’agilité est un moyen, c’est aujourd’hui devenu une fin ! On est d’ailleurs en train de parler « d’audit agile » dans cet ordre d’idée, une perspective que je trouve déplaisante.

Merci une fois encore à Arturo pour m’avoir épaulé pour chercher à explorer cette voie. Une fois encore je me trouve un peu frustré par le gong qui raisonne…

3ème round : Convaincre sur l’agile

Rapide partage avant le dernier round. Trop rapide encore. Hélas encore !

image

Nous commençons à nous dépeupler. Ce dernier round ne comptera que 2 sujets, le 3ème passera à la trappe : c’était le mien ! Mais il semble n’intéresser que peu de monde. Peut-être même personne.

Un débat plus intéressant cette fois autour d’un cas réel : quelle prise pour convaincre un management par ailleurs dans l’échec !

image

On a beaucoup parlé de construire un argumentaire, enquêter, chercher des éléments… Tout cela ne vas pas me convaincre. Plutôt que d’argumenter avec de grands mouvements de manche, pourquoi ne pas faire ? Quelle expérimentation mener pour prouver ? Quel investissement semble assez raisonnable pour essayer quelque chose ? Après tout si la situation actuelle ne marche pas …

image

Conclusions

Ce n’était pas la grande forme pour moi, ce jour-là. Mais je souligne 4 éléments à l’issu de cette soirée.

Un petit groupe pour l’open space et des petits groupes de 5 pour discuter, c’est plus convivial et plus interactif !

Le timing était un peu serré du fait de la contrainte que l’on se donnait sur les 3 tranches de temps. C’est dommage ! Je pense que j’aurais préféré deux créneaux de qualité avec un peu de mou et un temps de partage prolongé.

Un peu frustré par la direction prises par les deux premiers sujets. C’est nécessairement un point de vue personnel, je ne peux escompter que tout le monde partage la direction que j’aimerais faire prendre à la discussion.

Enfin, mon sujet n’a finalement pas été abordé. En soi, cela n’a aucune importance. Mais il s’agissait du seul sujet traitant de conception, de craftmanship. Lors des rendez-vous agiles, j’entends toujours des participants parler du TDD « il n’y a que ça de vrai » … mais traiter vraiment du coeur du sujet, en l’occurrence de la conception émergente, cela finalement n’intéresse personne. Est-ce la différence entre l’intention et la réalité ?

En finir avec les estimations ?

Poker, Fibonacci et stock

Aujourd’hui j’aimerais parler d’estimations. D’estimations agiles, bien sûr. Elles n’ont rien à voir avec les estimations classiques. Ou du moins, pourrait-on le croire. Voyons cela !

L’un des points marquants souvent évoqué est que l’estimation n’est pas faite par une seule personne, mais par l’ensemble des membres de l’équipe, afin de bénéficier de la sagesse de la foule. En fait, l’estimation collective est utilisée depuis longtemps dans les approches classiques et est connue sous le nom de wideband Delphi. Il est vrai toutefois que la technique est sous-utilisée, beaucoup de chefs de projets préférant « optimiser » le temps nécessaire aux estimations ou ignorant simplement cette technique !

L’autre élément majeur est l’utilisation d’estimations relatives, décorellé d’une estimation en charge. Une approche déjà utilisée dans le Function Point Analysis. Ici l’approche agile se distingue par l’utilisation d’une échelle de précision adaptative qui a donné lieu aux fameux jeux de carte du planning poker

image

Il reste 2 points à soulever : un point de divergence et un point de convergence avec les approches classiques.

Tout d’abord la divergence. Les approches type Cocomo et FPA tentent d’estimer en comparant les sous-éléments techniques des briques à réaliser. Les briques elle-même étant plutôt de taille importante, d’où la nécessité d’opérer une subdivision. Les approches agiles travaillent aussi par comparaison, mais elles s’évertuent à subdiviser l’élément fonctionnel. Il n’est alors plus nécessaire de décomposer celui-ci en sous-éléments techniques. Bien sûr l’approche agile s’appuie sur le postulat que la solution qui sera retenue va être proche de celle utilisée pour la fonctionnalité référents. Mais cela ne va pas aussi loin que dans le cas d’une décomposition technique qui vérrouille complètement les postulats techniques !

Maintenant la convergence. Il y a bel et bien quelque chose que l’approche classique et l’approche agile appréhendent à l’identique : toutes deux s’efforcent d’évaluer une charge ou une complexité (mais est-ce si différent ?) d’un ensemble de choses à réaliser.

Finalement, la logique de l’estimation agile telle que nous la connaissons ne diffère guère de l’estimation classique : on nous demande de réaliser des pans de fonctionnalités pour lesquelles on nous demande d’estimer si c’est gros ou si c’est petit… Une question qui devrait nous donner à réfléchir concernant une approche où l’on prétend maximiser la valeur ! On dirait plutôt que nous voilà cernés dans une discussion pour optimiser la main d’oeuvre, ce n’est certes pas la même chose. Il est vrai que les prétentions « d’hyperproductivité » de Scrum vantées par Jeff Sutherland n’aident pas tellement à changer le focus du discours…

Ce qui ne va pas dans cette approche

Il y a un certain paradoxe à travailler en itérations « time-boxée » afin d’optimiser la valeur produite à chaque itération, et estimer la taille des fonctionnalités à délivrer.

D’un côté, le découpage temporel de la planification contraint le temps afin de permettre la mesurer de valeur par unité de temps. Mais de l’autre côté, la manière dont nous appréhendons les tâches nous conduit à focaliser la discussion sur la charge et le plus souvent à trouver des options pour la réaliser à l’économie. L’estimation agile ne nous invite pas à :

  • Rechercher la partie réellement porteuse de valeur dans une fonctionnalité présentée.
  • Découper une fonctionnalité en ensemble élémentaires d’apprentissages et d’hypothèses.
  • Rechercher comment obtenir du feedback le plus rapidement possible sur l’hypothèse la plus importante.

La logique estimative ne nous aide pas tellement dans notre quête de la maximisation de valeur. Mais cela ne s’arrête pas là. Elle est aussi un handicap sur plusieurs sujets :

  • En associant (comme Scrum le fait) l’estimation et l’engagement.
  • En donnant prédominance à la logique de coût et en autorisant de fait celle-ci à devenir un vecteur de priorité.
  • En nous enfermant dans une logique de périmètre (et les fermetures de choix associés).
  • En permettant une logique des « gros morceaux » qui reporte une partie des responsabilités sur l’équipe de développement.

Enumérés ainsi, ces sujets paraissent certainement un peu mystérieux. Ils ne vont pas le rester longtemps, il est temps de nous y attaquer !

Estimation et engagement

Je me suis longtemps battu contre l’idée qu’une estimation n’était pas un engagement. Dans les projets classiques, j’ai beaucoup illustré ce propos avec le cône d’incertitude [1], bien que cette représentation folklorique ait été ensuite un peu secouée par Laurent Bossavit [2].

image

Cette représentation met l’accent sur un facteur important : l’interval de confiance est plus large quand on a peu d’éléments sur le sujet, il se resserre ensuite progressivement en même temps que notre capacité d’extrapoler sur ce sujet s’améliore. Bien sûr, cet effet est beaucoup plus marqué pour les projets classiques et plus spécifiquement pour les projets non itératifs.

Je pensais m’être débarrassé de l’interprêtation « estimation = engagement » avec les projets agiles. Apparemment, pas tout à fait. Car si l’on commence un planning meeting scrum par des estimations, il se termine le plus souvent par une bonne vielle règle de trois qui nous donne l’engagement de l’équipe en fonction de sa vélocité. La traduction française de « commitment » qui peut donner engagement ou implication n’aide pas tellement quand on prend le premier choix. Par ailleurs, les derniers textes sur Scrum ont pris conscience de ce travers et préfèrent parler d’engagement (ou implication) sur l’objectif.

Bref, l’estimation est bien l’outil de choix pour enchainer l’équipe au banc de rame. Il faut dépoter de la fonctionnalité, la valeur de cette charge (ou de cette complexité, peu importe) n’est pas le sujet. On est bien dans une logique à l’ancienne !

Quand c’est pas cher, c’est prioritaire !

Prioriser n’est pas un acte facile. Du moins en principe. C’est la ligne d’arrivé d’un processus intégrant des dimensions telles que stratégie d’entreprise, opportunités marché ou développement client. Il n’est pas rare que ces tableaux de bord soient flous voir inexistant. Pourtant il faut prioriser.

C’est souvent dans ces situations qu’intervient le « si je n’ai pas d’estimation, je ne peux pas prioriser ». Ce n’est pas illogique de chercher à prioriser en terme de ROI simplifié (valeur/coût). Mais ça l’est d’éliminer le terme valeur ou de normaliser en prétendant que « tout a la même valeur », signe que quelqu’un ne fait pas son travail…

A partir de là, le travail de priorisation devient une pantalonnade allant de « on va commencer par ça, c’est pas cher » au marchandage du type « je ne comprend pas pourquoi c’est si cher… ».

image

Là encore, on aboutit hélas parfois à des interactions qui ne sont pas vraiment différentes de ce que l’on faisait avant…

Une affaire de périmètre

L’estimation, qu’elle soit en charge ou en complexité, nécessite que l’on arrête un certain nombre de postulats. Ce faisant, on arrête très tôt dans notre processus de conception les options que nous aurons choisi. Du moins, on ne les fixent pas s’il s’agit d’estimations, mais si l’on parle d’engagement…

C’est bien dommage. Car l’adaptabilité devrait être un trait dominant des projets agiles ! En réalisation, cela passe par des pratiques telles que les options réelles [3] ou le « set-based design » [4], [5] et [6]. Ce n’est pas strictement impossible de changer son fusil d’épaule en cours de route, mais les discussions gravitant autour des estimations de taille rendent cela bien plus difficile…

Au-delà des estimations que l’on fait pour l’itération, il y a celles concernant la totalité du projet. Car le plus souvent il faut en passer par là. A moins que le projet fasse l’objet d’un financement récurrent ou qu’il soit en autonomie de financement (ce qui revient à peu près au même), les décideurs ont besoin de savoir quelles sommes devront être engagées sur le projet. C’est normal. Là encore, l’outil ad-hoc est l’estimation. Mais il y a quand même deux façons d’appréhender cela.

On peut faire ça à l’ancienne : on prend le backlog, on met des chiffres en face de chaque élément de backlog et c’est notre feuille de route. Bravo : notre enfermement dans des postulats vient d’atteindre un nouveau niveau. Nous voici prisonniers dans notre périmètre de réalisation.

image

Oh bien sûr on nous proposera « d’accueillir le changement » car on est dans un projet agile. Mais dès que le vent tournera, on verra resurgir le chiffrage initial. Dans ces conditions autant contrôler les changements à l’ancienne, via un « change control board ». De toute manière, de tout ceci émanent des effluves pas vraiment neuves. Et utiliser des cartes de planning poker pour cela n’y change rien !

L’autre méthode consiste à utiliser le chiffrage initial pour dimensionner une enveloppe de financement … puis oublier ce chiffrage pour concevoir et réaliser le produit de manière réellement émergente, en exploitant à chaque itération les connaissances acquises.

Découper, ça c’est votre affaire

Si les approches agiles et Scrum en particulier [7] promeuvent le découpage fin des fonctionnalités, elles ne mettent pas réellement en place de contraintes en ce sens, si ce n’est la taille des itérations ! Mon propos n’est donc qu’une fonctionnalité ne doive pas dépasser une itération (j’ai hélas vu des équipes mettre jusqu’à 3 itérations pour produire une « story » !), non ce découpage doit être fin, bien plus fin.

image

Mais ça ne vient pas tout seul.

En fait, sans la motivation appropriée, il est bien plus aisé au product owner de garder les fonctionnalités à grosse maille, souvent en arguant « qu’il faut tout, de toute façon ! ». Si c’est plus facile de découper pour l’équipe de réalisation, qu’ils le fassent ! Dans le registre lâche, j’ai même entendu parler de « détail d’implémentation » !

Je ne vais pas débattre ici des vertus du découpage des fonctionnalités pour les projets agiles. Mais la logique d’estimation de taille, si elle ne nuit pas ici, n’est pas non plus d’une grande aide.

Ma véritable estimation agile

Assez ronchonné sur les pratiques d’estimation ! Si mes récriminations doivent servir à quelque chose, c’est à comprendre ce que je veux obtenir d’une véritable pratique d’estimation « new style » !

  • Pouvoir me focaliser sur la valeur lorsque l’on évalue la priorité des fonctionnalités. Et pour cela, il ne faut pas que la question de la taille vienne brouiller les cartes !
  • Ne plus considérer le périmètre d’une application comme un ensemble de fonctionnalités à négocier, mais comme un (voir plusieurs objectifs) auxquels je subordonne des hypothèses qui sont autant d’options sur lesquelles je n’ai pas besoin de trancher à l’avance.
  • Et au passage revisiter la notion d’engagement, abandonner les réestimations de reste à faire…

Ouvrons le bal !

Size-boxing

Nous avons évoqué précédemment la technique de priorisation par le ROI. Un grand classique : V/C ; Ainsi à valeur égale, la fonctionnalité la moins couteuse est la plus valable. Sauf que nous avons aussi souligné le travers consistant à sortir la valeur de l’équation. C’est un travers que je comprend aisément : ce n’est pas facile à appréhender la valeur, sauf dans certains contextes précis, et guère plus facile à mesurer quand ce n’est pas directement ou pas uniquement rattaché à une valeur faciale. Nous reviendrons sur cette question de la valeur un peu plus tard.

La solution la plus simple pour éviter le travers est de sortir « C » de l’équation. Il ne reste donc plus que la valeur qui du coup ne peut plus être ignorée. Un seul moyen : standardiser la taille, ou tout au moins travailler avec des tailles de fonctionnalités à réaliser assez semblables ! L’estimation de taille n’est d’ailleurs pas porteuse de valeur en elle-même [8], elle ne sert qu’à nous donner une idée de notre capacité afin de mettre notre processus sous contrôle.

image

Ainsi, de même que nous planifions avec une contrainte de temps (notre itération), mous devrions estimer avec une contrainte de taille. Nos interactions deviennent alors :

  • Comment découper la fonctionnalité souhaité pour la faire tenir dans ma contrainte de taille ?
  • Comment m’organiser en équipe afin d’accommoder cette contrainte de taille ?
  • Quelles décisions de structuration et d’architecture dois-je prendre pour rendre cela possible ?

Subordonner le périmètre au « pourquoi »

Réfléchir à la question du périmètre produit en terme de liste de fonctionnalités et de ce qu’on y ajoute et/ou retranche n’est pas agile. Cela m’oblige à penser en terme de stock et m’en encombrer l’esprit. J’avais évoqué ce point lorsque j’avais parlé du backlog. A ce processus mental qui m’ancre dans mes anciennes idées, je préfère travailler à partir d’objectifs, évaluer et tester mes options relatives à ceux-cis, et itérer. Mais pour ce faire, nous devons nous libérer du mode de pensée qui lie ensemble le budget et la liste des fonctionnalités. Désolé Scrum, mais le « backlog estimé » en est justement l’illustration !

La valeur métier, c’est quoi ?

On le dit et on le repète : l’agile est fait pour se focaliser sur la valeur métier. C’est fort bien dit et en en a plein la bouche, mais c’est quand même rudement abstrait, surtout quand on ne peut pas directement lier le produit ou le projet avec une dimension financière.

Je sors un peu du cadre de mon propos, mais je ne pouvais pas non plus complètement éluder la question.

La valeur ce n’est pas (seulement) des considérations de ROI, il s’agit plutôt d’un cocktail qui intègre plusieurs ingrédients pour former un modèle de valeur [9]. Prenons celui-ci, par exemple :

image

Il s’agit en fait plutôt d’un métamodèle. Il vous invite à construire votre propre modèle, basé sur 3 dimensions :

  • La finalité : elle n’est pas nécessairement purement financière. Il peut s’agir de donner une visibilité ou une image à l’entreprise, de se donner une avance technologique ou de tester un nouveau marché.
  • Les considérations, qui sont les facteurs intrinsèques ou extrinsèques difficilement quantifiables mais influençant vos décisions.
  • Les coûts et bénéfices du projet.

Chaque modèle de valeur est unique, il combine et priorise les éléments construits sur ces 3 axes.

Pour y arriver

Finalement, c’est probablement l’élément le plus facile, car nous avons déjà amené une bonne partie des éléments de réponse.

Tout d’abord, ne plus se servir du budget pour contraindre notre périmètre, mais partir du pourquoi et subordonner le périmètre à ce pourquoi à l’aide d’outils comme l’impact mapping [10].

image

Changer de logique d’estimation : plutôt que d’estimer la taille d’une fonctionnalité de périmètre donné, ré-orientons nos discussions pour estimer le périmètre des fonctionnalités afin de les faire tenir dans une taille donné, en gardant l’objectif dans notre ligne de mire ! C’est là un changement de paradigme fondamental, et il nécessite une façon de faire différente. L’occasion pour moi de développer cela un jour prochain, j’espère !

Changer de logique de processus. Kanban nous apprend à penser différemment: plutôt que de réfléchir en terme de stock, il nous conduit à penser en terme de « slot » de demandes disponibles qu’il suffit d’alimenter par ce qui est le plus prioritaire. Mais Kanban n’est pas une réponse suffisante quand on parle produit, car il focalise sur des questions de « capacité » et de SLA et non sur un objectif et la valeur, des aspects sur lesquels il est agnostique.

Doit-on arrêter d’estimer, comme peut le laisser croire (ou le laisser interpréter) le mouvement « no estimates » ?

Alors l’estimation, c’est mal ?

La réponse (aux deux questions précédentes) est : non ! Nous avons toujours quelque chose à estimer, mais il faut tourner cette estimation dans la bonne direction pour obtenir le résultat que nous voulons. Il faut estimer pour :

  • Individualiser les hypothèses et les relier à notre modèle de valeur.
  • Générer des idées et des options, fonctionnelles ou techniques.
  • Etre en mesure d’avancer par petits pas pour obtenir du feedback rapidement et mettre notre processus de développement sous contrôle.
  • Générer des interactions entre les acteurs du projet.

Nos estimations ne doivent pas nous conduire à :

  • Se débarrasser du problème sur l’équipe de réalisation.
  • Nous conduire à des marchandages entre les acteurs du projet
  • Nous enfermer dans une réincarnation du cahier des charges que l’on ne peut plier qu’à force de négociations.

La route est longue…

Références

[1] : Software Estimation, Demystifying the Black Art – Steve McConnell – Microsoft press 2006 – ISBN: 0-7356-0535-1 ; p. 37

[2] : The Leprechauns of Software Engineering – Laurent Bossavit – Leanpub 2013 ; p. 13

[3] : Commitment – Olav Maassen, Chris Matts & Chris Geary – Hathaway te Brake Publications 2013 – ISBN : 978-90-820569-0-7

[4] : Leading Lean Software Development – Mary Poppendieck & Tom Poppendieck – Addison Wesley / Signature series – ISBN: 978 0 321 62070 5 ; p. 87

[5] : Lean Software Development, An agile toolkit – Mary Poppendieck & Tom Poppendieck – Addison Wesley / ASD series 2003 – ISBN: 0-321-15078-3 ; p. 38

[6] : Implementing Lean Software Development, From concept to cash – Mary Poppendieck & Tom Poppendieck – Addison Wesley / Signature series 2006 – ISBN : 0-321-43738-1 ; p. 160

[7] : Agile Project Management with Scrum – Ken Schwaber – Microsoft Press 2004- ISBN: 0-7356-1993-X ; p. 196

[8] : Scrumban, Essays on Kanban systems for lean software development – Corey Ladas – Modus Cooperandi Press 2008 – ISBN : 978 0578002149 ; p. 99

[9] : Stand Back and Deliver, Accelerating business agility – Pollyanna Pixton, Niel Nickolaisen, Todd Little & Kent McDonald – Addison Wesley 2009 – ISBN : 978 0 321 57288 2 ; p. 98

[10] : Impact Mapping : Making a big impact with software products and projects – Gojko Adzic – Provoking Thoughts Ltd. 2012 – ISBN : 978-0-9556836-4-0

Autres Ressources