estimativas: aproximação ou precisão? :: netponto, porto, 2016
TRANSCRIPT
Estimativas:Aproximação ou Precisão?
Julho 2016
Pedro Gustavo Torres
Ágil desde 2010
Agile Coach & Delivery Area Manager
@_pedro_torres
Comunidades
20142014
2012 2013 2014 2015 2016
Definição de Estimativa (com AO)
Fonte: http://www.infopedia.pt/
Definição de Estimativa (sem AO)
Fonte: http://www.infopedia.pt/
Estimar não é
Uma certezaUm contrato
Uma data
Um compromisso
Uma data da data
Estimar é
Um palpiteUm bitaite
Uma opinião
Um feeling
Uma ideia
Estimativas != Certezas
Estimativas são úteis?Os gestores adoram-nas… os developers odeiam-nas!
Estamos formados para estimar? (ex: FEUP)
Como se pode estimar?• Horas• Dias• Pontos• T-shirt size• Throughput• …
Para que servem as estimativas?• Criar roadmaps?• Adjudicar projectos?• Para ter deadlines?• Para definir o sucesso de um projecto?
Exemplo: Casa da Música, Porto, Portugal
Exemplo: Casa da Ópera, Sydney, Austrália
Exemplo: Casa da Ópera, Sydney, Austrália
Sucesso de um projecto?
“Caros são aqueles jogadores que se compram e não jogam”
Terminar dentro do prazo previsto? (mesmo que não seja usado)
Ou…
Que apesar de atrasado é usado? (e que se paga por si só)
Estamos focados na coisa errada!• Estimativas não tem grande significado• Estimativas não trazem valor para o nosso cliente• Porquê tomar decisões baseadas em palpites?• E se tentássemos decidir com base no ROI ou no Lucro?• Quando foi a última vez que um projecto foi abortado porque pela
estimativa ia demorar muito tempo?• Tipicamente os projectos são para ontem• Ainda não começamos e já estamos atrasados!
Porque é que estimamos?A) Estamos aborrecidos
B) É divertido
C) Somos muitos bons a estimar
D) Queremos prever o futuro
Porque é que estimamos?
D) Queremos prever o futuro
Prever o futuro: Gantt Chart
Prever o futuro: Gantt Chart
Prever o futuro: Mais técnicas• Monte Carlo• Três pontos• COCOMO• KLOC• Wideband Delphi• …
Prever o futuro: Buffers
Prever o futuro: Student Syndrome
Prever o futuro: Student Syndrome
Prever o futuro: Parkinson’s law
Prever o futuro: Parkinson’s law
Prever o futuro: Informação irrelevante
Prever o futuro: Tamanho da especificação
Prever o futuro: Requisitos extra
Prever o futuro: Ancoragem
Prever o futuro: Ancoragem (Dilbert)
Porque é que estimamos?
D) Queremos prever o futuro
Porque é que estimamos?
E) Queremos prever o futuro… de forma útil!
Qual é o problema que procuramos resolver?Queremos prever o futuro… de forma útil!
Qual é o problema que procuramos resolver?Queremos prever o futuro… de forma útil!
Qual é o problema que procuramos resolver?Queremos prever o futuro… de forma útil!
Qual é o problema que procuramos resolver?Queremos prever o futuro… de forma útil!
“The future cannot be predicted, but futures can be invented.We cannot predict the future, but we can invent it.The way to cope with the future is to create it.The best way to predict the future is to invent it.The best way to predict the future is to create it.You cannot predict the future, but you can create it.”Peter Drucker; Abraham Lincoln; Dennis Gabor
Prever o futuro de forma útil: Aproximação vs Precisão• Estimar é caro.... se estamos a estimar não estamos a desenvolver!
• Quanto custa a precisão?
• E a aproximação? É melhor estar aproximadamente
certo do que precisamente
errado!
Prever o futuro de forma útil: Aproximação vs Precisão
Mike Cohn
Ex: Duração de uma viagem Porto -> Lisboa• Qual é a duração de uma viagem de carro Porto -> Lisboa?• E se receber o ordenado dependesse de acertarem?
(Estimativa por alto? Ficavam na última estação de serviço a fazer tempo?)• Um intervalo de tempo? Ajudava?• E se só tivessem de responder à pergunta (o tempo que demorariam)
a 10 kms de chegar? Ajudava?
Cone da incerteza
Gerir expectativas• Estimativas deverão ser sempre duração e não calendário (exemplo: 3
semanas e não "23 de julho") e em intervalo de tempo para demonstrar a incerteza que temos (exemplo: 2 a 3 semanas)
• Para promover: Transparência e honestidade
Pontos• Estimativa por comparação (melhor que estimativas absolutas)• Tipicamente usa-se a escala de Fibonacci (0, 1, 1, 2, 3, 5, 8, 13, 21, …)• Quando é que está pronto? No final da sprint…
Como estimar um Backlog do zeroDuas escolas de pensamento
(Pontuamos o resto através de comparação de esforço e risco)
Escolhemos um requisito que toda a equipa considera
básico… e atribuímos-lhe 1 ponto
Escolhemos um requisito ligeiramente complicado… e atribuímos-lhe 3 pontos
Pontos “traduzidos” em tempo
Planning Poker
Velocidade• Fórmulas de cálculo:
• Média de pontos entregues desde sempre• Média de pontos entregues das últimas 6 sprints• Média de pontos entregues das últimas 6 sprints descartando a melhor e a pior sprint• …
Ou…
• Yesterday’s weather... (Jeff Sutherland’s A Pattern Language For Hyperproductivity)• Baseada nos pontos entregues na última sprint
Re-estimar: Sim ou Não?
Re-estimar: Sim ou Não?• Antes de começar o trabalho: Sim
• Durante o trabalho: Não
• Depois do trabalho estar concluído: Não (mas há quem goste)
Estimar bugs?• Tipicamente: Não
• Excepção (discutível): Se a equipa apenas / maioritariamente resolver bugs
T-shirt size• Em vez de usarmos pontos usamos o tamanho da roupa
• Comparamos uns tamanhos com os outros
• É mais difícil de apurar a velocidade
• Mas é mais fácil / simples de estimar
Throughput• Em vez de tentarmos estimar cada item de trabalho / requisito…
• “Fatiamos” / Reduzimos os requisitos (sensivelmente) ao mesmo tamanho… e contamos o número de requisitos implementados por intervalo de tempo
Estimar: sim ou não?
Então o que resulta?• Herbalife… Não
• Tempo… Meh
• Pontos… Sim
Então o que resulta?• O truque é ter sempre tudo shippable (semana a semana,
mensalmente, de forma contínua, etc) e receber funding enquanto justificar
• Usem o fenómeno móveis IKEA (envolver o cliente construindo o produto com ele e com entregas regulares) para relativizar o tempo de Projecto. Com confiança tudo é mais fácil!
Então o que resulta?• Se precisam de saber a estimativa com rigor ao dia … para saber se
um projecto deve (ou não) avançar.... então provavelmente não devia avançar.
• Escolham projectos que sejam óbvios e não duvidosos!
Obrigado!
Estimativas:Aproximação ou Precisão?