Pergunta

I nome média fora de um projeto de programação que você fez e quanto tempo levou, por favor. O chefe nunca se queixou, mas às vezes eu sinto que as coisas levam muito tempo. Mas isso poderia ser porque eu sou impaciente também. Deixe-me saber suas experiências para a comparação.

Eu também tenho notado que as coisas sempre parecem levar mais tempo, às vezes muito mais tempo do que o previsto inicialmente. Eu não sei por que não começar a planejar para ele, mas então eu acho que talvez seja para fins motivacionais.

Ryan

Foi útil?

Solução

É melhor do que simplesmente o tempo mesmo, gravar suas estimativas e determinar o percentual médio você está fora. Tendo em conta que, desde que você for consistente, você pode adequadamente estimar tempos reais com base em quando você acreditou que você obtê-lo feito. Não é simplesmente para determinar o quão ruim você é estimar, mas sim para ter em conta a regularidade das distrações inevitáveis ??(tanto pessoal como chefe / cliente-based).

Isto é baseado em Evidence Based Scheduling de Joel Spolsky, essencial leitura, como ele explica que o outro principal aspecto importante está quebrando suas tarefas em (máximo de 16 horas) tarefas de mordida de tamanho, estimando e adicionando aqueles em conjunto para chegar ao seu total final do projeto.

Outras dicas

estimativas baseadas em Gut vêm com experiência, mas você realmente precisa para detalhar as tarefas envolvidas para conseguir algo razoável.

Se você tem uma especificação ou pelo menos algumas restrições, você pode começar a criar tarefas (página usuários design, página Tag do projeto, implementar usuários página, implementar tags página, consulta etiquetas de escrita, ...).

Depois de fazer isso, adicione-lo e dobrá-lo. Se você está indo ter que coordenar com os outros, triplo-lo.

Grave a sua hora real em detalhes como você vai para que você possa avaliar o quão preciso você estava quando o projeto estiver concluído e aprimorar suas habilidades de estimativas.

Concordo plenamente com os cartazes anteriores ... não se esqueça de carga de trabalho de sua equipe também. Só porque você estima um projeto levaria 3 meses, isso não significa que vai ser feito em qualquer lugar perto disso.

Eu trabalho em uma equipe menor (5 devs, 1 de chumbo), muitos de nós trabalham em vários projetos ao mesmo tempo - alguns grandes, alguns pequenos. Dependendo da prioridade do projeto, os caprichos da administração e da disponibilidade de outras equipes (se necessário), o trabalho em um projeto é intercalada entre os outros.

Então, sim, 3 meses no valor de trabalho pode estar morto, mas que poderia ser de 3 meses no valor de trabalho ao longo de um período de 6 meses.

Eu fiz projetos entre 1 -. 6 meses em meu próprio, e eu sempre tendem a duplicar ou quadrouple minhas estimativas originais

É efetivamente impossível comparar dois projetos de programação, uma vez que existem muitos fatores que fazem com que as métricas de não só são aplicáveis ??para outra (por exemplo, tecnologias específicas utilizadas, a experiência anterior dos desenvolvedores, os requisitos de mudança). A menos que você está apagando outro sistema que é quase idêntico a um que você construiu anteriormente, as estimativas vão ter uma baixa probabilidade de ser preciso.

A ressalva é quando você está construindo a próxima revisão de um sistema existente com a mesma equipe; a experiência específica adquirida faz melhorar a capacidade de estimar o próximo lote de trabalho.

Eu vi muitas tentativas de metodologia de estimação, e nenhum deles funcionou. Eles podem ter um fascínio pseudo-científica, mas eles simplesmente não funcionam na prática.

A resposta só faz sentido é a relativamente curto iteração, como defendido pelos defensores ágeis: escolher um escopo de trabalho que pode ser executado dentro de um curto espaço de tempo, entregá-lo, e depois ir para a próxima rodada. Orçamentos são então atribuídos numa base de curto prazo, com as partes interessadas capazes de avaliar se o seu dinheiro está sendo efetivamente gasto. Se ele está demorando muito para chegar a algum lugar, eles podem abandonar o projeto.

A lei de Hofstadter:

'Ele sempre leva mais tempo do que o esperado, mesmo quando você toma a Lei de Hofstadter em conta.'

Eu acredito que este é porque:

  • O trabalho se expande para preencher o tempo disponível para fazê-lo. Não importa o quão cruel você está cortando recursos desnecessários, você teria sido mais brutal se os prazos eram ainda mais apertado.
  • problemas inesperados ocorrem durante o projeto.

Em qualquer caso, é realmente enganador comparar anedotas, em parte porque as pessoas têm memória seletiva. Se eu dizer-lhe que uma vez me levou duas horas para escrever um quicksort totalmente otimizado, então talvez eu estou esquecendo o fato de que eu sabia que teria essa tarefa uma semana de antecedência, e estava pensando sobre idéias. Talvez eu estou esquecendo que houve um erro no que eu passei mais duas horas a fixação de uma semana mais tarde.

Estou quase certamente deixando de fora todo o trabalho não-programação que prossegue: reuniões, projeto de arquitetura, consultoria outros que estão presos em algo acontece que eu sei sobre, admin. Portanto, é injusto em si mesmo para pensar em um ritmo de trabalho que parece plausível em termos de "sentado lá codificação", e esperar que a ser sustentado o tempo todo. Esta é a fonte de um monte de sentimentos após o fato de que você "deveria ter sido mais rápido".

Eu faço projectos de 2 semanas a 1 ano. Geralmente minhas estimativas são bastante bom, a posteriori . No início do projeto, no entanto, eu geralmente me bateu porque minhas estimativas são considerados muito grande.

Isso é porque eu considerar um monte de coisas que as pessoas esquecem:

  • Tempo para correção de bugs
  • Tempo para implantações
  • Tempo de gestão / reuniões / interação
  • Tempo para permitir que os proprietários de exigência para mudar sua mente
  • etc

O truque é usar programação baseada em evidências (ver Joel on Software).

A coisa é, se você planeja para um pouco de tempo extra, você vai usá-lo para melhorar a base de código, se não surgirem problemas. Se surgem problemas, você ainda está dentro das estimativas.

Eu acredito que Joel tem escreveu um artigo sobre isso: O que você pode fazer, é pedir a cada desenvolvedor na equipe para colocar para fora sua tarefa em detalhe (que são todos os passos que precisam ser feitas) e pedir-lhes para estimar o tempo necessário para cada passo. Mais tarde, quando o projeto é feito, comparar o tempo real para tempo estimado, e você vai ter o viés para cada desenvolvedor. Quando um novo projeto é iniciado, pedir-lhes para avaliar o tempo de novo, e se multiplicam que, com viés de cada desenvolvedor para obter os valores perto do que é realmente espera.

Depois de alguns projectos, você deve ter muito boas estimativas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top