Perché la serie Fibonacci viene utilizzata nel poker di pianificazione agile? [chiuso]


94

Quando si stima la dimensione relativa delle storie utente nello sviluppo di software agile, i membri del team dovrebbero stimare la dimensione di una storia utente come 1, 2, 3, 5, 8, 13, .... Quindi i valori stimati dovrebbero assomigliare alla serie di Fibonacci. Ma mi chiedo, perché?

La descrizione di http://en.wikipedia.org/wiki/Planning_poker su Wikipedia contiene la frase misteriosa:

Il motivo per utilizzare la sequenza di Fibonacci è riflettere l'incertezza intrinseca nella stima di elementi più grandi.

Ma perché dovrebbe esserci un'incertezza intrinseca negli articoli più grandi? L'incertezza non è maggiore se effettuiamo meno misurazioni, ovvero se meno persone stimano la stessa storia? E anche se l'incertezza è maggiore nelle storie più grandi, perché ciò implica l'uso della sequenza di Fibonacci? C'è una ragione matematica o statistica per questo? Altrimenti, usare la serie di Fibonacci per la stima mi sembra una scienza CargoCult.


9
Probabilmente solo perché la sequenza di Fibonacci è "cool". Qualsiasi sequenza esponenziale funzionerebbe. 2^npotrebbe spaziare troppo i numeri, quindi perché non usare la sequenza di Fibonacci, che è circa c*phi^n?
Interjay

+1 per "è bello". Ho già lavorato con programmatori che hanno sempre voluto inserire stranezze in Fibonacci - è sempre stata la loro "cosa"
KevinDTimm,


2
Questa domanda sembra essere fuori tema perché riguarda ...?
Adriano Repetti

Risposte:


78

La serie di Fibonacci è solo un esempio di scala di stima esponenziale. Il motivo per cui viene utilizzata una scala esponenziale deriva dalla teoria dell'informazione.

L'informazione che otteniamo dalla stima cresce molto più lentamente della precisione della stima. Infatti cresce come funzione logaritmica. Questo è il motivo della maggiore incertezza per gli articoli più grandi.

Determinare la base più ottimale della scala esponenziale (normalizzazione) è difficile in pratica. La base corrispondente alla scala di Fibonacci può o non può essere ottimale.

Ecco una spiegazione più dettagliata della giustificazione matematica: http://www.yakyma.com/2012/05/why-progressive-estimation-scale-is-so.html


4
Questa è una spiegazione più profonda che speravo. Grazie per questa risposta.
asmaier

"[Un] piccolo sforzo di stima aiuta molto e [un] grande sforzo di stima aiuta poco" ottimo articolo
ptim

40

Dei primi sei numeri della sequenza di Fibonacci, quattro sono primi. Ciò limita le possibilità di suddividere un'attività equamente in attività più piccole in modo che più persone lavorino su di essa in parallelo. Ciò potrebbe portare all'idea sbagliata che la velocità di un'attività possa aumentare proporzionalmente al numero di persone che ci lavorano. La serie 2 ^ n è più vulnerabile a questo problema. La sequenza di Fibonacci infatti obbliga a rivalutare i compiti più piccoli uno per uno.


7
Questo è un punto di vista interessante. Ma perché allora la serie di numeri primi 1,2,3,5,7,11, ... non viene utilizzata per la stima al posto della serie di Fibonacci?
asmaier

2
È un'idea eccellente. In realtà, si verificano abbastanza frequentemente da selezionare solo quelli che creano approssimativamente una serie [1.5-2.0] ^ n. I numeri di Fibonacci sono certamente più facili da ricreare dalla testa, ma strumenti come JIRA consentono di specificare qualsiasi insieme di valori.
KillerInsect

5
L'altro punto è la distanza tra le stime. Più tempo stai valutando, meno certezza c'è. Tra 3-5 e 5-7 è la stessa differenza, il che implica la stessa certezza. Ma quando devi scegliere tra 8 e 13 (un divario maggiore), ti costringe a esaminare davvero quanto sei sicuro.
Chris

@asmaier Penso che sia perché i numeri di Fibonacci sono esponenziali dove i numeri primi sono lineari per il piccolo campione che viene tipicamente utilizzato per la stima delle storie
icc97

17

Secondo questo agile blog

"perché crescono all'incirca alla stessa velocità con cui noi esseri umani possiamo percepire cambiamenti significativi di grandezza".

Si, come no. Penso che sia perché aggiungono un'aria di legittimità (Fibonacci! Matematica!) A quello che è in sostanza un esercizio di dimensionamento (non scoping) di livello iniziale di altissimo livello (che ha valore).

Ma puoi ottenere gli stessi risultati usando la taglia della maglietta ...


1
Questa risposta è quasi esattamente la stessa (fa riferimento allo stesso collegamento e alla stessa citazione) della risposta di @kaj di due mesi prima.
icc97

1
mi è piaciuto molto il modo in cui questa persona l'ha citata. mi ha fatto capire all'istante.
nishantbhardwaj2002

15

Sicuramente vuoi qualcosa di esponenziale, in modo da poter esprimere qualsiasi quantità di tempo con un errore relativo costante. Anche la precisione della tua stima è molto probabile che sia proporzionale alla tua stima.

Quindi vuoi qualcosa: a) con numeri interi b) esponenziale c) facile

Perché Fibonacci invece di 1 2 4 8? La mia ipotesi è che sia perché Fibonacci cresce più lentamente. È in goldratio ^ ne goldratio = 1,61 ...


3
"Anche la precisione della tua stima è molto probabile che sia proporzionale alla tua stima." Questa è una regola nelle statistiche o è qualcosa che normalmente fanno gli umani? Se usi i numeri di Fibonacci, presumi che l'errore relativo di una stima sia di circa f (n-1) / f (n) = 1-rapporto aureo = 61%. Quindi, se si stima 5, le persone presumono che ciò implichi un errore relativo di circa 3, quindi un aumento significativo della complessità sarebbe solo 8 o superiore. Tuttavia, perché si presume che l'errore relativo sia del 60% circa? È solo una regola pratica?
asmaier

1
Per rispondere al mio commento: Mike Cohn (novembre 2005). "Stima e pianificazione agili" dice: "Gli studi hanno dimostrato che siamo i migliori a stimare cose che rientrano in un ordine di grandezza (Miranda 2001; Saaty 1996)".
asmaier

1
Miranda (2001): "Improving Subjective Estimates Using Paired Comparisons" dice: "Ho condotto un'indagine informale tra colleghi; 30 persone di diversi paesi e sia dell'industria che del mondo accademico hanno fornito input per la scala. I risultati suggeriscono che la corrispondenza tra dimensioni e la descrizione verbale nel dominio del software è più vicina a quella mostrata nella Tabella 3 che a quella di Saaty. " E in questa tabella vediamo che qualcosa è chiamato "leggermente più grande" se è il 125% della dimensione della base e si chiama "più grande", se è il 175% della dimensione della base.
asmaier

1
Il numero di Fibonacci successivo è il 161% del precedente numero di Fibonacci, quindi questo si trova tra "leggermente più grande" e "più grande" nella tabella Mirandas. Sembra che questa indagine informale sia la radice del motivo per cui usiamo i numeri di Fibonacci, perché il loro rapporto è più vicino a ciò che intendiamo se diciamo che qualcosa è più grande.
asmaier

@asmaier Penso che dovresti aggiungere questi commenti come risposta separata, sono eccellenti, o forse sulla domanda PM.SE collegata poiché purtroppo è bloccata.
icc97

7

La sequenza di Fibonacci è solo una delle tante che vengono utilizzate nel poker di pianificazione del progetto.

È difficile stimare con precisione grandi unità di lavoro ed è facile rimanere impantanati nelle discussioni tra ore e giorni se i numeri sono troppo "realistici".

Mi piace la spiegazione su http://www.agilelearninglabs.com/2009/06/story-sizing-a-better-start-than-planning-poker/ , ovvero la serie di Fibonacci rappresenta un insieme di numeri che possiamo distinguere intuitivamente tra di loro come diverse grandezze.


4

Uso Fibonacci per un paio di motivi:

  • Man mano che l'attività diventa più grande, i dettagli diventano più difficili da comprendere
  • La stima dell'attività è il numero di ore per cui chiunque nel team completa l'attività
  • Non tutti i membri del team avranno la stessa quantità di esperienza per un compito particolare, quindi anche questo si aggiunge all'incertezza
  • L'essere umano si affatica per un compito più grande e potenzialmente più complesso. Mentre un'attività doppiamente complessa viene risolta in doppio tempo per un computer, potrebbe volerci un po 'di più per uno sviluppatore.

Man mano che sommiamo tutte le incertezze, siamo meno sicuri di quello che dovrebbero essere effettivamente le ore. Risulta più facile se possiamo solo valutare se questo compito è più grande / più piccolo di un altro di cui abbiamo già dato una stima. Man mano che aumentiamo la dimensione / complessità del compito, anche l'effetto dell'incertezza viene amplificato. Sarei felice di fare una stima di 13 ore per un'attività che sembra due volte più grande di quella che ho stimato in 5 ore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.