Análise de pontos de função, entre na moda da contagem

10, junho 2011   •   (Não há comentários)   •   Autor: Thiago Dieb

Tudo em nossas vidas está voltado a mensurar alguma coisa, observe, você precisa contar a quantidade de dinheiro para pegar seu ônibus, calcular a quantidade de farinha de trigo em um bolo, a quantidade de resmas de papel que deverá ser necessária para um mês, marcar a quantidade de horas extras que fez durante o mês para adicionar em seu salário.
Observou como encontramos sempre uma forma de medir alguma coisa? Ai lhe pergunto, como podemos medir o tamanho e até o custo de um software (sistemas, sites, blogs) ? O problema nessa pergunta está na resposta, confuso ? A questão é, qual parâmetro iriamos utilizar para medir coisas que podem ser muito diferentes. Exemplo: um sistema de automação comercial, tem suas especifidades e com certeza é bem diferente de um site divulgação de várias redes sociais. Os dois exemplos anteriores são considerados softwares, e agora José?

Mensurar software, etapa difícil. O modo mais comum de mensurar o valor de um software, é pela quantidade de esforço aplicado no desenvolvimento, ou seja, quantidade de horas gastas por cada pessoa envolvida no projeto, também chamamos de homem/hora.
Bem provável que você esteja se perguntando agora, “Mas isso não é o correto ?”. Pois bem, claro que podemos considerar esse tipo de estimativa de custo usual, entretanto pode nos trazer muitos problemas. Vamos usar um caso bem comum que acontecia em contratos de terceirização de serviços com órgãos públicos. Ao fechar o contrato, a forma de pagamento era em homem/hora, quanto mais os profissionais terceirizados trabalhassem, com certeza receberiam mais, porém isso não quer dizer que o serviço seria entregue mais rápido. Os profissionais faziam 10 vezes mais horas extras, mas o trabalho continua sendo feito em um ritmo normal, sem nenhuma pressa. Esse é um pequeno de exemplo quando mensuramos o valor de um software por homem/hora. E a solução pra isso, existe? Sim, vamos ver agora.

Apresento APF, mas o que é APF?

Uma solução que encontraram foi fazer todas as estimativas de custo dos softwares por Ponto de Função ao invés de homem/hora. Essa modalidade de medida foca exclusivamente nas funcionalidades do sistema na perspectiva do usuário. Antes de qualquer coisa, vamos entender realmente o que é Análise de Ponto de Função (APF) e como ela pode nos auxiliar a mensurar o tamanho ou até o valor de software.

APF é considerada uma técnica de medição das funcionalidades encontradas por um software, mas essas funcionalidades deve ser totalmente identificadas pelo usuário. Por sua vez o Ponto de função (PF) seria a unidade de medida a ser analisada, seu objetivo é tornar a medição independente da tecnologia utilizada para a construção do software. O propósito da APF é procurar medir o software com relação ao que ele pode fazer, desconsiderando a forma como ele é desenvolvido.

Importante destacar que pontos de função não medem diretamente esforço, produtividade ou custo. É exclusivamente uma medida de tamanho funcional do software. Este tamanho, em conjunto com outras variáveis, é que poderá ser usado para derivar produtividade, estimar esforço e custo do projeto de software.

Como surgiu a APF?

A APF não é uma técnica tão nova quanto a maioria das pessoas pensam, ela surgiu em 1979 como resultado de um projeto desenvolvido por Allan Albrecht, pesquisador da IBM. Allan observou que nem todos os projetos usavam a mesma linguagem de programação, portando procurou desenvolver uma maneira de analisar os aspectos importantes do software, não ressaltando assim o tipo de tecnologia. Esta medida, a APF, por se basear na visão do usuário, é independente da linguagem de programação ou de qualquer outro aspecto relacionado à implementação do software.

Procedimento de contagem

Prototipagem de tela

O processo de contagem começa a partir da análise dos requisitos reconhecidos pelo usuário, por meio da documentação técnica do software, exemplo: Especificação de casos de usos, diagramas de classe, MER, protótipos de telas e etc. Toda essa análise é realizada com base nas padronizações de contagem, descrita no Manual de Contagem da International Function Point Users Group (IFPUG).

Depois do estudo e reconhecimento do software, iniciamos o famoso processo de contagem, que pro sua vez é composto por algumas regras, não muito complexas, mas necessárias. Abaixo listo as etapas sequenciais para a conclusão no processo de contagem:

  1. Identificação das funções do sistema.
  2. Classificação de cada função quanto à complexidade funcional relativa como: simples, média ou complexa.
  3. Cálculo dos pontos de função brutos através da aplicação dos pesos de acordo com a tabela específica
  4. Avaliação das 14 características gerais do sistema
  5. Determinação do Fator de Ajuste
  6. Cálculo dos pontos de função ajustados.

Brevemente abordarei com detalhes cada um desses passos. Aguarde os próximos posts.

Vantagens na sua utilização

Não pode se julgar, afirmando que a APF é uma técnica perfeita. Entretanto bem aplicada pode nos trazer muitos benefícios.

  • Partindo do princípio que é um método totalmente transparente ao usuário, e todas as medições dos pontos de função ocorrem de acordo com sua visão.
  • Possibilita utilizar suas medições para estimar tempo, recursos e custos desde o início do ciclo de desenvolvimento, mesmo não havendo todo escopo do projeto definido.
  • Melhorar a forma de contratação do serviço de desenvolvimento de software.
  • Facilitar o controle de qualidade dos serviços entregues.

Enfim, é relevante ressaltar que a APF não está sendo utilizada por questão de modismos, mas sim, por questão de resultado. A técnica bem aplicada pode economizar muito dinheiro e tempo tanto para quem contrata o projeto, quanto pra quem desenvolve. Recomendo muito o estudo e a sua aplicação, mas cuidado para não o utilize de forma errada.

Fico por aqui, até a próxima…

Fontes:
IFPUG – http://www.ifpug.org
FATTO – http://www.fattocs.com.br
BFPUG – http://www.bfpug.com.br