Globalcode – Open4education
Preciso estimar mesmo?Emerson Schenatto
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 COCOMOAnálise de Pontos de FunçãoAnálise por Pontos de Caso de Uso
Fonte: Wikipédia (última modificação: 2011)
Globalcode – Open4education
Estimativas existentes
Story pointsFunction pointsUse case pointsHoras de trabalhoLinhas de códigoClasses ou métodos alterados(Cocomo) Constructive Cost Model...E como você estima?
Globalcode – Open4education
Qual a estimativa mais usada?
Coeficiente Hipotético Universal Teoricamente Embasado
CHUTE
http://estimaai.com
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?
Globalcode – Open4education
Por que erramos as estimativas?
Complexidade no desenvolvimentoTecnologias envolvidasEspecificação incompleta
Nenhum projeto é igual a outroDiferentes habilidades e conhecimentos no timeRegras de negócio mutantesDesconhecidos não-conhecidos
Pensa em alguma coisa que você não sabe que não sabe? Mas aí complica muito né...
Globalcode – Open4education
Desenvolvedores x analistas
DesenvolvedoresGeralmente são otimistas
Estimam para baixo
Sofrem pressão para cumprir estimativasQualidade sacrificada
AnalistasGeralmente são pessimistas
Colocam margem de folga (gordura)
Geram planos de desenvolvimentoCronogramasGráficos de Gantt
Globalcode – Open4education
Resultado da estimativa
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 geralTime e cliente
Globalcode – Open4education
Expectativa x frustração
Globalcode – Open4education
Mas então...
Não devo estimar mais? #NoEstimates
Globalcode – Open4education
Por que estimar?
Ajuda na tomada de decisõesCusto da oportunidade
Esforço + tempo x ROI
Ajuda no planejamento da iteraçãoEntender se não está planejamento muito
Ajuda a conhecer o ritmo do timeGera discussões sobre a funcionalidadeGarante que as tarefas sejam pequenas
Globalcode – Open4education
A importância do ritmo
Conhecer a capacidade do timeMétricas
Buscar tendências e médias
Entender a vazão (throughtput) por iteraçãoQuantidade de tarefas executadas
Dividir para conquistarTarefas sempre pequenas
Produção puxadaConfiançaComprometimento
Globalcode – Open4education
Estimativas melhores
Experiência da equipeDados coletados de projetos passados
Métricas
Histórias pequenasIterações menoresEscopo reduzido (MVP)
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áveisBusque o feedback o mais rápido possível
Calcule corretamente a sua margem de folgaNão grande demais
Equipe defasada, obsoleta e/ou incompetente
Não pequena demaisAmadorismo e/ou inexperiência em projetos do mesmo porte
Globalcode – Open4education
Como devo encarar as estimativas?
Estimar não é nem ruim, nem bomSaiba aplicar as estimativas de acordo com seu contextoNão gaste mais tempo que o necessário estimando
Estimativa é uma especulação (previsão)Não queira acertar sempreCrie restriçõesDescubra o ritmo de seu time
A confiança no time e a entrega contínua são fatores decisivos para o sucesso
Globalcode – Open4education
Obrigado!
@eschena
Perguntas?
http://analiseagil.wordpress.com
Emerson Schenatto