Tutorial mini projeto parte 2 – Estimativa utilizando APF – Análise de pontos por função

Written by  //  December 10, 2009  //  Dicas, Geral, Gestão  //  19 Comments

tutorial-mini-projeto
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.

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

About the Author

Black Belt, Washington Souza tem mais de 10 anos de experiência com gestão. Participou de implantações em todos os níveis CMMI e MPS.Br A. Gosta muito de Six Sigma e gestão como um todo.

View all posts by

19 Comments on "Tutorial mini projeto parte 2 – Estimativa utilizando APF – Análise de pontos por função"

  1. Renato Borges April 1, 2010 at 3:49 pm · Reply
    Muito bom!
    Devia ter navegado por aqui antes da prova da Petrobras para analista de negócios!!
    :)
    Forte Abraço!
  2. Carlos Augusto April 22, 2010 at 8:28 am · Reply
    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.
    • Washington Souza April 23, 2010 at 9:27 pm · Reply
      Realmente ficou meio caro o sistema, e olha que ele fez esse preço porque era “amigo”. :D
      • gabriel May 13, 2011 at 4:35 pm · Reply
        Ficou caro também por não contar o fator de ajuste.

        com ele ficaria por volta de 5000 (caro ainda).

  3. Não Divulgado May 21, 2010 at 5:09 pm · Reply
    É por isso que a TI nao é valorizada…os proprios profissionais nao se valorizam. tem que cobrar barato pq qq iniciante aceita qq coisa.
  4. Viviane May 21, 2010 at 5:35 pm · Reply
    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.

  5. João Carlos June 17, 2010 at 11:21 am · Reply
    Muito bem explicado para se entender como funcionar..mas por favor não e tão fácil assim…
    Analista de Métricas
    • Washington Souza June 17, 2010 at 11:51 am · Reply
      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
  6. Aldo Rocha August 12, 2010 at 10:20 am · Reply
    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 :) .

  7. George August 18, 2010 at 11:20 pm · Reply
    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.

    • Washington Souza August 23, 2010 at 9:32 am · Reply
      Excelente abordagem George!
  8. Deric Ferreira September 23, 2010 at 8:38 am · Reply
    Excelente post. O comentário do George é bem oportuno pois, cálculos com APF, em si não levam em consideração a produtividade pessoal (potência) do recurso.
  9. carlos eduado December 12, 2010 at 4:06 pm · Reply
    Olá, qual fonte de inspiração para esse tutorial?
    • Washington Souza December 12, 2010 at 11:45 pm · Reply
      Olá Cadu, a inspiração foi uma apresentação sua no JGES 2009.
  10. Bruno January 11, 2011 at 9:22 am · Reply
    Olá,
    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!

  11. Antonio May 18, 2011 at 5:41 pm · Reply
    Pelo que sei sobre APF, não se diz Arquivo Lógico Externo, e sim, Arquivo de Interface Externa. Por favor me corrija, agradeço. Abraço.

Trackbacks for this post

  1. Tutorial mini projeto parte 3 – Mudanças de escopo e impacto | Blog CMMI & MPS.BR
  2. Elementos essenciais de um bom plano de projetos | Blog CMMI & MPS.BR
  3. Como avaliar se meus fornecedores seguem CMMI/MPS.Br? | Blog CMMI & MPS.BR

Leave a Comment

comm comm comm