Análise Indicativa de Pontos de Função (Caso prático)
A Análise Indicativa de Pontos de Função (NESMA) é uma técnica de estimativa capaz de mensurar o tamanho de um software a partir de poucas informações sobre a interface com uma margem de erro de 16,5%. Isso permite que seja utilizada em cotações ainda nas fases iniciais do projeto e que seja utilizada em propostas.
Nesse post, vou mostrar como calcular, como transformar em horas, em custos e em preços. Com esse ferramental, sua empresa vai ganhar muita agilidade na composição de propostas de software.
Como fazer a Contagem Indicativa de Pontos de Função
Imagine um website em que vendedores de uma empresa entram para fazer cotações de pedidos. Os preços podem variar segundo a categorização de clientes, aos quais se oferecem descontos especiais.
Passo 1 – Mapear as entidades
Normalmente, entidades são elementos que gravam dados em banco, os famosos CRUDs. Mas, também podem ser elementos que consomem dados de outros sistemas, as APIs.
A figura lembra um Modelo Entidade-Relacionamento, mas não precisa necessariamente ter a cardinalidade nem os campos.
Passo 2 – Classificar as entidades
Às entidades que gravam dados e que não dependem de outras para existir chamamos de Entidades Fortes ou, na metodologia, ALIs (Arquivo Lógico Interno). Por exemplo: Quando pensamos na entidade Produtos, podemos inferir que um produto existe ainda que não haja cotações/orçamentos.
Já as entidades que consomem dados ou dependem de outras para existir chamamos de Entidades Fracas ou AIEs (Arquivo de Interface Externa). Por exemplo: A entidade orçamento só existe porque há produtos e clientes, logo, é uma entidade fraca. Um outro tipo de AIE são aquelas interfaces que acessam outros sistemas como a API de mapas do Google, um JSON de um sistema legado ou um REST do barramento de serviços.
Adicionei duas APIs (abstratadas) ao exemplo para ilustrar melhor o conceito de AIEs. Nesta figura, as entidades já estão classificadas entre ALIs (verde escuro) e AIEs (verde claro).
Passo 3 – Contar os pontos de função
Uma vez que as entidades tenham sido classificadas, basta adicionar 35 pontos para cada ALI e 15 pontos para cada AIE, como mostrado na figura abaixo.
Depois devem-se somar os pontos, no exemplo somam-se 265 pontos de função. Para facilitar o acompanhamento, baixe a planilha aqui.
Passo 4 – Estimar as horas de trabalho
A média de mercado para linguagens mais robustas como o Java é de 13 hs / PF, incluindo todo trabalho de requisitos, design, desenvolvimento, testes e correções. Neste cenário, devem-se multiplicar os Pontos de Função pela produtividade média para ter uma referência:
265 pontos de função x 13hs/PF = 3.445 horas de trabalho
Pode parecer muito, eu sei, por isso que cada empresa deve manter sua própria média de produtividade. Outro motivo é que a produtividade varia de acordo com a equipe, linguagem, estabilidade da plataforma, reuso etc., fatores que devem ser avaliados a cada projeto.
Passo 5 – Calcular o custo
Para transformar as horas em custos existem duas formas:
1. Multiplicar o total de horas pelo custo médio
3.445 horas x R$ 100,00 = R$ 344.500
2. Segmentar o esforço de trabalho entre diferentes perfis para chegar a um valor mais preciso
Neste exemplo, distribuí o esforço entre os diferentes perfis e usei taxas-hora diferentes (aleatórias) para cada um. Fazendo a continha, cheguei ao valor de R$ 287.657,50. Da mesma forma, sua empresa pode calcular o custo médio se souber a distribuição do esforço por tipo de projeto, aí voltamos ao modelo 1, que é mais rápido de usar.
Passo 6 – Calcular o preço
Com os custos, pode-se calcular o preço, bastando multiplicar pela margem bruta esperada para o projeto. Para exemplificar, consideremos uma margem de 35%.
R$ 287.657,50 x (1+35%) = R$ 388.337,63
Lembre-se que trata-se da margem bruta do projeto, sobre ela ainda incorrerão impostos, custos operacionais e no final tem que dar lucro!! A área financeira da empresa é capaz de estimar a margem bruta esperada.
Depois disso tudo, basta montar o orçamento do projeto ao longo do tempo, para isso, siga esse tutorial sobre como fazer o controle financeiro de projetos. Se ainda não baixou a planilha de exemplo, pode baixar aqui.
Nos próximos posts, comentarei mais sobre como manter uma base de conhecimento de produtividade e como estimar a margem bruta dos projetos. Agradecimento ao professor Daniel Breves Martins, que me apresentou essa técnica e, com isso, viabilizou incontáveis estimativas de projetos. Obrigado!
Eli Rodrigues
Mais um post muto bom Eli! Parabéns.
Principalmente por disponibilizar em conjunto sempre uma planilha para automatizar e facilitar a nossa vida!