Tutorial mini projeto parte 2 – Estimativa utilizando APF – Análise de pontos por função
Written by Washington Souza // December 10, 2009 // Dicas, Geral, Gestão // 19 Comments
Apenas relembrando, no final geramos a seguinte tela:

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)
* 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.
Agora, 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:

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.

[Idéia baseada em uma apresentação de Carlos Cadu - Fatto Consultoria em APF]




19 Comments on "Tutorial mini projeto parte 2 – Estimativa utilizando APF – Análise de pontos por função"
Devia ter navegado por aqui antes da prova da Petrobras para analista de negócios!!
Forte Abraço!
com ele ficaria por volta de 5000 (caro ainda).
“Porque facilitar se pode complicar”
Ficou muito bom, continue assim.
Analista de Métricas
É um assunto muito legal, eu recomendo o estudo
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
.
É 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.
Excelente artigo!
Quanto ao valor final do projeto, acho que isto varia muito. Não está caro, nem está barato. Está estimado! Washington colocou a estimativa de horas por PF, mas não quer dizer que todo programador fará naquelas horas, ou que cobrará aquele valor. Eu cobraria mais caro o valor hora e entregaria em bem menos tempo devido a experiencia e bibliotecas já prontas. Então.. não está caro, nem barato. Está estimado.
Washington, Sabemos que APF é bem mais complexo que isto, porém, este artigo é perfeito para quem deseja entender o que é esta “coisa”, e pode ser um excelente ponto de partida.
Parabéns!
Trackbacks for this post