Valor do Ponto de Função

Compartilhe este conteúdo!

Valor do Ponto de Função

Unidades de Medida e Composição de Preço do Software

Precificar um produto ou serviço é uma tarefa relativamente simples.

Basicamente, trata-se de somar custos de produção + impostos + margem de lucro e o valor final é o preço a ser cobrado pelo produto ou serviço.

Em algumas áreas existe um fator adicional que são as Unidades de Medida utilizadas para compor o preço.

Quando falamos de água temos o metro cúbico (m³), em energia elétrica temos o kilowatt (kW), em construção civil temos o metro quadrado (m²).

Na área de software temos algumas Unidades de Medida que utilizamos para dar tamanho ao software, dentre as quais temos o Ponto de Função (PF) como uma das mais utilizadas.



Descobrir o custo para fechar o preço do sistema

No segmento de métricas e estimativas sempre fazem a seguinte pergunta: “qual o valor do ponto de função?”.

A finalidade é obter a resposta para utilizá-la como referência ou base para definição do valor do ponto de função a ser cobrado em algum projeto.

Mas essa pergunta não tem uma resposta simples. Mas infelizmente muitas empresas acreditam que tem.

Se a empresa XYZ cobra R$ 800,00 por um ponto de função, isso significa que a empresa ABC deve cobrar o mesmo valor?

Isso se aplicaria somente se todas as variáveis para composição de preço fossem iguais nas duas empresas, o que na vida real, é quase impossível.

O preço (valor) de um Ponto de Função, excetuando os impostos e margem de lucro, é calculado com base no custo de se produzir o Ponto de Função.

O mais importante antes de se pensar no valor a cobrar por um Ponto de Função é entender “em todos os detalhes” quanto custa produzir um ponto de função. O “todos os detalhes” é a parte mais crítica, e onde mora um cupim de margem de lucro de muitas empresas de software.



Definir o custo de produção do Ponto de Função

Outra pergunta muito comum é: “qual a produtividade do ponto de função em C#?”, ou “qual a produtividade do ponto de função em Java?”.

A finalidade é obter a resposta para utilizá-la como referência ou base para definição da produtividade para produção do ponto de função em alguma linguagem de programação específica.

E isso também não tem resposta simples.

A produtividade para se produzir um ponto de função não pode ser medida tendo-se como base apenas a linguagem de programação utilizada.

Se a empresa XYZ consegue produzir um ponto de função utilizando C# em 8h, isso não significa que a empresa ABC conseguirá produzir um mesmo ponto de função em 8h.

Fatores que precisam ser avaliados

  • Arquitetura do software a ser produzido (utilização de ORM, camadas e padrões de projeto aplicados etc.).
  • Utilização de framework para construção (frameworks proprietários [não framework .net ou JDK por exemplo]).
  • Perfil da equipe envolvida no projeto (quantidade de profissionais conforme experiência [júnior/pleno/sênior]).
  • Segmento de negócio para o qual o software está sendo produzido (ERP para bancos tende a ser algo bem mais complexo que ERP para Posto de Gasolina).
  • Nível de acesso ao cliente (agilidade no acesso ao cliente para tirar dúvidas, validar especificações etc.).
  • Metodologia aplicada ao ciclo de vida do projeto (Waterfall ou Iterativo/Incremental, por exemplo).
  • Modelo organizacional ao qual o projeto foi submetido (desenvolvido internamente, contratação de fábrica de software etc.)
  • Produto final do projeto (primeira versão de um software, projeto de melhoria, customizações etc.).

Como então definir o valor do Ponto de Função?

A melhor maneira é descobrir quanto custou o Ponto de Função em projetos semelhantes. Isso é possível com análise de base histórica.

Não havendo base histórica de projetos, o melhor a fazer é:

  • Identificar os projetos semelhantes produzidos pela empresa.
  • Levantar a quantidade de horas gastas (esforço realizado) em cada projeto.
  • Identificar as variáveis de cada projeto (linguagem de programação, nível de senioridade da equipe, segmento de negócio que o sistema atendeu, banco de dados utilizado, arquitetura etc.).
  • Levantar o custo de cada projeto.
  • Realizar uma contagem de pontos de função atualizada de cada projeto.
  • Dividir o total de pontos de função pelo custo do projeto.

Se não há como extrair tal histórico a saída é tentar avaliar todas as variáveis envolvidas com o máximo de cuidado possível, e obter parâmetros de mercado, estimar a produtividade viável para o projeto, e então calcular o risco.

E partir do primeiro projeto, começar a montar a base histórica!



E se o valor do Ponto de Função for estabelecido pelo cliente?

Isso é muito comum em contratos de governo, por exemplo.

Neste caso, a avaliação sobre vender ou não o projeto é fundamental.

Se for vendido, deve-se adequar a realidade do projeto ao valor do ponto de função estabelecido pelo cliente, visando obter-se a maior produtividade, para que o custo de produção seja o mínimo possível e margem de lucro a maior possível.

/* Eu já vi empresas assumirem projetos de porte significativo – 3000 pontos de função por exemplo – e no meio do projeto arrependerem-se amargamente de vender o projeto. Muitas das vezes quem vende o projeto e fixa o valor do ponto de função não considera que um valor muito baixo inviabiliza o fornecedor de realizar uma entrega, e isso nunca dá coisa boa. */

Obs.: tão importante quanto o cuidado na definição do ponto de função é saber realizar a métrica com a maior acuracidade possível. De nada adianta saber calcular-se o valor do ponto de função com qualidade, se os pontos de função foram calculados incorretamente. Para reflexão, veja a importância de uma métrica bem feita.



Concluindo

Salvo quando o valor do ponto e função é pré-estabelecido pelo cliente (sem margem para negociação), não deve haver um valor único para todos os projetos.

Cada projeto é singular, e todo cuidado é pouco na definição do preço a ser cobrado. Procure sempre garantir a melhor concepção possível do software, fazer toda a diferença para um negócio mais justo para todas as partes.

Abraços!