¿Por qué se utiliza la serie Fibonacci en el póquer de planificación ágil? [cerrado]

94

Al estimar el tamaño relativo de las historias de usuario en el desarrollo ágil de software, se supone que los miembros del equipo estiman el tamaño de una historia de usuario como 1, 2, 3, 5, 8, 13, .... Por tanto, los valores estimados deberían parecerse a la serie de Fibonacci. Pero me pregunto, ¿por qué?

La descripción de http://en.wikipedia.org/wiki/Planning_poker en Wikipedia contiene la frase misteriosa:

La razón para utilizar la secuencia de Fibonacci es reflejar la incertidumbre inherente al estimar elementos más grandes.

Pero, ¿por qué debería haber una incertidumbre inherente en elementos más grandes? ¿No es mayor la incertidumbre si hacemos menos mediciones, es decir, si menos personas estiman la misma historia? E incluso si la incertidumbre es mayor en historias más grandes, ¿por qué eso implica el uso de la secuencia de Fibonacci? ¿Existe una razón matemática o estadística para ello? De lo contrario, usar la serie de Fibonacci para la estimación me parece una ciencia de CargoCult.

asmaier
fuente
9
Probablemente solo porque la secuencia de Fibonacci es "genial". Cualquier secuencia exponencial funcionaría. 2^npodría espaciar los números demasiado, entonces, ¿por qué no usar la secuencia de Fibonacci, que es aproximadamente c*phi^n?
interjay
+1 para "es genial". Trabajé con programadores antes que siempre quisieron introducir rarezas en Fibonacci, siempre fue su 'cosa'
KevinDTimm
2
Esta pregunta parece estar fuera de tema porque se trata de ...
Adriano Repetti

Respuestas:

78

La serie de Fibonacci es solo un ejemplo de una escala de estimación exponencial. La razón por la que se utiliza una escala exponencial proviene de la teoría de la información.

La información que obtenemos de la estimación crece mucho más lentamente que la precisión de la estimación. De hecho, crece como función logarítmica. Esta es la razón de la mayor incertidumbre para los artículos más grandes.

Determinar la base más óptima de la escala exponencial (normalización) es difícil en la práctica. La base correspondiente a la escala de Fibonacci puede ser óptima o no.

Aquí hay una explicación más detallada de la justificación matemática: http://www.yakyma.com/2012/05/why-progressive-estimation-scale-is-so.html

isak gilbert
fuente
4
Esta es una explicación más profunda que esperaba. Gracias por esta respuesta.
asmaier
“[Un] pequeño esfuerzo de estimación ayuda mucho y [un] gran esfuerzo de estimación ayuda poco” gran artículo
ptim
40

De los primeros seis números de la secuencia de Fibonacci, cuatro son primos. Esto limita las posibilidades de dividir una tarea por igual en tareas más pequeñas para que varias personas trabajen en ella en paralelo. Hacerlo podría llevar a la idea errónea de que la velocidad de una tarea podría escalar proporcionalmente con la cantidad de personas que trabajan en ella. La serie 2 ^ n es la más vulnerable a este problema. De hecho, la secuencia de Fibonacci obliga a volver a estimar las tareas más pequeñas una por una.

KillerInsect
fuente
7
Ese es un punto de vista interesante. Pero, ¿por qué entonces no se usa la serie de números primos 1, 2, 3, 5, 7, 11, ... para estimar en lugar de la serie de Fibonacci?
asmaier
2
Esa es una excelente idea. En realidad, ocurren con suficiente frecuencia como para seleccionar solo aquellos que crean aproximadamente una serie [1.5-2.0] ^ n. Los números de Fibonacci son ciertamente más fáciles de recrear desde la cabeza, pero herramientas como JIRA permiten especificar cualquier conjunto de valores.
KillerInsect
5
El otro punto es la distancia entre estimaciones. Cuanto más tiempo esté estimando, menos certeza habrá. Entre 3-5 y 5-7 hay la misma diferencia, lo que implica la misma certeza. Pero cuando tienes que elegir entre 8 y 13 (una brecha mayor), te obliga a examinar realmente qué tan seguro estás.
Chris
@asmaier Creo que es porque los números de fibonacci son exponenciales, mientras que los números primos son lineales para la muestra pequeña que se usa típicamente al estimar historias
icc97
17

Según este ágil blog

"porque crecen aproximadamente al mismo ritmo al que los humanos podemos percibir cambios significativos de magnitud".

Sí claro. Creo que se debe a que añaden un aire de legitimidad (¡Fibonacci! ¡Matemáticas!) A lo que es, en esencia, un ejercicio de dimensionamiento (no de alcance) de etapa inicial de muy alto nivel (que tiene valor).

Pero puedes obtener los mismos resultados usando la talla de la camiseta ...

Ibrahim Bashir
fuente
1
Esta respuesta es casi exactamente la misma (hace referencia al mismo enlace y la misma cita) que la respuesta de @kaj que fue dos meses antes.
icc97
1
Realmente me gustó la forma en que esta persona lo citó. me hizo entender al instante.
nishantbhardwaj2002
15

Definitivamente quieres algo exponencial, de modo que puedas expresar cualquier cantidad de tiempo con un error relativo constante. Es muy probable que la precisión de su estimación también sea proporcional a su estimación.

Entonces quieres algo: a) con números enteros b) exponencial c) fácil

Ahora bien, ¿por qué Fibonacci en lugar de 1 2 4 8? Supongo que se debe a que fibonacci crece más lento. Está en proporción de oro ^ n, y proporción de oro = 1.61 ...

fulmicoton
fuente
3
"La precisión de su estimación también es muy probable que sea proporcional a su estimación". ¿Es esta una regla en estadística o es algo que los humanos hacen normalmente? Si usa números de Fibonacci, asume que el error relativo de una estimación es aproximadamente f (n-1) / f (n) = 1-goldenratio = 61%. Entonces, si se estima 5, la gente asume que esto implica un error relativo de aproximadamente 3, por lo que un aumento significativo en la complejidad sería solo de 8 o más. Sin embargo, ¿por qué se supone que el error relativo es aproximadamente del 60%? ¿Es esto solo una regla general?
asmaier
1
Para responder a mi propio comentario: Mike Cohn (noviembre de 2005). "Estimación y planificación ágiles" dice: "Los estudios han demostrado que somos mejores para estimar cosas que caen dentro de un orden de magnitud (Miranda 2001; Saaty 1996)".
asmaier
1
Miranda (2001): "Mejorar las estimaciones subjetivas mediante comparaciones por pares" dice: "Realicé una encuesta informal entre colegas; 30 personas de diferentes países y de la industria y el mundo académico proporcionaron información para la escala. Los resultados sugieren que la correspondencia entre tamaño y La descripción verbal en el dominio del software es más cercana a la que se muestra en la Tabla 3 que a la de Saaty ". Y en esta tabla vemos que algo se llama "ligeramente más grande" si es el 125% del tamaño de la base y se llama "más grande", si es el 175% del tamaño de la base.
asmaier
1
El siguiente número de Fibonacci es el 161% del anterior número de Fibonacci, por lo que encaja entre "un poco más grande" y "más grande" en la tabla Mirandas. Parece que esta encuesta informal es la raíz de por qué usamos los números de Fibonacci, porque su proporción está más cerca de lo que queremos decir si decimos que algo es más grande.
asmaier
@asmaier Creo que debería agregar estos comentarios como una respuesta separada, son excelentes, o quizás en la pregunta PM.SE vinculada , ya que desafortunadamente esto está bloqueado.
icc97
7

La secuencia de Fibonacci es solo una de varias que se utilizan en el póquer de planificación de proyectos.

Es difícil estimar con precisión grandes unidades de trabajo y es fácil empantanarse en discusiones de horas o días si sus números son demasiado "realistas".

Me gusta la explicación en http://www.agilelearninglabs.com/2009/06/story-sizing-a-better-start-than-planning-poker/ , es decir, la serie de Fibonacci representa un conjunto de números que podemos distinguir intuitivamente entre ellos como diferentes magnitudes.

kaj
fuente
4

Uso Fibonacci por un par de razones:

  • A medida que la tarea aumenta, los detalles se vuelven más difíciles de comprender.
  • La estimación de la tarea es la cantidad de horas para que cualquier miembro del equipo complete la tarea
  • No todos los miembros del equipo tendrán la misma experiencia para una tarea en particular, por lo que eso también aumenta la incertidumbre.
  • El ser humano se fatiga por una tarea más grande y potencialmente más compleja. Si bien una tarea dos veces más compleja se resuelve en el doble de tiempo para una computadora, un desarrollador puede tardar bastante más.

A medida que sumamos todas las incertidumbres, estamos menos seguros de cuáles deberían ser las horas en realidad. Termina más fácil si podemos medir si esta tarea es más grande / más pequeña que otra en la que ya dimos una estimación. A medida que aumentamos el tamaño / complejidad de la tarea, el efecto de la incertidumbre también se amplifica. Estaría felizmente tomando una estimación de 13 horas para una tarea que parece dos veces más grande que una que calculé anteriormente en 5 horas.

Chris Chou
fuente