Estimando o prazo de um projeto

Olá a todos!

Estou migrando minha carreira para JAVA, mas tenho experiência em PHP e Gestão de Projetos.

Vou iniciar na empresa um projeto em JAVA porém como sou iniciante em JAVA não quero correr o risco de fazer uma estimativa errada.

Gostaria da ajuda de vocês para estimar o prazo para um projeto. (2 programadores JAVA com experiência de 3 anos trabalhando a 160hrs mês).

Trata-se de um sistema de gestão comum onde utilizaremos as seguintes tecnologias: Banco MySQL, J2EE, NetBeans 5.5.1.

Escopo

Sistema de gestão:

  • Permitir cadastro de Funcionário, Alteração, Exclusão, Listagem Geral e Listagem Individual
  • Permitir cadastro de Produtos, Alteração, Exclusão, Listagem Geral e Listagem Individual
  • Permitir cadastro de Fornecedores, Alteração, Exclusão, Listagem Geral e Listagem Individual
  • Permitir cadastro de Clientes, Alteração, Exclusão, Listagem Geral e Listagem Individual
  • Permitir cadastro de Vendas, Alteração, Exclusão, Listagem Geral e Listagem Individual
  • Permitir gerenciamento de perfis onde se escolherá o que o usuário (Funcionário) pode ver, alterar, incluir ou excluir. (detalhado desta maneira: ver Cliente, incluir Cliente, alterar Cliente Não excluir Cliente, ver produto, alterar produto, não excluir produto, não incluir produto, não ver funcionários, não alterar funcionários, não incluir funcionários não excluir funcionários)

Sei que existem mais detalhes pra se estimar um projeto, mas não quero alugar ninguém, a idéia é mais ter uma ajuda pra comprarar com o prazo que estou levantando.

As informações seriam aquelas mais usuáis dos clientes, funcionários, usuários e vendas seriam as mais usuáis e as de produto seriam apenas (id, fabricante, valor compra, valor venda, qtdestoque).

Bem, quando tiver algumas respostas vou colocar aqui a esyimativa que fiz e como cheguei, não faço agora para não influenciar as respostas.

Qual o prazo que vocês estimam?
Quantos Pontos de Função?

Bom feriado!

Obrigado,
Fabio Costa.

Amigo, realmente é muito difícil fazer uma estimativa e acertá-la ou ter uma margem de erros pequena na primeira tentativa.

O que eu posso te sugerir é a utilização de UCP (Use Case Points) ou Planning Poker para estimar os prazos. Eu acho que o Planning Poker seria uma boa opção, dada a experiência dos desenvolvedores. Já no método UCP provavelmente o erro será maior. Acho que vale a pena dar uma pesquisada.

Um outro grupo, muito bom para discutir sobre esse assunto, é o UML-BR. Há vários tópicos, sobre estimativas, existentes nesse grupo.

Espero ter ajudado!

IMHO quem deve fazer as estimativas são os seus desenvolvedores, em uma reunião onde o cliente explica as funcionalidades e os desenvolvedores são responsáveis pelas estimativas.

Para esta estimativa talvez seja tarde, mas antes da próxima eu sugiro Agile Estimating and Planning (http://tinyurl.com/ysq3s3)

E para um sistema como esse aí, eu colocaria 1 desenvolvedor rails e 1 designer :slight_smile:

Eu faria assim.

Da uma lida sobre Scrum. Talvez te ajude …

Fábio, vou tentar lhe passar de forma rápida o que eu faria!

Primeiro priorizaria com meu cliente os requisitos, por exemplo:

[list]Cadastro de Funcionário - baixa[/list]
[list]cadastro de Produtos - média[/list]
[list]cadastro de Fornecedores - média[/list]
[list]cadastro de Clientes - média[/list]
[list]cadastro de Vendas - alta[/list]
[list]Gerenciamento de perfis - média[/list]

Depois faria uma reunião com a equipe (e chamaria o cliente também) para que eles (a equipe) fizessem as estimativas. A participação do cliente nesta reunião é importante para esclarecer possíveis dúvidas sobre a “profundidade” de cada requisito. Veja o exemplo:

[list]Cadastro de Funcionário - 2 pontos[/list]
[list]cadastro de Produtos - 2 pontos [/list]
[list]cadastro de Fornecedores - 2 pontos[/list]
[list]cadastro de Clientes - 2 pontos[/list]
[list]cadastro de Vendas - 8 pontos[/list]
[list]Gerenciamento de perfis - 5 pontos[/list]

Total de 21 pontos.

Depois que os itens fossem estimados, definiria com a equipe o tempo de cada ciclo de desenvolvimento (time box), por exemplo de 15 dias.

A partir disto verificaria com eles o que de acordo com a priorização do cliente eles conseguiriam entregar no primeiro ciclo. Por exemplo: somente o cadastro de vendas.

Com isto estabeleceria minha capacidade de produção dentro de um time box como 8 pontos e a a partir disto definiria a quantidade de ciclos 13 pontos divido por 8 resultando 2 ciclos.

Portanto a estimativa seria que o projeto seria entregue em 45 dias (3 ciclos).

Após cada ciclo, é importante verificar com o cliente se o objetivo foi cumprido e realizar a atualização das estimativas se necessário.

Acho importante que você leia sobre Scrum e métodos ágeis, isto vai lhe dar um bom embasamento.

[]´s e boa sorte.

Não esqueça os requisitos não-funcionais.

O sistema tem prazos e custos diferentes se for acessado por trinta pessoas e se for acessado por 300.

Se o tempo de resposta exigido pelo cliente for de 5 segundos ou de 1 segundo.