Análise de Pontos
de Função
Medição, Estimativas e
Gerenciamento de Projetos de
Software 1
Por que medir
software?
2
Por que medir software? • Estimar custo e recursos de projetos
• Avaliar a aquisição de pacotes (make-or-buy)
• Suportar análises de produtividade e qualidade
• Remunerar fornecedores
• Apoiar a gerência de escopo do projeto
• Apoiar a gerência de requisitos do projeto
• Benchmarking
3
Dilema do desenvolvimento
SW • Requisitos - qualidade, funcionalidade e performance
• são infinitos: tendem a expansão
• Recursos - trabalho, logística, capital
• são restritos: pressão para menor utilização
• Como manter esta situação sob controle?
• Atender ao máximo as expectativas com a utilização do
mínimo de recursos
4
As Respostas de Hoje
• Terceirização e gestão de contratos
• Uso intensivo de pacotes de software - ERP em especial
• Orientação para gerência de projetos
• Iniciativas de Melhoria de Processos
• Mas o que é gerência de projetos e onde entra a APF?
5
Desafio do GP
• Tornar o gerenciamento de projetos baseado em fatos,
não em “achismos”
• Para isto, deve-se buscar métricas e indicadores que
orientem a gerência pois:
• “Não se pode controlar o que não se pode medir” - Lord
Kelvin
• ou
• “Não se pode gerenciar o que não se pode medir” - Tom de
Marco
6
Importância da medição
• “..., quando feita adequadamente, a
medição em seqüência de atributos de
qualidade de produtos e processos pode
fornecer uma base efetiva para a iniciação e gerência de
atividades de melhoria de processos.” PSM:
Measuring for Process Management and
Improvement William A. F. et al, 1997
7
O que medir?
8
Objetivo
Questão Questão
Objetivo
Questão Questão
Objetivo
Questão Questão
Métrica Métrica Métrica Métrica Métrica Métrica
Planejamento
Indicadores derivados de PF
• A APF, junto com outras métricas permite a geração de
vários indicadores para o GP
• Horas / PF
• PF / Homem Mês
• R$ / PF
• Defeitos / PF
• Estabilidade dos requisitos
• Baseline da organização
• Tamanho do backlog
9
Uso da APF em
Estimativas
10
Estimativas de Projetos de
Software • Quanto Tempo?
• Quanto Custa?
• Respostas dependem
• dos Requisitos
• da Equipe
• da Tecnologia
• Exatidão apenas ao término
• Podem ser mais ou menos exatas
11
Podem ser mais ou menos
exatas
12
Paradoxo: quando mais se
exige precisão, menos se tem
13
14
desenvolver produto
aprovar estimativas
estimar custo
cronograma
estimar esforço fatores
de
risco
dados
históricos
medidas reais de tamanho, esforço,
etc.
estimativas aprovadas de
tamanho, esforço , etc.
recursos
dados
de custo
Analisar o processo de estimativa
estimar tamanho
coletar requerimentos
estim
ar n
ova
me
nte
se
mp
re q
ue
ne
ce
ssá
rio
Onde entra a APF?
• Tamanho pode ser estimado antes da especificação de
requisitos estar completa
• Muito útil em tempo de proposta e análise de viabilidade
• É uma técnica para macro-estimativas
• Não recomendada para estimativas pontuais de
atividades ou projetos muito pequenos
15
Estimando Esforço
• Necessidade das horas apropriadas para
• Produtividade (PF / H)
• Taxa de Entrega (H / PF)
• Classificação de projetos por similaridade
• processo de desenvolvimento deve ser estável
• Extrapolar o comportamento histórico
• Indicadores de Mercado
• Indicadores Internos
16
Estimando Custo
• Necessidade dos custos apropriados para
• Preço do ponto de função ( R$ / PF)
• Classificação de projetos por similaridade
• processo de desenvolvimento deve ser estável
• Extrapolar o comportamento histórico
• Indicadores de Mercado
• Indicadores Internos
17
Estimando Duração
• Neste ponto o ideal é conjugar outras técnicas pois:
• Nem sempre Prazo = Esforço / Tamanho Equipe
• Cuidado com fórmulas mágicas
• duração = PF ** 0,4 ???
18
Outras Estimativas
Possíveis? • Número de casos de teste (= PF x 1,2) ???
• Número de defeitos (= PF ** 1,25) ???
• Tamanho da equipe de desenvolvimento (= PF / 150)
???
• Tamanho da equipe de manutenção (= PF / 1500)
???
19
Uso da APF em
Contratos de
Software
20
Aspectos Contratação
Sofware • Foco no negócio principal
• Terceirização do desenvolvimento SW
• Parcial
• Equipe
• Projeto
• Atividade (codificação, teste, análise, etc)
• Total
• Outsourcing
21
Gestão do Contrato
• A necessidade de gerenciar o contrato existe seja qual
for o nível da terceirização
• Equipe: produtividade e qualidade
• Projeto: prazo, escopo
• Atividade: prazo
• Outsourcing: custo, qualidade
22
Formas de contratação
23
Homem Hora
Preço Global Fixo
Preço Unitário
Sele
ção d
o T
ipo d
e C
ontra
to
APF
Homem Hora (HH)
• “Body shopping” , “time and material”
• Equipe mista
• Nem sempre apenas um fornecedor
• Infra-estrutura própria
• Remuneração
• Nível de qualificação
• Experiência dos profissionais
• Horas apropriadas
24
HH - Por um lado
• Simples administração
• Flexibilidade
• Agilidade em picos de demanda
• Mudança real dos requisitos:
• Aumento de escopo
• Aumento do esforço
• Aumento da fatura
• É justo. Responsabilidade direta do contratante
25
HH - Por outro lado
• Quantidade mínima de horas:
• Mês ou ano
• Potencial subutilização de recursos
• Garantia
• Gerenciar a produtividade dos contratados:
• Competência não necessariamente disponível
• Remuneração não vinculada a resultados
• Falta de estímulo ao aumento de produtividade
• NÃO é justo. Responsabilidade do contratado
26
Aplicação da APF x HH
• Monitoramento da qualidade
• Defeitos
• quantidade, severidade, origem ...
• Funcionalidade fornecida (pontos de
função)
• Monitoramento da produtividade
• Pessoal envolvido em manutenção
• Baseline ou base instalada
27
Preço Global Fixo (PGF)
• Privilegia a abordagem de projeto
• Exige maior grau de organização
• Quanto melhor definidos estiverem os requisitos, menor a
chance de atritos
• Em geral:
• O fornecedor não dispõe de muita informação
• Ele não dispõe de tempo para análise detalhada
• Superdimensionamento ou subdimensionamento (mais
provável)
• Ambos assumem que os requisitos não mudam
• Mas eles mudam... 28
Os requisitos mudam... • Quanto maior a duração do projeto, mais provável de
ocorrer
• Nova negociação (aumento do escopo): como saber se
as condições originais serão mantidas?
• APF como fator de normalização
• Dimensionar o projeto original
• Calcular o valor unitário
• Aplicar os números ao objeto da mudança de
escopo
• Instrumento de COMUNICAÇÃO
29
Quem disse que eles
mudaram?
30
Medição da variação do
escopo
31
[1.200 PF] Especificação Inicial
de Requisitos
[1.500 PF] Projeto de
Alto Nível
[1.700 PF]
Projeto
Detalhado
Estimativa Dimensionamento
[1.900 PF] Produto
Entregue
Horas, Reais, Pontos de Função, etc.
Estimativa Incial...: 1.200 PF
Produto Entregue.: 1.900 PF
Crescimento.........: 58,3%
( 1.900 – 1.200 ) * 100
1.200
Projeto A Equipe 1
Preço Unitário (PU) • Remuneração sobre elementos do projeto
• Relatórios, telas, tabelas, casos de uso, linhas de código, pontos de função
• Equilibrar riscos
• Produtividade e qualidade - Contratado
• Escopo - Contratante
• Desafio: O elemento
• Reconhecido pelo contratante e contratado
• Uniforme
• Consistente
32
Por que APF como unidade
• Pontos de função como unidade padrão
• Método padrão de medição funcional
• Centenas de empresas e profissionais
• IFPUG - organização responsável
• Pontos de função facilitando a comunicação
• Vocabulário independente da tecnologia
• Perspectiva do negócio
33
Quem usa APF em contratos
• BANDES
• CEF
• SERPRO
• PM- SP
• DATAPREV
• CORREIOS
• BRADESCO
• ABN/REAL
• EXÉRCITO 34
• PETROBRÁS
• EMBRATEL
• PRODEB
• EDS
• POLITEC
• MSAInfor
• DBA
• CPM
• STEFANINI
Visão Geral da APF
35
Definição da APF
• Método Padrão para Medir Software do Ponto de
Vista do Usuário através da quantificação da
Funcionalidade Fornecida
36
Objetivos da APF
37
Objetivos da Técnica •Medir a Funcionalidade que o usuário solicita e recebe
•Medir o desenvolvimento e melhoria de software de
forma independente da tecnologia utilizada para sua
implementação
Objetivos do Processo de Contagem
•Simples o suficiente para minimizar o trabalho
adicional envolvido no processo de medição
•Uma medida consistente entre vários projetos e
organizações
Componentes da contagem
38
Processo de contagem
39
ANÁLISE DE
PONTOS DE FUNÇÃO
CARTÃO DE REFERÊNCIA
Determinar o Tipo de Contagem
Determinar Escopo da
Contagem e Fronteira da
Aplicação
Contar Funções Tipo
Dados
Contar Funções
Tipo Transação
Determinar Contagem de Pontos de Função
não Ajustados
Determinar Valor do Fator de Ajuste
Calcular o Número de Pontos de
Função Ajustados