Tutorial mini projeto parte 2 – Estimativa utilizando APF – Análise de pontos por função Por Washington Souza 10 December 2009 as 12:01 am 12 comentários

No post Tutorial mini projeto – o nascimento da idéia iniciamos um mini tutorial de um projeto.
Apenas relembrando, no final geramos a seguinte tela:

Tela do mini projeto

A tela foi aprovada e seu cliente (que é seu amigo) indaga:  ”Legal, é isso mesmo que eu quero. Quando você me entrega e quanto isso vai me custar?”

Você poderia responder essa pergunta de dois jeitos: Um, chutando, outro, fazendo uma estimativa de custo, prazo e esforço. Obviamente você opta pela segunda (certo?).

Bom… com a tela em mãos, vamos usar uma técnica de estimativa, existem várias, mas, vamos escolher APF – Análise de pontos por função.

Para efeito didático, vamos usar uma visão simplista do APF, mas é bom lembrar que a técnica é muito interessante e assertiva. Eu particularmente sempre recomendo o uso de APF.

Primeiramente existem 5 elementos* que podem ser contados em APF:

  • Entradas externas (EE)
  • Consultas externas (CE)
  • Saídas externas (SE)
  • Arquivos lógicos internos (ALI)
  • Arquivos lógicos externos (ALE)

sponsor* Vou deixar para vocês irem atrás do que é cada um

Existe uma tabela de pesos de cada elemento de APF por complexidade. Pra definir se algo é simples, médio ou complexo existem critérios, mas por ora, vamos definir que tudo é de complexidade média, assim facilitaremos nossa contagem.

sponsorAgora, vamos analisar a tela e ver o que teremos que fazer… bom… como é um cadastro de contatos, obviamente vou precisar de uma tabela para guardar os contatos (1 arquivo lógico interno). Também vou precisar mostrar os dados do contato em uma tela e isso me gera uma consulta externa. Meu amigo me pediu que os contatos fosse agrupados, então vou precisar de uma função para criar os grupos (1 entrada externa). Também vou precisar de uma função para criar o contato (+1 entrada externa), e não posso esquecer de uma função para alterar os dados(+1 entrada externa). E por último, vou precisar listar os contatos e grupos (+1 consulta externa).

Terminamos uma etapa, agora vamos colocar os pesos conforme a tabela acima (lembrando… é tudo médio), e após fazer as contas chegamos ao tamanho. Em outras palavras, o projetinho do seu amigo tem o tamanho de 30 PFs.

Para facilitar, vamos colocar identificar os elementos, tipos e valores na nossa tela:
Tela do projeto com os elementos identificados, valores e tipos

Bom… assim ficou bem mais fácil, mas… por enquanto você só tem o tamanho. Como calcular custo, esforço e prazo?

Primeiramente você deve conhecer sua produtividade nas linguagens que você domina. A produtividade nada mais é do que quantas horas você precisa para produzir um ponto por função.

Você domina as linguagens ASP, C# e Java e tem as seguintes produtividades:

  • ASP : 6h
  • C# : 7h
  • Java : 10h

Agora é só fazer as contas… Se você fizer o sistema em ASP vai precisar de 180h (30PFs x 6h). Se fizer ele em C# (.Net) vai precisar de 210h (30PFs x 7h). E se fizer em Java vai precisar de 300h (30PFs x 10h).

Você opta por desenvolver em .Net por já ter uma boa biblioteca de componentes para reutilizar. Então você passa para seu amigo 210h (esforço).

Você respondeu uma das  perguntas do seu amigo, agora vamos responder a de prazo. Se você fizer o sistema sozinho vai precisar de 27 dias (210h / 8h por dia). Já se você chamar um amigo pode entregar na metade do tempo (dois trabalhando).

E por ultimo o custo. Supondo que você vá cobrar do seu amigo R$ 40,00 por hora, então o sistema custará a ele R$ 8.400,00.

Resumindo, o projeto vai precisar de 210h, levando 27 dias a um custo de R$8.400,00.

Para completar, e facilitar mais um pouco, segue a tela com as contagens e identificações.
Tela estimativa APF com elementos (EE, CE, SE, ALI, ALE), pesos, produtividade e cálculo de APF.

Enviar comentário

12 comentários : “ Tutorial mini projeto parte 2 – Estimativa utilizando APF – Análise de pontos por função ”

  1. 1
    Tutorial mini projeto parte 3 – Mudanças de escopo e impacto | Blog CMMI & MPS.BR :
    [...] 2010 as 10:49 pm Nenhum comentário Continuado a série de mini tutoriais de projeto, no ultimo post realizamos o dimensionamento do projeto e chegamos ao custo de R$ 8.400,00 em 210 [...]
  2. 2
    Renato Borges :
    Muito bom!
    Devia ter navegado por aqui antes da prova da Petrobras para analista de negócios!!
    :)
    Forte Abraço!
  3. 3
    Carlos Augusto :
    Muito bom o post. Só que acho que não está muito adequado a realidade. Afinal R$8.400,00 por um sistema tão pequeno quanto este. Acho que o cliente não iria aceitar esse valor e talvez nem a metade dele.
  4. 4
    Washington Souza :
    Realmente ficou meio caro o sistema, e olha que ele fez esse preço porque era “amigo”. :D
  5. 5
    Não Divulgado :
    É por isso que a TI nao é valorizada…os proprios profissionais nao se valorizam. tem que cobrar barato pq qq iniciante aceita qq coisa.
  6. 6
    Viviane :
    Tive algumas aulas sobre APF dias atrás. Achamos um assunto muito complexo e difícil, cheguei até a pensar que nunca usaria isso na minha vida. Quase ninguém entendeu o que era. Se o professor tivesse usado um material como esse seu, todo mundo teria entendido.
    “Porque facilitar se pode complicar”

    Ficou muito bom, continue assim.

  7. 7
    João Carlos :
    Muito bem explicado para se entender como funcionar..mas por favor não e tão fácil assim…
    Analista de Métricas
  8. 8
    Washington Souza :
    Exatamente, APF é um mundo a parte, tem muita coisa a ser estudada. O objetivo do post é iniciar as pessoas em APF e desmistificar o assunto. Se eu fosse escrever tudo, provavelmente sairia um livro como o do nosso amigo Carlos Eduardo (Kadu).
    É um assunto muito legal, eu recomendo o estudo :D
  9. 9
    Elementos essenciais de um bom plano de projetos | Blog CMMI & MPS.BR :
    [...] que lhe ajudem a fazer o projeto. Como exemplo, o esforço foi estimado com base em uma técnica de dimensionamento como APF ou UCP (ou alguma outra), com este esforço você calculou prazo e consequentemente custo, logo, [...]
  10. 10
    Aldo Rocha :
    Eu penso que uma estimativa por APF é quando o cliente quer muito rápido a resposta de custo e prazo. Realmente o valor fica elevado quase sempre. Ao colega que achou caro, aqui na empresa a gente multiplica por R$150,00 e ainda está barato.

    Caso o cliente já esteja comprometido e alinhado com o seu processo de desenvolvimento a técnica de estimativa Wideband Delphi dá uma realidade bem próxima do que vc vai precisar no projeto, pelo menos aqui na empresa com os meus projetos :) .

  11. 11
    George :
    APF sempre será um assunto complexo devido o custo elevado, mesmo que trabalhe com o valor hora baixo. Fiz recentemente um projeto usando .Net C# Windows Forms voltado para gestão de receitas e despesas para pequenas empresas a pedido de um orgão. No meu caso eu tenho produtividade elevada e um processo ágil de desenvolvimento. Isso me possibilitou fazer todas as telas de cadastros em um único dia incluíndo Incusão, Exclusão, Alteração e consulta. Para este caso trabalhei com o valor hora igual a 70,00h. O sistema ficou pronto em uma semana incluíndo 1 gráfico e 4 relatórios. Se eu fosse aplicar APF para cobrar o projeto, certamente não seria aceito, mas é o que tem de mais preciso exceto para aqueles que conhecem bem sua produtividade e tenha o escopo do projeto bem definido e acordado com o cliente. Claro que para projetos grandes como ERPs, projetos que envolvam SOA, BPM e Worflow deverá sim usar APF no mínimo para estimar o esforço necessário e o prazo, mas se vai cobrar ou não o valor estimado pela APF, é outra coisa.

    É importante também lembrar que desenvolvimento de software é uma arte, possui intelectual envolvido e o custo que cada profissional ou empresa investiu no conhecimento. Tudo isso também conta na hora de cobrar.

    É isso ai. Aguardo pelo próximo artigo.

  12. 12
    Washington Souza :
    Excelente abordagem George!

Envie um comentário