Warum wird die Fibonacci-Serie im agilen Planungspoker eingesetzt? [geschlossen]

94

Bei der Schätzung der relativen Größe von User Stories in der agilen Softwareentwicklung sollen die Mitglieder des Teams die Größe einer User Story auf 1, 2, 3, 5, 8, 13, ... schätzen. Die geschätzten Werte sollten also der Fibonacci-Reihe ähneln. Aber ich frage mich, warum?

Die Beschreibung von http://en.wikipedia.org/wiki/Planning_poker auf Wikipedia enthält den mysteriösen Satz:

Der Grund für die Verwendung der Fibonacci-Sequenz besteht darin, die inhärente Unsicherheit bei der Schätzung größerer Elemente widerzuspiegeln.

Aber warum sollte bei größeren Artikeln eine gewisse Unsicherheit bestehen? Ist die Unsicherheit nicht höher, wenn wir weniger Messungen durchführen, dh wenn weniger Menschen dieselbe Geschichte schätzen? Und selbst wenn die Unsicherheit in größeren Geschichten höher ist, warum impliziert dies die Verwendung der Fibonacci-Sequenz? Gibt es einen mathematischen oder statistischen Grund dafür? Ansonsten fühlt sich die Verwendung der Fibonacci-Reihe zur Schätzung für mich wie eine CargoCult-Wissenschaft an.

Asmaier
quelle
9
Wahrscheinlich nur, weil die Fibonacci-Sequenz "cool" ist. Jede exponentielle Sequenz würde funktionieren. 2^nMöglicherweise platzieren Sie die Zahlen zu weit. Warum also nicht die Fibonacci-Sequenz verwenden, um die es geht c*phi^n?
Interjay
+1 für 'ist cool'. Ich habe schon früher mit Programmierern zusammengearbeitet, die schon immer Kuriositäten in Fibonacci
stecken
2
Diese Frage scheint nicht zum Thema zu gehören, weil es um ... geht?
Adriano Repetti

Antworten:

78

Die Fibonacci-Reihe ist nur ein Beispiel für eine exponentielle Schätzskala. Der Grund, warum eine Exponentialskala verwendet wird, stammt aus der Informationstheorie.

Die Informationen, die wir aus der Schätzung erhalten, wachsen viel langsamer als die Genauigkeit der Schätzung. Tatsächlich wächst es als logarithmische Funktion. Dies ist der Grund für die höhere Unsicherheit bei größeren Artikeln.

Die Bestimmung der optimalsten Basis der Exponentialskala (Normalisierung) ist in der Praxis schwierig. Die der Fibonacci-Skala entsprechende Basis kann optimal sein oder auch nicht.

Hier ist eine detailliertere Erklärung der mathematischen Begründung: http://www.yakyma.com/2012/05/why-progressive-estimation-scale-is-so.html

isak gilbert
quelle
4
Dies ist eine tiefere Erklärung, auf die ich gehofft habe. Vielen Dank für diese Antwort.
Asmaier
"[Ein] kleiner Schätzungsaufwand hilft viel und [ein] großer Schätzungsaufwand hilft wenig" großer Artikel
ptim
40

Von den ersten sechs Zahlen der Fibonacci-Sequenz sind vier Primzahlen. Dies schränkt die Möglichkeiten ein, eine Aufgabe gleichmäßig in kleinere Aufgaben aufzuteilen, damit mehrere Personen parallel daran arbeiten können. Dies könnte zu dem Missverständnis führen, dass die Geschwindigkeit einer Aufgabe proportional zur Anzahl der Personen, die daran arbeiten, skaliert werden kann. Die 2 ^ n-Reihe ist für ein solches Problem am anfälligsten. Die Fibonacci-Sequenz zwingt tatsächlich dazu, die kleineren Aufgaben einzeln neu zu schätzen.

KillerInsect
quelle
7
Das ist eine interessante Sichtweise. Aber warum wird dann nicht die Reihe der Primzahlen 1,2,3,5,7,11, ... anstelle der Fibonacci-Reihe zur Schätzung verwendet?
Asmaier
2
Das ist eine hervorragende Idee. Tatsächlich treten sie häufig genug auf, um nur diejenigen auszuwählen, die ungefähr eine [1.5-2.0] ^ n-Reihe erzeugen. Fibonacci-Zahlen lassen sich zwar leichter aus dem Kopf neu erstellen, aber mit Tools wie JIRA können beliebige Werte festgelegt werden.
KillerInsect
5
Der andere Punkt ist der Abstand zwischen den Schätzungen. Je länger Sie schätzen, desto weniger Sicherheit besteht. Zwischen 3-5 und 5-7 ist der gleiche Unterschied, was die gleiche Sicherheit impliziert. Wenn Sie jedoch zwischen 8 und 13 wählen müssen (eine größere Lücke), müssen Sie wirklich prüfen, wie sicher Sie sind.
Chris
@ Plasmaier Ich denke, es liegt daran, dass Fibonacci-Zahlen exponentiell sind, wobei Primzahlen für die kleine Stichprobe linear sind, die normalerweise bei der Schätzung von Geschichten verwendet wird
icc97
17

Laut diesem agilen Blog

"Weil sie ungefähr mit der gleichen Geschwindigkeit wachsen, mit der wir Menschen bedeutende Veränderungen in der Größe wahrnehmen können."

Ja, genau. Ich denke, das liegt daran, dass sie einen Hauch von Legitimität (Fibonacci! Mathe!) Zu einer im Wesentlichen sehr hochrangigen Übung zur Größenanpassung im Frühstadium (nicht zum Scoping) hinzufügen (die einen Wert hat).

Aber Sie können die gleichen Ergebnisse mit T-Shirt Größen erzielen ...

Ibrahim Bashir
quelle
1
Diese Antwort ist fast genau dieselbe (verweist auf denselben Link und dasselbe Zitat) wie die Antwort von @kaj , die zwei Monate zuvor war.
icc97
1
Ich mochte die Art und Weise, wie diese Person es zitierte. machte mich sofort verständlich.
Nishantbhardwaj2002
15

Sie möchten auf jeden Fall etwas Exponentiales, damit Sie jede Zeitmenge mit einem konstanten relativen Fehler ausdrücken können. Die Genauigkeit Ihrer Schätzung ist höchstwahrscheinlich auch proportional zu Ihrer Schätzung.

Sie möchten also etwas: a) mit ganzen Zahlen b) exponentiell c) einfach

Warum nun Fibonacci statt 1 2 4 8? Ich vermute, dass Fibonacci langsamer wächst. Es ist in Goldverhältnis und Goldverhältnis = 1,61 ...

Fulmicoton
quelle
3
"Die Genauigkeit Ihrer Schätzung ist sehr wahrscheinlich proportional zu Ihrer Schätzung." Ist dies eine Regel in der Statistik oder ist dies etwas, was Menschen normalerweise tun? Wenn Sie Fibonacci-Zahlen verwenden, nehmen Sie an, dass der relative Fehler einer Schätzung etwa f (n-1) / f (n) = 1-goldenes Verhältnis = 61% beträgt. Wenn man also 5 schätzt, nehmen die Leute an, dass dies einen relativen Fehler von ungefähr 3 impliziert, so dass eine signifikante Zunahme der Komplexität nur 8 oder höher wäre. Warum wird jedoch ein relativer Fehler von etwa 60% angenommen? Ist das nur eine Faustregel?
Asmaier
1
Um meinen eigenen Kommentar zu beantworten: Mike Cohn (November 2005). "Agiles Schätzen und Planen" sagt: "Studien haben gezeigt, dass wir am besten Dinge abschätzen können, die in eine Größenordnung fallen (Miranda 2001; Saaty 1996)."
Asmaier
1
Miranda (2001): "Verbesserung subjektiver Schätzungen durch gepaarte Vergleiche" sagt: "Ich habe eine informelle Umfrage unter Kollegen durchgeführt. 30 Personen aus verschiedenen Ländern sowie aus Industrie und Wissenschaft lieferten Beiträge für die Skala. Die Ergebnisse legen nahe, dass die Entsprechung zwischen Größe und Größe Die verbale Beschreibung in der Software-Domäne ist näher an der in Tabelle 3 gezeigten als an der von Saaty. " Und in dieser Tabelle sehen wir, dass etwas als "etwas größer" bezeichnet wird, wenn es 125% der Basisgröße beträgt, und als "größer", wenn es 175% der Basisgröße beträgt.
Asmaier
1
Die nächste Fibonacci-Zahl ist 161% der früheren Fibonacci-Zahl, daher passt dies in der Mirandas-Tabelle zwischen "etwas größer" und "größer". Es scheint, dass diese informelle Umfrage die Wurzel dafür ist, warum wir Fibonacci-Zahlen verwenden, weil ihr Verhältnis näher an dem liegt, was wir meinen, wenn wir sagen, dass etwas größer ist.
Asmaier
@asmaier Ich denke, Sie sollten diese Kommentare als separate Antwort hinzufügen, sie sind ausgezeichnet oder vielleicht auf der verknüpften PM.SE-Frage, da diese leider gesperrt ist.
icc97
7

Die Fibonacci-Sequenz ist nur eine von mehreren, die bei der Projektplanung für Poker verwendet werden.

Es ist schwierig, große Arbeitseinheiten genau abzuschätzen, und es ist leicht, sich in stunden- oder tagelangen Diskussionen festzumachen, wenn Ihre Zahlen zu "realistisch" sind.

Ich mag die Erklärung unter http://www.agilelearninglabs.com/2009/06/story-sizing-a-better-start-than-planning-poker/ , nämlich, dass die Fibonacci-Reihe eine Reihe von Zahlen darstellt, die wir intuitiv unterscheiden können zwischen ihnen als unterschiedliche Größen.

kaj
quelle
4

Ich benutze Fibonacci aus mehreren Gründen:

  • Je größer die Aufgabe wird, desto schwieriger wird es, die Details zu erfassen
  • Die Aufgabenschätzung ist die Anzahl der Stunden, die jeder im Team benötigt, um die Aufgabe zu erledigen
  • Nicht jeder im Team verfügt über die gleiche Erfahrung für eine bestimmte Aufgabe, was ebenfalls die Unsicherheit erhöht
  • Der Mensch wird müde wegen größerer und möglicherweise komplexerer Aufgaben. Während eine doppelt so komplexe Aufgabe für einen Computer in doppelter Zeit gelöst wird, kann sie für einen Entwickler viel länger dauern.

Da wir alle Unsicherheiten addieren, sind wir uns weniger sicher, wie die Stunden tatsächlich sein sollten. Es ist einfacher, wenn wir nur beurteilen können, ob diese Aufgabe größer / kleiner ist als eine andere, für die wir bereits eine Schätzung abgegeben haben. Wenn wir die Größe / Komplexität der Aufgabe erhöhen, wird auch der Effekt der Unsicherheit verstärkt. Ich würde gerne eine Schätzung von 13 Stunden für eine Aufgabe nehmen, die doppelt so groß erscheint wie eine, die ich zuvor auf 5 Stunden geschätzt habe.

Chris Chou
quelle