Esses dias
fui convidado para fazer uma palestra na Conferência de Métricas de Software do
BFPUG, o “braço” brasileiro do IFPUG (Internacional
Function Point Users Group). O evento ocorrerá em novembro, e pela primeira
vez em Brasília.
Não sou especialista no assunto.
Mas, enfim, vamos lá. Pensando em como estruturar a apresentação, lembrei-me de
uma interessante analogia de um colega do BB, já aposentado, que considero emblemática
para o desafio que temos na gestão de fábricas de software.
É bem simples, e mais ou menos assim:
Um sujeito contratou um pedreiro
para construir o muro da casa dele. O preço era R$ 1 mil.
Terminado o serviço,
seu José apresentou a conta:
- Dotô, são dois mil e quinhentos...
- Como assim? Combinamos mil, e
você não fez nada mais do que eu lhe pedi...
- Fiz sim. Primeiramente, o
senhor pediu pra construir o muro ali. Eu construí. Depois, o senhor se
arrependeu e disse que era pra fazer mais adiante. Então! Mil pra fazer o
primeiro muro, quinhentos pra derrubar e mais mil pra construir de novo... Dois
e quinhentos!!
Não é difícil transportarmos o
exemplo para o nosso mundo de TI. O refazimento de uma solução antes mesmo do
final de sua construção não é tão raro assim (embora devamos nos esforçar para
evitar isso. Um bom planejamento ajuda bastante...).
Obviamente, na maioria dos casos
o problema está na instabilidade dos requisitos. Mas o fato é que, com frequência, há retrabalho. E se formos tirar “um retrato” do serviço de forma
estática, veremos que ele não representará o real esforço do trabalho.
Consequentemente, medidas de produtividade e de remuneração serão impactadas, e
há uma tendência de imputar à métrica adotada a culpa de eventuais distorções.
Ora, seja em que métrica for
(pontos de função, linhas de código, pontos por caso de uso, pontos por objeto, etc, etc, etc) qualquer verificação estática apontará divergências.
Concluímos,
então, que o problema está no processo, não na métrica.
Dentre as muitas variáveis que
podem ser utilizadas para se determinar a métrica ideal para desenvolvimento de
software, considero o nível de
granularidade do serviço de TI a ser medido uma das principais. Uma medição por Pontos por Objeto seria muito mais eficaz que a APF para medir serviços mais “granulares”,
como a construção de um componente ou a modelagem de uma tabela.
Já para medir um documento de
alto nível, no qual não conseguimos discernir num primeiro momento quais os
objetos necessários para implementar a demanda, o ponto de função será mais
útil.
Pra fechar, seguem três questões
de concurso relacionadas ao assunto. Uma delas, aliás, é bem polêmica. Quem se
habilita?
CESGRANRIO
- 2007 - EPE - Analista de Gestão Corporativa Júnior
A análise por pontos de função utiliza diversas
características para estimar o tamanho de um software. Das características
abaixo, indique a que NÃO afeta
a contagem nesse tipo de métrica.
a) Desempenho
b) Necessidade de backup
c) Necessidade de testes
d) Necessidade de comunicação de dados
e) Número de entradas do usuário
Na Análise de Pontos de Função,
o fator de ajuste é o resultado da avaliação de 14 características gerais do
sistema e é utilizado para determinar o tamanho final do software. Com efeito,
os pontos de função obtidos da contagem das funções de dados e transacionais
são conhecidos como “pontos brutos não ajustados”. O fator de ajuste promoverá
uma variação nos pontos brutos num percentual, para cima ou para baixo, gerando
os chamados “pontos de função ajustados”, que representam o tamanho final do
software. Esse percentual é de até:
a) 5%
b) 10%
c) 20%
d) 35%
e) 50%
Considere as assertivas sobre a técnica de pontos
de função para a estimativa de custo de desenvolvimento de um software:
I. A medida de pontos de função é independente da
linguagem de implementação do software.
II. Os pontos de função são mais apropriados para
medir os sistemas de processamento de dados dominados por operações de entrada
e saída.
III. Existem grandes variações na contagem de
pontos de função, dependendo do julgamento de quem fez a estimativa.
As assertivas corretas são:
a) Somente II e III
b) Somente I e III
c) Somente I e II
d) Todas estão corretas
e) Somente I