Técnicas de estimativa - Visão geral
Estimation é o processo de encontrar uma estimativa, ou aproximação, que é um valor que pode ser usado para algum propósito, mesmo se os dados de entrada puderem ser incompletos, incertos ou instáveis.
A estimativa determina quanto dinheiro, esforço, recursos e tempo levará para construir um sistema ou produto específico. A estimativa é baseada em -
- Dados / experiências anteriores
- Documentos / Conhecimento Disponíveis
- Assumptions
- Riscos Identificados
As quatro etapas básicas na Estimativa de Projeto de Software são -
- Estime o tamanho do produto de desenvolvimento.
- Faça uma estimativa do esforço em pessoa-mês ou pessoa-hora.
- Faça uma estimativa da programação em meses do calendário.
- Estime o custo do projeto na moeda acordada.
Observações sobre estimativa
A estimativa não precisa ser uma tarefa única em um projeto. Pode ocorrer durante -
- Adquirindo um projeto.
- Planejando o Projeto.
- Execução do Projeto conforme a necessidade.
O escopo do projeto deve ser compreendido antes do início do processo de estimativa. Será útil ter dados históricos do projeto.
As métricas do projeto podem fornecer uma perspectiva histórica e informações valiosas para a geração de estimativas quantitativas.
O planejamento exige que os gerentes técnicos e a equipe de software assumam um compromisso inicial, pois isso leva à responsabilidade e à prestação de contas.
A experiência anterior pode ajudar muito.
Use pelo menos duas técnicas de estimativa para chegar às estimativas e reconciliar os valores resultantes. Consulte Técnicas de decomposição na próxima seção para aprender sobre como reconciliar estimativas.
Os planos devem ser iterativos e permitir ajustes conforme o tempo passa e mais detalhes são conhecidos.
Abordagem de estimativa geral do projeto
A abordagem de estimativa do projeto que é amplamente utilizada é Decomposition Technique. As técnicas de decomposição adotam uma abordagem de dividir para conquistar. As estimativas de tamanho, esforço e custo são realizadas de maneira gradativa, dividindo um projeto em funções principais ou atividades de engenharia de software relacionadas.
Step 1 - Compreender o escopo do software a ser construído.
Step 2 - Gere uma estimativa do tamanho do software.
Comece com a declaração de escopo.
Decompor o software em funções que podem ser estimadas individualmente.
Calcule o tamanho de cada função.
Obtenha estimativas de esforço e custo aplicando os valores de tamanho às suas métricas de produtividade de linha de base.
Combine as estimativas de função para produzir uma estimativa geral para todo o projeto.
Step 3- Gere uma estimativa do esforço e custo. Você pode chegar às estimativas de esforço e custo dividindo um projeto em atividades de engenharia de software relacionadas.
Identifique a sequência de atividades que precisam ser realizadas para que o projeto seja concluído.
Divida as atividades em tarefas que podem ser medidas.
Faça uma estimativa do esforço (horas / dias em pessoa) necessário para completar cada tarefa.
Combine estimativas de esforço de tarefas de atividade para produzir uma estimativa para a atividade.
Obtenha unidades de custo (isto é, custo / esforço unitário) para cada atividade do banco de dados.
Calcule o esforço e o custo total de cada atividade.
Combine as estimativas de esforço e custo para cada atividade para produzir uma estimativa geral de esforço e custo para todo o projeto.
Step 4- Reconciliar estimativas: compare os valores resultantes da Etapa 3 com os obtidos na Etapa 2. Se os dois conjuntos de estimativas concordarem, então seus números são altamente confiáveis. Caso contrário, se ocorrerem estimativas amplamente divergentes, conduza uma investigação mais aprofundada sobre se -
O escopo do projeto não foi adequadamente compreendido ou foi mal interpretado.
A divisão da função e / ou atividade não é precisa.
Os dados históricos usados para as técnicas de estimativa são inadequados para a aplicação, ou obsoletos, ou foram mal aplicados.
Step 5 - Determinar a causa da divergência e, em seguida, reconciliar as estimativas.
Precisão de estimativa
A precisão é uma indicação de quão próximo algo está da realidade. Sempre que você gera uma estimativa, todos querem saber o quão próximos os números estão da realidade. Você vai querer que cada estimativa seja o mais precisa possível, dados os dados que você tem no momento de gerá-la. E é claro que você não deseja apresentar uma estimativa de uma forma que inspire uma falsa sensação de confiança nos números.
Fatores importantes que afetam a precisão das estimativas são -
A precisão de todos os dados de entrada da estimativa.
A precisão de qualquer cálculo de estimativa.
O quão próximo os dados históricos ou dados da indústria usados para calibrar o modelo correspondem ao projeto que você está estimando.
A previsibilidade do processo de desenvolvimento de software da sua organização.
A estabilidade dos requisitos do produto e do ambiente que suporta o esforço de engenharia de software.
Se o projeto real foi ou não cuidadosamente planejado, monitorado e controlado, e nenhuma grande surpresa ocorreu que causou atrasos inesperados.
A seguir estão algumas diretrizes para obter estimativas confiáveis -
- Estimativas de base em projetos semelhantes que já foram concluídos.
- Use técnicas de decomposição relativamente simples para gerar estimativas de custo e esforço do projeto.
- Use um ou mais modelos de estimativa empírica para estimativa de custo e esforço de software.
Consulte a seção Diretrizes de estimativa neste capítulo.
Para garantir a precisão, é sempre aconselhável fazer uma estimativa usando pelo menos duas técnicas e comparar os resultados.
Problemas de estimativa
Freqüentemente, os gerentes de projeto recorrem a cronogramas de estimativa pulando para estimar o tamanho. Isso pode ser devido aos prazos estabelecidos pela alta administração ou pela equipe de marketing. No entanto, seja qual for o motivo, se isso for feito, em um estágio posterior seria difícil estimar os cronogramas para acomodar as mudanças de escopo.
Durante a estimativa, certas suposições podem ser feitas. É importante observar todas essas premissas na planilha de estimativa, pois algumas ainda não documentam as premissas nas planilhas de estimativa.
Mesmo as boas estimativas têm suposições, riscos e incertezas inerentes e, no entanto, são frequentemente tratadas como se fossem precisas.
A melhor maneira de expressar as estimativas é como uma gama de resultados possíveis, dizendo, por exemplo, que o projeto levará de 5 a 7 meses em vez de declarar que será concluído em uma determinada data ou será concluído em um nº fixo. de meses. Cuidado para não se comprometer com um intervalo muito estreito, pois isso equivale a se comprometer com uma data definida.
Você também pode incluir a incerteza como um valor de probabilidade que o acompanha. Por exemplo, há 90% de probabilidade de que o projeto seja concluído em ou antes de uma data definida.
As organizações não coletam dados de projeto precisos. Visto que a precisão das estimativas depende dos dados históricos, isso seria um problema.
Para qualquer projeto, existe um cronograma mais curto possível que permitirá incluir a funcionalidade necessária e produzir resultados de qualidade. Se houver uma restrição de cronograma pela gerência e / ou cliente, você pode negociar o escopo e a funcionalidade a serem entregues.
Concorde com o cliente sobre como lidar com variações de escopo para evitar estouros de cronograma.
A falha em acomodar a contingência na estimativa final causa problemas. Por exemplo, reuniões, eventos organizacionais.
A utilização de recursos deve ser considerada como inferior a 80%. Isso porque os recursos seriam produtivos apenas por 80% do seu tempo. Se você atribuir recursos com mais de 80% de utilização, é provável que haja deslizamentos.
Diretrizes de estimativa
Deve-se manter as seguintes diretrizes em mente ao estimar um projeto -
Durante a estimativa, pergunte as experiências de outras pessoas. Além disso, coloque suas próprias experiências em ação.
Suponha que os recursos serão produtivos por apenas 80% do seu tempo. Portanto, durante a estimativa, considere a utilização de recursos como inferior a 80%.
Os recursos que trabalham em vários projetos demoram mais para concluir as tarefas devido ao tempo perdido alternando entre eles.
Inclua o tempo de gerenciamento em qualquer estimativa.
Sempre inclua contingência para solução de problemas, reuniões e outros eventos inesperados.
Reserve tempo suficiente para fazer uma estimativa adequada do projeto. Estimativas apressadas são estimativas imprecisas e de alto risco. Para grandes projetos de desenvolvimento, a etapa de estimativa deve realmente ser considerada como um miniprojeto.
Sempre que possível, use dados documentados de projetos anteriores semelhantes de sua organização. Isso resultará na estimativa mais precisa. Se sua organização não manteve dados históricos, agora é um bom momento para começar a coletá-los.
Use estimativas baseadas no desenvolvedor, pois as estimativas preparadas por outras pessoas além daquelas que farão o trabalho serão menos precisas.
Use várias pessoas diferentes para estimar e use várias técnicas de estimativa diferentes.
Reconcilie as estimativas. Observe a convergência ou dispersão entre as estimativas. Convergência significa que você fez uma boa estimativa. A técnica Delphi de banda larga pode ser usada para reunir e discutir estimativas usando um grupo de pessoas, com a intenção de produzir uma estimativa precisa e imparcial.
Reavalie o projeto várias vezes ao longo de seu ciclo de vida.