Me sorprende que nadie haya mencionado la técnica de estimación de estilo PERT que se describe en The Clean Coder, de Robert Martin . En ese método, calcula cuánto tiempo tomará 3 escenarios: optimista ( O
), nominal ( N
) y pesimista ( P
). Entonces la duración esperada = (O+4N+P)/6
y obtienes una desviación estándar de (P-O)/6
.
Esto parece funcionar bastante bien, y lo he usado varias veces cuando la administración realmente se preocupa por cuánto tiempo probablemente tomará algo.
Como han comentado otros, también he hecho estimaciones examinando datos históricos ("¿Cuánto tiempo se tardó en hacer algo similar?").
Pero mi método favorito es no hacer estimaciones de tiempo en absoluto, y solo hacer estimaciones puntuales y obtener una velocidad sobre las iteraciones. Si un equipo es bastante consistente en dimensionar y completar el trabajo (historias de usuarios), entonces ahorrará un montón de tiempo sin siquiera preguntar cuánto tiempo tomará cada cosa.
Las estimaciones de horas son terriblemente difíciles de acertar, y requieren mucho trabajo para dividir las cosas en trozos lo suficientemente pequeños como para medir de manera efectiva. Y aun así, rara vez son correctos porque hay demasiadas variables y nos olvidamos de tener en cuenta cosas como enfermedades, vacaciones o incluso distracciones.
Si tengo que hacer estimaciones de horas, trato de hacerlas solo para tareas pequeñas dentro de una iteración. Mido todo en estimados de medio día (4, 8, 12 horas) a menos que sepa que podría ser menos. Pero rara vez calculo algo en menos de 1 hora.