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 COCOMO
Análise de Pontos de Função
Análise por Pontos de Caso de Uso
Fonte: Wikipédia (última modificação: 2011)
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?
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 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é...
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
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 geral
Time 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õ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
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
Globalcode – Open4education
Estimativas melhores
Experiência da equipe
Dados coletados de projetos passados
Métricas
Histórias pequenas
Iterações menores
Escopo 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á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
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
Globalcode – Open4education
Obrigado!
@eschena
eschena@gmail.com
Perguntas?
http://analiseagil.wordpress.com
Emerson Schenatto

TDC 2015 Porto Alegre - Preciso estimar mesmo?

  • 1.
    Globalcode – Open4education Precisoestimar mesmo? Emerson Schenatto
  • 2.
    Globalcode – Open4education Estimativasde 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 Estimativasexistentes 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 Quala 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 Porque 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 Desenvolvedoresx 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
  • 8.
  • 9.
    Globalcode – Open4education Pressãopela 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
  • 10.
  • 11.
    Globalcode – Open4education Masentão... Não devo estimar mais? #NoEstimates
  • 12.
    Globalcode – Open4education Porque 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 Aimportâ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 Estimativasmelhores Experiência da equipe Dados coletados de projetos passados Métricas Histórias pequenas Iterações menores Escopo reduzido (MVP)
  • 15.
    Globalcode – Open4education Comolidar 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 Comodevo 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
  • 17.