Traduction autorisée de l'article de Jason Gorman intitulé My First, Last & Only Blog Post About #NoEstimates publié sur son site le 1er Août 2015.

Mon premier, dernier et unique billet au sujet de #NoEstimates

J'ai gardé un œil ouvert sur ce qui se dit avec le hashtag #NoEstimates sur Twitter, et les gens m'ont demandé mon opinion plusieurs fois. Alors la voici.

Je crois, très fermement, que le problème avec les estimations vient du fait que nous nous posons la mauvaise question.

En fait c'est de là que de nombreux problèmes dans le développement logiciel apparaissent ; en posant la question au client "Quel logiciel voulez-vous que nous vous développions ?"

Ceci conduit naturellement à lister un ensemble de fonctionnalités, puis à poser la question de "Combien cela va-t-il coûter et combien de temps cela va-t-il prendre ?"

Si nous posions la question "Quel problème essayons-nous de résoudre, et comment saurons-nous quand nous l'aurons résolu ?" ‒ accompagnée de questions du genre "Pour quand avez-vous besoin d'une solution ?", "Qu'est-ce qu'une solution valable pour vous ?" et "Combien pouvez-vous dépenser pour résoudre ce problème ?" ‒ nous pourrions vivre une toute autre aventure.

Je crois que le développement logiciel a besoin de rester ancré dans la réalité, et la réalité est qu'il s'agit de R&D. Au début, la réponse la plus honnête à des questions du genre "Quelles sont les fonctionnalités nécessaires ?", "Combien cela va-t-il coûter ?" et "Combien de temps cela va-t-il prendre ?" est Je N'en Sais Rien.

Prétendre connaître l'inconnu est ce qui nous attire des ennuis en premier lieu. Nous ne savons pas si nous pourrons résoudre le problème avec le budget et le temps qui nous sont impartis.

Dans le monde du management où tout doit être mesurable et mesuré, cependant, personne ne veut entendre de telles vérités, et aucun développeur avec une hypothèque sur le dos ne veut l'admettre non plus. C'est ainsi que nous entrons dans le monde fantastique des contes de fées.

Une fois installé dans le monde des contes de fées ‒ dans lequel nous savons quelle liste de fonctionnalités nous devons produire pour résoudre le problème du client, et dans lequel nous pouvons prédire le temps et l'argent que cela va coûter ‒ il est quasiment impossible d'en sortir. Les budgets sont engagés. Les délais sont convenus. Les têtes sont mises à prix.

Et donc, ce qu'il se passe ensuite, nous laissons la réalité suivre son cours et lorsqu'elle ne correspond plus au conte de fées, un torrent de critiques et de récriminations déferle sur les acteurs. Généralement on pointe du doigt tout et tout le monde exceptée la cause première ; le péché originel du développement logiciel : prétendre connaître le futur.

Une fois que la première tornade est passée, l'instinct des managers et des clients est de "régler" le problème en "améliorant" les futures estimations. Ce qui correspond à régler le conte de fées en inventant un conte de fées encore plus élaboré, et à essayer de cacher le fait que ce sont des fantasmes. C'est pour le management l'équivalent du sacrifice de vierges pour faire tomber la pluie.

Le seul moyen de sortir du cauchemar des estimations est d'avouer que ce sont des "conneries", et d'accepter publiquement ‒ ou plutôt, d'adopter ‒ les incertitudes qui sont inhérentes à ce que nous faisons.

Oui, vous pourriez perdre l'appel d'offre si vous commencez par dire "je ne sais pas", mais considérez que le projet que vous perdez vous entraîne dans le même couloir de la mort dans lequel tout le monde souffre depuis des années. Ce n'est pas du travail. C'est passer du temps contre de l'argent.

Tentez donc d'offrir une estimation afin que le client puisse prévoir le coût au plus près. Mais vous devez être tout à fait clair à 100% qu'au bout du compte, vous ne savez pas. Nous ne pouvons tout simplement pas le savoir. Nous devons botter en touche.

Vendez-vous avec ce que vous savez réellement. Quel est le bilan de votre équipe ? Qu'avez-vous délivré dans le passé ? Combien cela a-t-il coûté ? Combien de temps cela vous a-t-il pris ? Et ‒ plus important encore ‒ est-ce que ça a marché ?

Lorsqu'un studio de cinéma embauche un réalisateur, le réalisateur ne donne aucune garantie sur le succès qui accueillera ce nouveau film, ou s'il va coûter plus cher que ce qui a été prévu, ou s'il va être terminé à temps. L'histoire du cinéma est jonchée de films incroyablement bons et qui ont connu un énorme succès mais qui ont coûté plus que prévu et qui n'ont pas été terminés à temps. Mais quoiqu'il arrive, James Cameron semble n'avoir aucun souci pour réaliser de véritables cartons cinématographiques. Ceci grâce à son passif, et non pas grâce à sa capacité à prédire les coûts de production et les délais.

Les studios parient de grosses sommes d'argent, et ‒ oui ‒ ils demandent des estimations, et les choses se compliquent lorsque les délais glissent et que les coûts augmentent, mais au final ils savent très bien ce qu'il en est.

Il est temps que nous en fassions autant.