web-dev-qa-db-fra.com

Pourquoi la série Fibonacci est-elle utilisée dans le poker de planification agile?

Lors de l'estimation de la taille relative des user stories dans le développement logiciel agile, les membres de l'équipe sont supposés estimer la taille d'une user story à 1, 2, 3, 5, 8, 13, .... Les valeurs estimées doivent donc ressembler à la série de Fibonacci. Mais je me demande pourquoi?

La description de http://en.wikipedia.org/wiki/Planning_poker sur Wikipedia contient la phrase mystérieuse:

L'utilisation de la séquence de Fibonacci a pour but de refléter l'incertitude inhérente à l'estimation d'éléments plus volumineux.

Mais pourquoi devrait-il y avoir une incertitude inhérente dans les plus gros articles? L'incertitude n'est-elle pas plus grande si nous prenons moins de mesures, c'est-à-dire si moins de gens estiment la même histoire? Et même si l’incertitude est plus grande dans les grandes histoires, pourquoi cela implique-t-il l’utilisation de la séquence de Fibonacci? Y a-t-il une raison mathématique ou statistique à cela? Autrement, utiliser la série de Fibonacci pour une estimation me semble tout à fait comme de la science CargoCult.

85
asmaier

La série de Fibonacci n'est qu'un exemple d'une échelle d'estimation exponentielle. La raison pour laquelle une échelle exponentielle est utilisée provient de la théorie de l'information.

Les informations que nous obtenons hors estimation grandissent beaucoup plus lentement que la précision de l'estimation. En fait, elle se développe comme une fonction logarithmique , ce qui explique l’incertitude la plus forte pour les gros articles.

Déterminer la base optimale de l'échelle exponentielle (normalisation) est difficile en pratique. La base correspondant à l'échelle de Fibonacci peut être optimale ou non.

Voici une explication plus détaillée de la justification mathématique: http://www.yakyma.com/2012/05/why-progressive-estimation-scale-is-so.html

70
isak gilbert

Sur les six premiers chiffres de la séquence de Fibonacci, quatre sont premiers. Cela limite les possibilités de décomposer une tâche de manière égale en plusieurs tâches plus petites pour que plusieurs personnes puissent y travailler en parallèle. Cela risquerait de faire croire à tort que la rapidité d'une tâche peut être proportionnelle au nombre de personnes qui y travaillent. La série 2 ^ n est la plus vulnérable à un tel problème. La séquence de Fibonacci oblige en effet à réestimer les tâches les plus petites une à une.

39
KillerInsect

Selon ce blog agile

"parce qu'ils croissent à peu près au même rythme que celui auquel nous pouvons percevoir des changements significatifs de magnitude."

Oui en effet. Je pense que c’est parce qu’ils ajoutent une légitimité (Fibonacci! Math!) À ce qu’il s’agit en principe d’un exercice de très haut calibre (et non pas de cadrage) à un stade précoce (qui a une valeur).

Mais vous pouvez obtenir les mêmes résultats en utilisant la taille du t-shirt ...

17
Ibrahim Bashir

Vous voulez absolument quelque chose d'exponentiel, de sorte que vous puissiez exprimer n'importe quelle quantité de temps avec une erreur relative constante. La précision de votre estimation est également très probablement proportionnelle à votre estimation.

Donc, vous voulez quelque chose: a) avec des entiers b) exponentielle c) facile

Maintenant, pourquoi Fibonacci au lieu de 1 2 4 8? Je suppose que c'est parce que fibonacci se développe plus lentement. C'est en goldratio ^ n, et goldratio = 1,61 ...

15
fulmicoton

La séquence de Fibonacci n'est qu'un exemple parmi d'autres utilisés dans la planification de projets de poker.

Il est difficile d’estimer avec précision les grandes unités de travail et il est facile de s’enliser en discussions heures/jours si vos chiffres sont trop "réalistes".

J'aime l'explication de http://www.agilelearninglabs.com/2009/06/story-sizing-a-better-start-than-planning-poker/ , à savoir la série Fibonacci représente un ensemble des nombres que nous pouvons intuitivement distinguer entre eux comme différentes magnitudes.

6
kaj

J'utilise Fibonacci pour plusieurs raisons:

  • Plus la tâche est grande, plus les détails deviennent difficiles à comprendre
  • L'estimation de la tâche est le nombre d'heures que chaque membre de l'équipe a pour accomplir la tâche.
  • Tous les membres de l'équipe n'auront pas la même expérience pour une tâche donnée, ce qui ajoute à l'incertitude.
  • L'être humain s'épuise devant une tâche plus vaste et potentiellement plus complexe. Alors qu'une tâche deux fois plus complexe est résolue deux fois plus rapidement pour un ordinateur, cela peut en prendre un peu plus pour un développeur.

En additionnant toutes les incertitudes, nous sommes moins sûrs de ce que les heures devraient être. Cela se termine plus facilement si nous pouvons simplement évaluer si cette tâche est plus grande/plus petite qu'une autre pour laquelle nous avons déjà donné une estimation. À mesure que nous augmentons la taille/la complexité de la tâche, l’effet de l’incertitude est également amplifié. Je prendrais volontiers une estimation de 13 heures pour une tâche qui semble deux fois plus importante que celle que j’avais précédemment estimée à 5 heures.

4
Chris Chou