Eu sou péssimo em estimativas. Quando alguém me pergunta quanto tempo levará algo, nem me atrevo a adivinhar, pois estarei completamente enganado. Normalmente sou otimista demais e provavelmente deveria multiplicar meu palpite com algum fator X grande ...
Como posso aprender a fazer melhores estimativas? Não é ensinado na minha universidade, e mesmo que tenhamos prazos para todos os trabalhos, nunca penso em quanto tempo algo levará. O que eu deveria. Pelo bem de todos (especialmente o meu).
project-management
estimation
gablin
fonte
fonte
Respostas:
Ainda não sou muito bom nisso, mas descobri que acompanhar quanto tempo você estima para tarefas e quanto tempo você realmente leva pode ser uma grande ajuda. Dessa forma, você pode ter uma idéia sólida de quão longe você está. O software de gerenciamento de problemas com rastreamento de tempo (Jira no meu caso) ou uma planilha pode ser uma grande ajuda para isso.
Eu acho que mais do que tudo, é uma experiência.
fonte
Lei da Gestão do Tempo de Murphy: Para descobrir quanto tempo algo vai tomar, descobrir quanto tempo ele deve tomar e duplicá-la.
Em seguida, vá para a próxima unidade de tempo mais alta. Assim, alocamos duas semanas para um projeto de um dia.
fonte
Você pode aprender fazendo-os coletivamente .
Eu uso o Planning Poker . É uma técnica baseada em consenso para estimar.
Sua estimativa deve ser rastreada e comparada com o que você efetivamente fez. Você receberá a velocidade .
Cada vez que você estimar algo, multiplique pela sua velocidade recente para obter uma estimativa precisa .
fonte
A estimativa de software de Steve McConnell (MS Press) é uma boa leitura.
A principal coisa com estimativa de software é resumida pelo seguinte
Essa é uma das razões pelas quais os projetos iterativos têm muito mais sucesso do que os grandes projetos em cascata em fases. Eles não estão tentando elaborar um plano para um ano de cada vez com poucas informações além de algum vodu de caixa preta do que eles acham que deveria ser. A cada iteração, eles estão reestimando / replanejando e têm as últimas iterações nas quais basear suas estimativas.
Alguns outros pontos a serem lembrados:
fonte
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.
fonte
Primeiro e mais importante, você precisa definir um processo e cumpri-lo. Inclua a revisão do plano no final de cada fase do processo. Você também pode revisar o processo, mas de maneira ordenada.
Segundo, faça algum tipo de design. O design é o primeiro passo para o planejamento, você não constrói uma casa sem desenhos.
Terceiro, acompanhar o tempo (esforço). Você deve pelo menos diferenciar:
Teste de aceitação, com o usuário (inclui a correção de defeitos)
Seria ótimo se você medisse os esforços de correção de defeitos para cada tipo de teste, mas isso adiciona complexidade, para que você possa fazer isso mais tarde.
Quarto, identifique os principais itens básicos para estimativa. Por exemplo:
Quinto, correlacione itens de base e esforço. Por exemplo:
Sexto, acompanhe o desempenho e o desvio das estimativas para cada projeto. Assim, você pode ajustar seus fatores de correlação.
Sétimo, repita e melhore. Você obterá muitas informações apenas no final do primeiro projeto; no terceiro, sentirá-se à vontade para planejar e estimar.
Dê uma olhada em http://en.wikipedia.org/wiki/Personal_Software_Process , realmente funciona.
fonte
Sempre que encontrar um problema de estimativa, tente dividi-los em pedaços menores. Então veja se você já fez coisas semelhantes às peças. Se você tiver, já deve ter uma boa idéia de quanto tempo cada peça leva. Caso contrário, você deve começar a acompanhar ativamente o tempo gasto para vários tipos de tarefas. Isso o ajudará em estimativas futuras.
O tempo total necessário será mais do que a soma das peças individuais, pois você precisa de algum tempo para integração e teste.
Se você não fez algo semelhante, provavelmente pode confiar na experiência de outras pessoas e obter uma estimativa delas. Não tome isso pelo seu valor nominal. Nada ensina você a gostar de experiência.
É como atirar em um alvo. As fotos anteriores na estimativa devem dizer o quanto você está fora da marca, para que você possa corrigi-la.
fonte
Acho mais fácil executar o processo de divisão com as tarefas mínimas mencionadas acima, elaborando cada uma delas e depois duplicando essa estimativa. Então eu os adiciono e adiciono cinquenta por cento. Isso me dá um tempo aproximado de projeto em condições ideais. Se o trabalho estiver praticamente acontecendo paralelamente aos outros, precisará de mais tempo. Se você tiver que esperar por outras pessoas, espere que elas levem o dobro do tempo que achar necessário. Esperar por conteúdo, feedback ou outras informações geralmente leva muito mais tempo do que parece possível.
Onde trabalho, elaboramos uma estimativa de melhor caso / caso esperado / pior caso para cada etapa do processo, o que é útil como um guia e também para avaliar como suas estimativas funcionaram.
A técnica nem sempre é tão importante, exceto que você precisa ser capaz de combater a tentação do programador de subestimar as tarefas, mas o importante é ser cauteloso quando você pode entregar algo. Se você precisar de sete semanas para construir algo e prometeu oito semanas, poderá chegar um pouco mais cedo e ficar bem com isso ou fazer alguns testes extras e ter certeza da confiabilidade. Se você prometeu seis semanas, pode parecer ruim, mesmo que não seja absolutamente sua culpa. Em caso de dúvida, adivinhe de maneira conservadora.
fonte
Você pode tentar criar um histórico do que era a estimativa e qual era o real de várias tarefas para criar um registro suficiente para saber qual multiplicador ter para coisas específicas que se repetem na sua lista. Concedido que este é um exercício de tentativa e erro, mas pareceu funcionar bem para mim. Também há algo a ser dito em muitos ensaios antes que o padrão surja provavelmente. Provavelmente, isso é semelhante a muitas outras respostas que diriam que alguém poderia se resumir a "Just do it!" pois é assim que a maioria de nós desenvolveu a habilidade. É uma grande dor ver como alguém pode estar errado ao fazer estimativas? Sim, mas se as estimativas melhorarem, todos poderão ser felizes eventualmente.
fonte
Se você pode decompor o projeto em tarefas menores e fazer estimativas para aqueles, será mais preciso em geral. Qualquer tarefa maior que alguns dias deve ser dividida ainda mais. Se você não pode decompô-lo mais do que provavelmente tem uma lacuna de requisitos. Se você precisar fazer uma estimativa de back-of-the-guardanapo para um requisito de uma linha bem ... nada pode realmente ajudá-lo muito. Infelizmente, muitas lojas funcionam dessa maneira a maior parte do tempo.
fonte
Em vez de escrever um livro, vou oferecer apenas alguns conselhos sobre como usar o método de estimativa "decomposto":
Divida sua tarefa em tarefas menores de componentes. Estime cada tarefa da melhor maneira possível.
Adicione uma tarefa para planejamento e design (que inclui o que você está fazendo agora.) Faça uma estimativa.
Se você ainda não possui uma, adicione uma tarefa para "reunir as tarefas". Esta tarefa pode não parecer útil a princípio. No entanto, quando você usa esse método de estimativa "detalhado", sempre há coisas demoradas para fazer, que "caem entre tarefas" e que "juntam as tarefas". Este pode ser complicado de estimar. Tenta o teu melhor.
Adicione uma tarefa para teste e documentação. Sua tarefa pode não exigir muitos testes e documentação, mas você deve dedicar um pouco de tempo a pensar nisso.
Adicione as estimativas de tarefa para obter uma estimativa geral.
Vá em frente e multiplique essa estimativa total por dois ††. Isso lhe dará tempo de preenchimento para:
E por último, mas não menos importante, não tenha medo de esboçar estimativas para si mesmo que provavelmente estão totalmente erradas. Às vezes, apenas esboçar tudo, não importa quão potencialmente impreciso, pode ajudá-lo a começar o caminho para obter uma melhor noção do que está envolvido.
†† À medida que você ganha mais e mais experiência, esse "fator de falsificação" pode ser ajustado para se adequar ao seu estilo pessoal e ao seu ambiente de trabalho.
fonte
A fórmula que funciona ao trabalhar para mim:
faça uma divisão de tarefas em uma granularidade de 1 a 4 horas. Acho que geralmente sou preciso com esses
o 'fator de incógnitas': multiplique por um fator de 2 elevado ao número de incógnitas. Ou seja, se você deseja desenvolver um aplicativo couchdb, mas agora sabe alguma coisa sobre javascript e http .. adicione 2 ^ 2 como fator múltiplo.
fator de troca de contexto: múltiplo por 1,5, se você trabalhar em ambiente perfeito (em casa, na área de estudo, etc.) ou 2,5, se você trabalhar em ambiente inadequado (escritório / local lotado, etc.)
Acho que isso é dentro de +/- 20% do tempo real!
fonte
Aprenda seu próprio viés. Se sua última estimativa tiver sido muito baixa pelo fator dois, da próxima vez, duplique sua estimativa inicial. (É claro que a lei de Hofstadter torna difícil fazer isso direito ...)
Também é sempre uma boa ideia lembrar quanto trabalho foi necessário após a liberação inicial do trabalho anterior e adicioná-lo à próxima estimativa. Por exemplo, sua última tarefa levou 2 meses para ser concluída, mas após a ativação, o suporte, os hotfixes e as alterações adicionais custaram mais um mês. Portanto, na próxima vez, estime 3 meses para uma tarefa semelhante.
fonte
Para abridores, leia "Economia de engenharia de software", de Barry Boehm, e "Controlling Software Projects", de Tom DeMarco. Depois de ler e digerir os dois, leia "Estimativa de custo de software com COCOMO 2", de Barry Boehm.
Pelo que tenho a dizer a seguir, ajudará MUITO a ter uma aula de probabilidade e estatística, mesmo uma de um livro de receitas básico.
Nenhuma estimativa é perfeita. Há alguma probabilidade de chegar cedo, e alguma probabilidade de chegar tarde. O modelo COCOMO detalhado original de Boehm forneceu previsões que se mostraram dentro de 30% do resultado real, melhores que 60% das vezes. Isso foi muito melhor do que o comum quando ele escreveu e publicou o livro.
Quando você adota o seu melhor palpite (e isso é tudo uma estimativa), você inclui essas probabilidades. Se você puxar a estimativa, está aumentando a probabilidade de chegar tarde. Se você aumentar a estimativa, aumentará a probabilidade de chegar mais cedo ou terminar a tempo. Quanto você puxa para dentro ou para fora controla como a probabilidade muda e deve necessariamente depender das penalidades por chegar cedo ou tarde. (Insira histórias de terror aqui - e houve muitas delas ao longo dos anos!)
DeMarco aborda isso até certo ponto. Ele também aponta que existe uma "região de impossibilidade": alguns horários são muito apertados para serem feitos, não importa que tipo de heroísmo seja tentado.
fonte