2. Globalcode – Open4education
Estimativas de software
Estimativas de Software (do inglês Software Estimation) é a
disciplina da Engenharia de Software que trata da elaboração
de estimativas de esforço, prazos e custos no
desenvolvimento de software. Entre suas diversas técnicas
destacam-se:
Método COCOMO
Análise de Pontos de Função
Análise por Pontos de Caso de Uso
Fonte: Wikipédia (última modificação: 2011)
3. Globalcode – Open4education
Estimativas existentes
Story points
Function points
Use case points
Horas de trabalho
Linhas de código
Classes ou métodos alterados
(Cocomo) Constructive Cost Model
...
E como você estima?
4. Globalcode – Open4education
Qual a estimativa mais
usada?
Coeficiente Hipotético Universal Teoricamente Embasado
CHUTE
http://estimaai.com
5. Globalcode – Open4education
Você está certo disso?
Está acertando em suas estimativas?
Sim?
Quero aprender com você
Não?
Ufa... Não acontece só no meu time
Existe uma forma de criar uma estimativa 100%
exata?
Existe isso?
6. Globalcode – Open4education
Por que erramos as
estimativas?
Complexidade no desenvolvimento
Tecnologias envolvidas
Especificação incompleta
Nenhum projeto é igual a outro
Diferentes habilidades e conhecimentos no time
Regras de negócio mutantes
Desconhecidos não-conhecidos
Pensa em alguma coisa que você não sabe que não
sabe? Mas aí complica muito né...
7. Globalcode – Open4education
Desenvolvedores x
analistas
Desenvolvedores
Geralmente são otimistas
Estimam para baixo
Sofrem pressão para cumprir estimativas
Qualidade sacrificada
Analistas
Geralmente são pessimistas
Colocam margem de folga (gordura)
Geram planos de desenvolvimento
Cronogramas
Gráficos de Gantt
9. Globalcode – Open4education
Pressão pela entrega
dentro do prazo
Alto tempo gasto em controle e monitoramento
+ controle = - criatividade
Valorização maior na conclusão de tarefas do que
valor ao cliente
Diga como me medes, e te direi como me comportarei
Cliente aguardando a entrega das funcionalidades
no prazo acordado
Aumento de tempo x redução de escopo
Frustração geral
Time e cliente
12. Globalcode – Open4education
Por que estimar?
Ajuda na tomada de decisões
Custo da oportunidade
Esforço + tempo x ROI
Ajuda no planejamento da iteração
Entender se não está planejamento muito
Ajuda a conhecer o ritmo do time
Gera discussões sobre a funcionalidade
Garante que as tarefas sejam pequenas
13. Globalcode – Open4education
A importância do ritmo
Conhecer a capacidade do time
Métricas
Buscar tendências e médias
Entender a vazão (throughtput) por iteração
Quantidade de tarefas executadas
Dividir para conquistar
Tarefas sempre pequenas
Produção puxada
Confiança
Comprometimento
14. Globalcode – Open4education
Estimativas melhores
Experiência da equipe
Dados coletados de projetos passados
Métricas
Histórias pequenas
Iterações menores
Escopo reduzido (MVP)
15. Globalcode – Open4education
Como lidar melhor com as
estimativas?
Se algo passar de 20 dias de estimativa, a chance
de falhar é muito grande
Quebre em partes pequenas, mas entregáveis
Busque o feedback o mais rápido possível
Calcule corretamente a sua margem de folga
Não grande demais
Equipe defasada, obsoleta e/ou incompetente
Não pequena demais
Amadorismo e/ou inexperiência em projetos do mesmo porte
16. Globalcode – Open4education
Como devo encarar as
estimativas?
Estimar não é nem ruim, nem bom
Saiba aplicar as estimativas de acordo com seu contexto
Não gaste mais tempo que o necessário estimando
Estimativa é uma especulação (previsão)
Não queira acertar sempre
Crie restrições
Descubra o ritmo de seu time
A confiança no time e a entrega contínua são
fatores decisivos para o sucesso