Pregunta

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

La descripción de http://en.wikipedia.org/wiki/planning_poker En Wikipedia tiene la misteriosa oración:

La razón para usar la secuencia Fibonacci es reflejar la incertidumbre inherente en la estimación de elementos más grandes.

Pero, ¿por qué debería haber incertidumbre inherente en elementos más grandes? ¿No es la incertidumbre más alta, si hacemos menos medición, lo que significa que 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? ¿Hay alguna razón matemática o estadística para ello? De lo contrario, usar la serie Fibonacci para la estimación me parece una ciencia de Cargocult.

¿Fue útil?

Solución

La serie 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 fuera de estimación crece mucho más lenta que la precisión de la estimación. De hecho, crece como una función logarítmica. Esta es la razón de la mayor incertidumbre para elementos 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 Fibonacci puede o no ser óptima.

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

Otros consejos

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

De acuerdo a Este blog ágil

"Porque crecen a la misma velocidad a la que los humanos podemos percibir cambios significativos en la magnitud".

Sí claro. Creo que es porque agregan un aire de legitimidad (¡fibonacci! ¡Matemáticas!) A lo que es esencial un ejercicio de tamaño muy alto y en etapa temprana (no alcance) (que tiene valor).

Pero puedes obtener los mismos resultados usando el tamaño de la camiseta ...

Definitivamente desea algo exponencial, para que pueda expresar cualquier cantidad de tiempo con un error relativo constante. Es muy probable que la precisión de su estimación sea proporcional a su estimación.

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

Ahora, ¿por qué Fibonacci en lugar de, 1 2 4 8? Supongo que es porque Fibonacci se vuelve más lento. Está en Goldratio^n, y Goldratio = 1.61 ...

La secuencia de Fibonacci es solo una de las varias que se utilizan en la planificación de proyectos del póker.

Es difícil estimar con precisión las grandes unidades de trabajo y es fácil empantanarse en horas versus discusiones de 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/, a saber, la serie Fibonacci representa un conjunto de números que podemos distinguir intuitivamente entre ellos como diferentes magnitudes.

Uso Fibonacci por un par de razones:

  • A medida que se hace más grande, los detalles se vuelven más difíciles de comprender
  • La estimación de la tarea es la cantidad de horas para cualquier persona en el equipo para completar la tarea
  • No todos en el equipo tendrán la misma experiencia para una tarea en particular, por lo que también se suma a la incertidumbre.
  • Los humanos obtienen fatiga sobre una tarea más grande y potencialmente más compleja. Si bien una tarea dos veces más compleja se resuelve en doble tiempo para una computadora, puede tomar un poco más para un desarrollador.

A medida que agrega todas las incertidumbres, estamos menos seguros de cuáles deberían ser las horas. 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 de. A medida que aumentamos el tamaño/complejidad de la tarea, el efecto de la incertidumbre también se amplifica. Aseguraría una estimación de 13 horas para una tarea que parece dos veces más grande que una que he estimado previamente a las 5 horas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top