Galera, novamente estou aqui de madrugada escrevendo o nosso caso de estudo, mas desta vez estou muito irritado pois esta é a segunda vez que eu escrevo este artigo, pois quando eu estava no final do artigo a energia acabou e eu perdi tudo.
Mas bora lá de novo, eu sou teimoso... :D
Definindo Escopo
No último post eu prometi explicar como identificar os "coelhos escondidos" no levantamento inicial de um projeto.
Abaixo, para o requisito "a" de nossa "lista de desejos", faço três perguntas que devemos fazer para cada um dos requisitos já identificados anteriormente, para que possamos fechar o escopo do projeto:
item a) Criação de um capeonato.
i) Pergunta 1: Um campeonato é composto de que?
ii) Pergunta 2: Algum item identificado na pergunta 1 NÃO está em nossa lista de desejos?
iii) Pergunta 3: Algum novo item engloba algum requisito já levantado anteriomente?
Aplicando as três perguntas explicadas acima, termos uma nova lista de desejos, conforme demonstrado abaixo:
a) Manutenção de campeonatos.
b) Manutenção de Regras (número de times, quantidade de grupos, criação de fases, critérios de classificação/elimininação, critérios de suspensão dos jogadores ou técnicos).
c) Sorteio automático dos times que serão a composição dos grupos.
d) Escalação de juízes e organizadores das partidas.
e) Relatórios de classificação dos times.
f) Relatórios para emissão da lista dos atletas automáticamente suspensos.
g) Publicação dos resultados das rodadas dos campeonatos de forma ágil.
h) Manuntenção de Times.
i) Manutenação de Estádios
j) Manutenação de Público e Renda.
Veja que a segunda lista está bem diferente da primeira, e com esta nova lista temos uma visão melhor do projeto. Outro detalhe importante de ser comentado é que embora adicionamos novos itens a nossa lista, em uma situção real, devemos definir com o nosso cliente quais os requisitos que são essenciais para o projeto. O recado é, o usuário que tem que saber o que é bom para ele e não nós analistas e desenvolvedores.
Definindo Esforço
Eu gosto de utilizar as métricas "Use case points" e "Functions points", para estimar esforço. No entando ambas as técnincas não são tá ágeis de aplicação e como normalmente temos que enviar propostas rapidamente, eu desenvolvi uma forma sistêmica de realizar orçamentos de esforço, embora neste caso eu conto com a minha experiência para a aplicação deste método, nunca tive problemas quando apliquei este métodos. Como as técnicas formais, comentadas anteriormente são fáceis de encontrar material, eu vou realizar a definição de esforço com base na minha técnica pessoal, conforme pode ser observado abaixo:
i) Classifique os requisitos em:
| pequenos: | até 80 horas. |
| médios: | entre 80 e 160 horas. |
| grandes: | entre 160 e 480 horas. |
| enormes: | maiores que 480 horas. |
ii) Classifique a complexidade de cada atividade em:
| fácil: | 1 |
| média: | 2 |
| complexa: | 3 |
| difícil: | 4 |
iii) Encontre o total de horas (aplicando o item "i" e multiplicando pela classificação do item "ii")
a) 80 horas (pequeno) x 1 (fácil) = 80 horas
b) 480 horas (grande) x 2 (média) = 960 horas
c) 80 horas (pequeno) x 3 (complexa) = 240 horas
d) 80 horas (pequeno) x 3 (complexa) = 240 horas
e) 80 horas (pequeno) x 1 (fácil) = 80 horas
f) 80 horas (pequeno) x 1 (fácil) = 80 horas
g) 80 horas (pequeno) x 1 (fácil) = 80 horas
h) 80 horas (pequeno) x 1 (fácil) = 80 horas
i) 80 horas (pequeno) x 1 (fácil) = 80 horas
j) 80 horas (pequeno) x 1 (fácil) = 80 horas
Total de horas: 2000 horas.
iv) Total de horas ajustadas
Aplique uma margem de erro ao total de horas encontrado, normalmente eu trabalho com 15% de margem de erro.
Total de horas ajustado: 2000 x 1.15 = 2300 horas.
Definindo Custo, Prazo e Tamanho de Equipe
Neste ponto do artigo, penso eu, que você já deva imaginar como definir o custo do projeto, pois isto é definido pelo esforço x o valor hora que você cobra para realizar um projeto. Por exemplo, se você cobra R$ 50,00/hora o valor do projeto seria R$ 115.000,00, já se o seu valor/hora é R$ 35,00, o projeto sairia por R$ 80.500,00.
Um detalhe que é muito importante salientar é que olhando os valores, a impressão que temos é muito dinheiro e temos uma boa margem de manobra e muitas vezes para não perdermos o projeto baixamos o valor hora do projeto para não ficarmos sem o "trabalho", mas pense comigo:
Leve em conta, que você desenvolverá o projeto sozinho, que cada mês tem 23 dias úteis e que sua jornada de diária será 11 horas, logo o projeto demoraria 10 meses.
i) com o valor de R$ 50,00/hora, por mês seria:
Rendimento bruto seria: 11 x 23 x 50,00 = 12.650,00
Gastos fixos seriam: 23 x 15,00 = 345,00 (refeição) + 150,00 (estacionamento) + 150,00 (combustível) + 18% de imposto (2277,00) = 2.922,00.
Rendimento Líquido: 9.728,00 (veja que são mais de 23% de despesas)
ii) com o valor de R$ 35,00/hora, por mês seria:
Rendimento bruto seria: 11 x 23 x 35,00 = 8.855,00
Gastos fixos seriam: 23 x 15,00 = 345,00 (refeição) + 150,00 (estacionamento) + 150,00 (combustível) + 18% de imposto (1593,90) = 2.238,90.
Rendimento Líquido: 6.616,10 (veja que são mais de 25% de despesas)
Os dois exemplos acima servem para ilustarar que embora o montante total aparente ser muito, na prática teremos gastos durante o projeto e que eles devem ser supridos pelo próprio projeto, não podemos "pagar para trabalhar", portanto analise este tipo de coisa quando for dar um orçamento de projeto.
Para definir o prazo e o tamanho da equipe, isto irá depender da necessidade que o seu cliente tem, por exemplo, se ele puder esperar 10 meses tudo bem, mas se ele quiser em 1 mês o projeto, você terá que montar uma estratégia para que o sistema atenda o prazo dele, mesmo que isso saia mais "caro" pra ele e isto tem que ficar claro para ele.
Nos projetos que eu desenvolvo normalmente gasto 25% em análise, 38% em implementação, 25% em testes e 12% em documentação (usuário).
Com estas informações, vamos ver qual seria a minha estatégia para gastar o meu orçamento (R$ 115.000,00) e entregar o projeto no prazo que o cliente deseja.
Fase Análise (575 horas), eu colocaria 5 pessoas para relizar esta atividade, logo a terminaria em 10,5 dias.
Fase Implementação (874 horas), eu colocaria 15 pessoas para realizar esta atividade, logo terminaria em 5,5 dias.
Fase Testes (575 horas), eu colocaria 10 pessoas para realizar esta atividade, logo terminaria em 5,5 dias.
Fase Documentação (276 horas), eu colocaria 3 pessoal para realizar esta atividade, logo terminaria em 8,5 dias.
Tempo total de projeto: 30 dias.
Observe que existem atividades que não temos como paralelisar muito, em especial as atividades de análise tem esta características, já em outros casos é perfeitamente possível a exemplo da fase de implementação. O principal recado é o prazo e o tamanho da equipe irá depender de quanto o seu cliente está disposta a esperar.
Por hoje é só pessoal, mas antes de me despedir, vou repassar as lições aprendidas hoje:
i) "Defina o escopo do projeto" - Reveja a lista de desejos e negocie os requisitos com o cliente.
ii) "Estime o esforço" - Utilize métodos convencionais ou desenvolva um próprio, o importante é ser ágil.
iii) "Defina o custo" - Não se embrigue pelo valor total, analise os seus custos fixos e veja se vale a pega pegar o projeto.
iv) "Prazo e Tamanho de Equipe" depende do quanto o seu cliente está disposto a esperar.
Espero que tenham gostado e aguardo as suas sugestões (wcristoni@uol.com.br).
Na próxima publicação explicarei como montar um cronograma em duas situações, com data livre e com data de chegada.
um abraço e até lá!
Wilson


Leia este blog no seu celular