Estou surpreso que ninguém tenha mencionado a técnica de estimativa no estilo PERT descrita em The Clean Coder, de Robert Martin . Nesse método, você estima quanto tempo levará para três cenários: otimista ( O
), nominal ( N
) e pessimista ( P
). Então a duração esperada = (O+4N+P)/6
e você obtém um desvio padrão de (P-O)/6
.
Isso parece funcionar muito bem, e eu o usei algumas vezes quando a gerência realmente se importa com quanto tempo provavelmente levará algo.
Como outros comentaram, também fiz estimativas examinando dados históricos ("Quanto tempo levou para fazer essa coisa semelhante?").
Mas meu método favorito é não fazer estimativas de tempo e apenas fazer estimativas pontuais e obter velocidade nas iterações. Se uma equipe é bastante consistente no dimensionamento e na conclusão do trabalho (histórias de usuários), você economiza uma tonelada de tempo nem perguntando quanto tempo cada coisa levará.
As estimativas de horas são terrivelmente difíceis de acertar e exigem muito trabalho para dividir as coisas em pedaços pequenos o suficiente para serem efetivamente medidos. E mesmo assim, eles raramente estão corretos porque há muitas variáveis e esquecemos de explicar coisas como doenças, férias ou mesmo distrações.
Se eu tiver que fazer estimativas de horas, tento fazê-las apenas para tarefas pequenas dentro de uma iteração. Eu medo tudo nas estimativas de meio dia (4, 8, 12 horas), a menos que eu saiba que poderia ser menor. Mas eu raramente calculo algo em menos de 1 hora.