Fundamentos de Estimativas de
Software
1/ 40
Logística
• Duração Prevista
– 18h30 às 22h30
• Intervalos
– Coffee break: 20h30 às 20h45
• Recomendações
– Manter celulares em modo silencioso. Caso seja necessário, atendê-lo
fora da sala;
– Perguntas preferencialmente ao final de cada assunto.
2/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
3/ 40
Objetivos
4/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
5/ 40
Apresentação
Quem somos?
6/ 40
Renata Marins de Sá Frank
7/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
8/ 40
Conceitos
• Tamanho:
– O tamanho do projeto é definido por sua capacidade de
produção durante um período de trabalho considerado
normal.
– O tamanho é a dimensão das funcionalidades sob o ponto
de vista do usuário.
– complexidade do software ou projeto em alguma unidade
abstrata.
9/ 40
Conceitos
10/ 40
Conceitos
• Unidades comuns:
– Linhas de código (KLOC).
– Pontos de caso de uso.
– Pontos de função.
• Saber o tamanho de um projeto é um dos
primeiros passos do processo de estimativa de
esforço, prazo e custo.
11/ 40
Conceitos
• Esforço
– Chamado de empenho ou trabalho, é a quantidade de
unidades de mão-de-obra necessária para concluir uma
atividade.
• Exemplo:
– Tamanho = 1000 unidades de tamanho
– Produtividade usada de 8 horas por unidade de tamanho
– Esforço = 8000 horas.
12/ 40
Conceitos
• Prazo
– O tempo esperado para uma atividade ser
concluída dado o esforço e recursos disponíveis.
13/ 40
Reflexão sobre
Tamanho
Esforço
Prazo
14/ 40
Conceitos
15/ 40
Conceitos
16/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
17/ 40
Técnicas de Estimativas
18/ 40
Técnicas de Estimativas
m2 PF
Mede tamanho de Mede tamanho de
objetos. software
19/ 40
Técnicas de Estimativas
20/ 40
Técnicas de Estimativas
21/ 40
Técnicas de Estimativas
• Aplicação
– uma ferramenta para determinar o tamanho de pacotes
de software adquiridos, através da contagem de todos os
Pontos por Função incluídos no pacote;
– uma ferramenta para apoiar a análise da qualidade e da
produtividade;
– um mecanismo para estimar custos e recursos envolvidos
em projetos de desenvolvimento e manutenção de
software;
– um fator de normalização para comparação de software.
22/ 40
APF
• Como usar
– Determinar o Tipo de Contagem: Existem três tipos de
contagem de pontos de função. A diferença no
procedimento adotado entre esses tipos de contagem está
nas fórmulas aplicadas no passo final da contagem.
• projeto de desenvolvimento: mede todas as funções que o projeto
entregará e eventuais funções de conversão de dados.
• projeto de melhoria: mede as funções alteradas, incluídas e
excluídas pelo projeto e eventuais funções de conversão de dados.
• aplicação: mede as funções de um software instalado.
23/ 40
APF
• Como usar
– Identificação do Escopo e Fronteira da aplicação:
• A fronteira da aplicação é a interface conceitual entre o software e
o usuário. Ela delimita o software e o mundo externo. É um
elemento essencial para a correta identificação das funções do
tipo dado e transação nos passos seguintes. O escopo da
contagem define o que fará parte da contagem de pontos de
função.
24/ 40
APF
• Como usar
– Relacionar as funcionalidades:
– DADOS
• ALI Tabelas internas do sistema (aquelas que mantém dados)
• AIE Tabelas de outros sistemas e que consultamos informações
– TRANSAÇÕES
• EE Telas de Inclusão, Alteração e Exclusão de Registros nas
tabelas
• CE Telas de Consultas simples e Relatórios de listagens
• SE Telas de Consultas complexas e Relatórios com cálculos
25/ 40
APF
• Como usar
– Pontuar as funcionalidades:
• Se a contagem for detalhada: a partir das tabelas de pontuação
definidas no CPM 4.2.1
• Se a contagem for estimada:
– Cada ALI com 7 PF
– Cada AIE com 5 PF
– Cada EE e CE com 4 PF
– Cada SE com 5 PF
• Se a contagem for indicativa:
– Cada ALI com 35 PF
– Cada AIE com 15 PF
26/ 40
APF
• Como usar
– Calcular o fator de ajuste: O fator de ajuste representa a
influência de requisitos técnicos e de qualidade no
tamanho do software. É calculado com base nas 14
Características Gerais do Sistema (CGS) listadas a seguir:
• Comunicação de Dados , Processamento Distribuído,
Performance, Configuração Altamente Utilizada, Volume de
Transações, Entrada de Dados On-Line, Eficiência do Usuário Final,
Atualização On-Line, Complexidade de Processamento,
Reutilização, Facilidade de Instalação, Facilidade de Operação,
Múltiplos Locais, Facilidade de Mudanças.
27/ 40
APF
• Como usar
– Cada uma dessas características deve ser analisada com relação ao
seu nível de influência sobre o sistema e pontuada de 0 (nenhuma
influência) a 5 (grande influência). Então soma-se todas essas
pontuações para obter o nível total de influência (TDI). Daí basta
aplicar a seguinte fórmula para obter o fator de ajuste:
– VAF = (TDI x 0,01) + 0,65.
28/ 40
APF
• Como usar
– Calcular os pontos de função ajustados: consiste
basicamente em multiplicar o fator de ajuste pelos pontos
de função não ajustados. Porém existem fórmulas
específicas para cada tipo de contagem:
• projeto de desenvolvimento DFP = (UFP + CFP) x VAF, onde:
UFP - pontos de função da aplicação a ser instalada
CFP - pontos de função das funcionalidades de conversão de dados
VAF - valor do fator de ajuste
29/ 40
APF
• Como usar
• projeto de melhoria EFP = [(ADD + CHGA + CFP) x VAFA] + (DEL
x VAFB), onde:
ADD - pontos de função das funcionalidades adicionadas
CHGA - pontos de função das funcionalidades alteradas
CFP - pontos de função das funcionalidades de conversão de dados
VAFA - valor do fator de ajuste do software após o projeto de
melhoria
DEL - pontos de função das funcionalidades excluídas
VAFB - valor do fator de ajuste do software antes do projeto de
melhoria
30/ 40
APF
• Como usar
• Aplicação AFP = ADD x VAF
31/ 40
APF
• Fator de Produtividade
– A melhor forma de obter indicadores de produtividade
que realmente sejam úteis nas estimativas com pontos de
função é apurar esse indicador através dos projetos
desenvolvidos pela organização. Mas como fazer isto?
– O primeiro passo é recuperar dos projetos passados as
duas grandezas que compõe o indicador de produtividade:
o tamanho (em pontos de função) e o esforço (horas).
Com estes dois dados tem-se de forma direta a
produtividade daquele projeto.
32/ 40
APF
• Mais detalhes
– Manual de Práticas de Contagem do IFPUG
• Exemplos de Planilhas
– Demonstração de exemplos de planilhas de
cálculo.
• Dica:
– Elabore sua planilha, adquirindo maturidade
sobre o método.
33/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
34/ 40
Técnicas de Estimativa
35/ 40
UCP
• Técnica
– Listar os Casos de Uso a serem desenvolvidos
– Listar todos os atores que interagem com os Casos de Uso a serem
desenvolvidos
– Calcular o UUCP (pontos de caso de uso não ajustados)
– Definir o fator técnico de ajuste – TCF utilizando como referência 13
temas que influenciam na complexidade técnica para
desenvolvimento do sistema
– Definir o fator ambiental de ajuste - EF baseado no grau de
importância de oito temas que definem o grau de eficiência do
projeto;
– Calcular o UCP (ajustados).
36/ 40
UCP
• Técnica
– Calculo do Peso dos atores (UAW - Unadjusted Actor
Weight)
37/ 40
UCP
• Técnica
– Unadjusted Use Case Weight – UUCW
• Por número de transações
38/ 40
UCP
• Técnica
– Unadjusted Use Case Weight – UUCW
• Por número de entidades
39/ 40
UCP
• Técnica
– Peso Total não ajustado UUCP
40/ 40
UCP
• Técnica
– Fatores de Ajuste
Bastante similar ao adotado pela técnica de Pontos de
Função, e é constituído de duas partes:
• Cálculo de fatores técnicos, cobrindo uma série de requisitos
funcionais do sistema;
• Cálculo de fatores de ambiente, requisitos não-funcionais
associados ao processo de desenvolvimento, tais como,
experiência da equipe, motivação e estabilidade do projeto.
41/ 40
UCP
• Técnica
– Fatores Técnicos de
Complexidade (TCF)
• Atribuir um valor que determina
a influência do requisito no
sistema, variando entre 0 e 5 -
sendo que o valor 0 indica
nenhuma influência, 3 indica
influência moderada e 5 indica
forte influência.
TCF = 0.6 + (0.01 x TFactor)
42/ 40
UCP
• Técnica
– Fatores Ambientais (EF)
• Atribuir um valor que determina a influência da disponibilidade de
recursos para o projeto, variando entre 0 e 5 - sendo que o valor 0 indica
nenhuma influência, 3 indica influência moderada e 5 indica forte
influência.
EF = 1.4 + (-0.03 x
EFactor)
43/ 40
UCP
• Técnica
– Pontos de Casos de Uso Ajustados (UCP)
44/ 40
UCP
• Fator de Produtividade
– Alguns autores sugerem à utilização de 20 pessoas-hora por unidade
de pontos por caso de uso, outros sugerem o seguinte refinamento :
• X = total de itens de E1 a E6 com pontuação abaixo de 3
• Y = total de itens de E7 a E8 com pontuação acima de 3
• Se X + Y <= 2, usar 20 como unidade de homens/hora
• Se 3<=X + Y <= 4, usar 28 como unidade de homens/hora
• Se X + Y >= 5, deve-se tentar modificar o projeto de forma a baixar o
número, pois o risco de insucesso é relativamente alto.
– A estimativa de horas é calculada de acordo com a seguinte fórmula:
UCP* pessoas/hora por unidade de pontos por caso de uso.
45/ 40
UCP
• Exemplos de Planilhas
– Demonstração de exemplos de planilhas de
cálculo.
• Dica:
– Elabore sua planilha, adquirindo maturidade
sobre o método.
46/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
47/ 40
Técnicas de Estimativa
• Planning Poker
– É um método eficiente que estima o tamanho dos
requisitos em times que adotam métodos ágeis.
– O método foi primeiramente descrito por James Grenning
em 2002 e, mais tarde popularizado por Mike Cohn no
livro Agile Estimating and Planning.
48/ 40
Técnicas de Estimativa
• Planning Poker
– As estimativas acontecem em reuniões que duram
geralmente 4 ou 8 horas.
– Participantes:
• Todos os membros do time do Scrum;
• O PO somente esclarece os requisitos e não estima junto a equipe;
• O Scrum Master registra os resultados, não interferindo nas
estimativas do time;
• A equipe não deve ser superior a dez pessoas.
49/ 40
Planning Poker
• Técnica
– Cada participante recebe um conjunto de cartas nos
valores: 0, ½, 1, 2, 3, 5, 8, 13, 20, 40, 100, ? e “pausa”.
50/ 40
Planning Poker
• Técnica
– Os requisitos a serem estimados são lidos pelo Product
Owner ou pelo Scrum Master;
– A equipe decide qual o menor item de backlog disponível.;
– Após a estimativa inicial, esse item é marcado como “2”
pontos, definindo uma referência de tamanho e
complexidade para ser usada nas demais estimativas.
51/ 40
Planning Poker
• Técnica
– Cada requisito é lido e sua descrição e os critérios da
aceitação da mesma são entendidos.
– São respondidos questionamentos a respeito da
estória/requisito;
– Deve-se manter a discussão em alto nível, não entrando
em detalhes técnicos de implementação.
– Esta discussão deve ocorrer em um tempo
predeterminado (timebox);
52/ 40
Planning Poker
• Técnica
– Cada desenvolvedor escolhe em silêncio a carta que
representa sua estimativa.
– O moderador pede para todos mostrarem as cartas.
– Se todas as estimativas convergirem, a estimativa está
feita e o processo volta ao início, para um novo item.
– Se houver uma grande variação na estimativa, aqueles que
apresentaram o(s) maior(es) e o(s) menor(es) valor(es) se
justificam e o processo se repete até todas as estimativas
convergirem.
53/ 40
Planning Poker
• Técnica
– Reflexão sobre a técnica: Quando aplicar?
54/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
55/ 40
Técnicas de Estimativa
56/ 40
Técnicas de Estimativa
• 3 pontos
– É o cálculo a partir da média simples de 3 durações
possíveis de uma atividade (otimista, mais provável e
pessimista)
• Pessimista (tp)
• Mais provável (tm)
• Otimista (to)
te = to + tm + tp
3
57/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
58/ 40
Técnicas de Estimativa
• Customização de estimativa
– Pontos importantes
• Ter critérios de classificação da complexidade dos
requisitos, de forma que seja possível aplicar o método
de estimativa independente de quem assume o papel
responsável;
• Documentar a técnica;
• Levar em consideração, de forma objetiva, a
característica da equipe, ambiente e projeto;
• Não permitir a subjetividade na estimativa.
59/ 40
Técnicas de Estimativa
• Customização de estimativa
– Exercício
• Estabeleça critérios de classificação dos requisitos e
elabore um método de estimativa de tamanho de
projeto.
60/ 40
Técnicas de Estimativa
• Customização de estimativa
– Reflexão
• Tamanho de projeto
• Tamanho de produto
• Obrigatoriedade de uso de técnicas de estimativas em
implementações modelos de melhoria de processo de
software (CMMi / MPS.BR).
61/ 40
Agenda
• Objetivos
• Participantes
• Conceitos
• Técnicas de Estimativas
– APF
– UCP
– Planning Poker
– PERT / 3 Pontos
• Customização
62/ 40
• Dúvidas?
63/ 40
OBRIGADA PELA SUA ATENÇÃO!
Renata Frank
consultoria@renatafrank.com.br
(41) 8856-3734
64/ 40