O documento discute como métricas ágeis podem ser úteis no dia a dia de equipes de desenvolvimento de software. Ele apresenta vários tipos de métricas como lead time, throughput e burn up chart e explica como analisá-las para identificar problemas e melhorar o fluxo de trabalho. O documento também fornece referências adicionais sobre métricas ágeis.
3. Plataformatec 2017
@rapha_albino
Consultor na Plataformatec
Autor do livro “Métricas ágeis - Obtenha melhores
resultados em sua equipe”
Doutorando e Mestre em Administração de empresas
pela FEA-USP
Raphael Donaire Albino
4. Plataformatec 2017
● Métricas devem ser usadas para evoluir o processo e não para gerar cobranças e
comparações destrutivas.
● Números sem contextos são perigosos, portanto, ao analisá-los tenha em mente a
realidade que está envolta daquela unidade de medida.
● Procure tendências e fuja da precisão. Dada a complexidade que é criar um produto
de software não busque ser determinístico em um mundo que é receptivo por
natureza a uma realidade probabilística.
● Estamos medindo um sistema e não as pessoas.
Importante
Ressalvas sobre as métricas
5. Plataformatec 2017 | Confidencial
Importante
Visão sistêmica sobre o fluxo de trabalho
Sistema:
itens sendo trabalhados ou itens em
espera.
Chegada Saída
6. Plataformatec 2017 | Confidencial
Importante
Visão sistêmica sobre o fluxo de trabalho
Etapa 1 Etapa 2 Etapa 3 Etapa 4
Tempo
7. Plataformatec 2017 | Confidencial
A importância de observar os delays
Etapa 1 Etapa 2 Etapa 3 Etapa 4
Tempo
Vilões da produtividade
8. Plataformatec 2017 | Confidencial
Etapa 1 Etapa 2 Etapa 3 Etapa 4
Tempo
A capacidade da etapa de gargalo definirá a vazão do seu fluxo
Visibilidade dos gargalos
9. Plataformatec 2017 | Confidencial
Kanban e métricas = sucesso <3
● Visualize o fluxo de trabalho.
● Limite o trabalho em progresso (WIP).
● Meça e gerencie o fluxo.
● Torne as políticas explícitas.
● Desenvolva loops de feedback.
● Melhore de forma colaborativa.
10. Plataformatec 2017 | Confidencial
Estratégia para a promoção da excelência
10
Eficiência
(melhor forma)
Eficácia
(o certo)
Economia
(barato)
Excelência
11. Analisando métricas em equipes ágeis
Como métricas ágeis podem ser úteis
para o seu dia a dia?
13. Plataformatec 2017
Lead time
O que é e como analisar?
O que é: Quantidade de dias decorridos entre o início e o fim do trabalho de determinado item (do primeiro ao último estágio no processo
de trabalho).
Perguntas a se fazer:
● O lead time dos itens está ultrapassando o time box de uma iteração?
● Qual o plano de ação para controlarmos um aumento do lead time?
● Existe algum fator blocante nos itens que estão com o lead time alto?
● O lead time dos itens têm variado muito (ex. alguns lead times baixos e
outros altos)?
● Estamos conseguindo padronizar o tamanho dos itens (complexidade e
incerteza)?
● Estamos com gargalos no processo (teste, aceite)?
14. Plataformatec 2017
● Gargalos no processo.
● Indefinição dos itens.
● Itens sem padronização de complexidade e
incerteza.
● Problemas de ambiente impactando a entrega.
● Mudanças no time (ex: rotatividade).
Lead time
O que pode estar causando variações no lead time?
17. Plataformatec 2017
Lead time
Dada a tendência da média móvel, é
possível analisar três momentos do time
Itens com uma carga maior de
complexidade
Itens mais simples
Aumento na complexidade dos
itens
18. Plataformatec 2017
Lead time
Percentis: medidas que dividem a amostra
ordenada (por ordem crescente dos dados) em
100 partes, cada uma com uma percentagem de
dados aproximadamente igual.
Dias
Itens
19. Plataformatec 2017
Lead time
¾ ou 75% dos itens
desenvolvidos pelo time
levaram até 7 dias para
serem finalizados.
Quanto menor a diferença
entre as retas, menor a
variabilidade do processo.
20. Plataformatec 2016 | Confidencial
Lead time
Distribuição sem uma cauda longa
(os lead times do time
variaram de 1 ~ 11 dias)
Maior concentração de lead
times até 6 dias
(maior frequência)
Dias
Frequência
21. Plataformatec 2016 | Confidencial
Lead time
Dias
Frequência
Concentração de demandas com lead times
diferentes
22. Plataformatec 2017
Lead time breakdown
Tempo em cada etapa do
processo
Dias
Item
Em desenvolvimento Aguardando testes Em testes
24. Plataformatec 2017
Lead time breakdown
O que é e como analisar?
O que é: Avaliação do tempo em que os itens que estão em desenvolvimento passam em cada etapa do processo.
Perguntas a se fazer:
● Estamos analisando o tempo em que os itens têm passado por cada uma das etapas do processo?
● Estamos utilizando tais métricas em nosso dia a dia para coordenar nossas atividades?
25. Plataformatec 2017
Lead time breakdown
Problemas que podem ser vistos pelo lead time breakdown?
● Identificar a existência de gargalo em alguma etapa (muitos itens em uma mesma fase do processo).
● Avaliar se os itens que estão em WIP poderão ser entregues dentro de um timebox desejado (alinhamento de
expectativas entre time => PO => Business).
● Comparar, historicamente, o comportamento dos itens dentro do ciclo de vida de desenvolvimento.
● Criar insumos para cerimônias como daily e retrospectiva.
26. Plataformatec 2017
Lead time breakdown
Existe algo que possa ser feito
para ajudar nos testes?
Por que o item está
aguardando tanto tempo
para ser testado?
Em desenvolvimento Aguardando testes Em testes
29. Plataformatec 2017
CFD (Cumulative Flow Diagram)
Muitos itens acumulados
no backlog precisando ser
discutidos.
Sem muitas variações em
outras etapas (não há
formação de filas).
30. Plataformatec 2017
CFD (Cumulative Flow Diagram)
O que é: Visualização da quantidade de itens em cada etapa do fluxo de desenvolvimento.
Perguntas a se fazer:
● A curva de itens adicionados ao processo tem aumentado?
● A curva de itens finalizados tem crescido?
● Existe alguma etapa do processo que está acumulando itens (ex. teste)?
O que é e como analisar?
31. Plataformatec 2017
● Gargalos nas etapas do processo (exemplo: teste, code review).
● Backlog (itens adicionados) crescendo de forma desordenada.
● Extração de métricas como lead time e throughput médio.
CFD (Cumulative Flow Diagram)
Que tipo de informação podemos tirar deste gráfico?
32. Plataformatec 2017
CFD (Cumulative Flow Diagram)
Muitos itens acumulados
no backlog precisando ser
discutidos.
Sem muitas variações em
outras etapas (não há
formação de filas).
34. Plataformatec 2017
Throughput
O que é e como analisar?
O que é: Quantidade de itens entregues, dado o critério de definition of done, nas últimas semanas.
Perguntas a se fazer:
● Estamos conseguindo fazer entregas semanais ou quinzenais?
● Estamos aumentando nosso throughput?
● Quais são os itens que estão sendo entregues (US, tasks, bugs)?
35. Plataformatec 2017
● Problemas de ambiente que estão impossibilitando a entrega dos itens.
● Problema de revisão dos itens.
● Semanas sem entregas.
● Falta de cadência de entrega.
● Aumento no número de entregas quando o prazo final se aproxima.
Throughput
Problemas que podem ser vistos pelo Throughput?
38. Plataformatec 2017
Burn up chart
Total de itens no backlog
Total de itens
entregues
Projeções de entrega
Semana
39. Plataformatec 2017
Burn up chart
O que é e como analisar?
O que é: Compara o progresso de entregas e a quantidade de itens existentes no backlog.
Perguntas a se fazer:
● O backlog do projeto tem crescido de forma saudável?
● Quando o time finalizará o atual escopo do projeto?
40. Plataformatec 2017
● Semanas sem nenhuma entrega.
● Aumento repentino do backlog.
● Falta de cadência de entrega.
● Subestimação do prazo de entrega do backlog.
Burn up chart
Problemas que podem ser vistos pelo Burn up chart?
41. Plataformatec 2017
Burn up chart
Total de itens no backlog
Total de itens
entregues
Projeções de entrega
Semana
42. Plataformatec 2017
O que é:
● Uso de estatística descritiva para determinar as projeções dos cenários otimistas, mais provável e
pessimista de entrega de um escopo.
● Para a realização das projeções, são levadas em considerações informações como: o throughput
mínimo, o throughput máximo, a mediana (50% de chances das semanas repetiram o comportamento)
da amostra de throughput, a moda (o comportamento mais frequente) da amostra de throughput, o
percentil 75 da amostra de throughput (25% de chances das semanas repetiram o comportamento) e o
percentil 95 da amostra de throughput (5% de chances das semanas repetiram o comportamento).
Pergunta a se fazer:
● Dado nosso histórico de throughput, como seria a projeção de cenários para a entrega de um escopo?
Projeções baseadas em throughput
O que é e como analisar?
48. Plataformatec 2016 | Confidencial
O que é:
● Uso de amostragens aleatórias massivas para obter resultados numéricos, isto é, repetindo sucessivas simulações um elevado
número de vezes, para calcular probabilidades heuristicamente.
Perguntas a se fazer:
● Quais são as chances do throughput acumulado (número de itens entregues) ser maior ou igual ao backlog levantado?
Simulações de Monte Carlo
O que é e como analisar?
49. Plataformatec 2016 | Confidencial
● Os itens que foram entregues não possuem uma alta variação de complexidade.
● O que Monte Carlo faz é prever o que acontecerá no futuro caso o passado se repita de alguma forma.
Simulações de Monte Carlo
Característica da aplicação da técnica
50. Plataformatec 2016 | Confidencial
● Dado 1: throughputs do time.
● Dado 2: taxa de crescimento do backlog (BGR).
Simulações de Monte Carlo
Como funciona?
54. Plataformatec 2017
● Conteúdo Ptec
○ O aprendizado a partir de indicadores ágeis
○ Why we love metrics? Cumulative flow diagrams
○ Looking at Lead Time in a different way
○ Métricas Ágeis: Throughput e gráfico de Burnup
○ Métricas Ágeis: o que Lead Time fala sobre seu projeto
○ Power of the metrics: Don’t use average to forecast deadlines
○ Lead Time Experiment: Calculating Lead Time of the whole process
○ Case Study of a WIP Limit Implementation: Why, When and How to use WIP Limits
○ Forecasting software project’s completion date through Monte Carlo Simulation
○ 5 Estratégias para otimizar o fluxo de desenvolvimento de software
● Outras referências
○ Blog - Kudos - Leonardo Campos
○ Blog - Troy Magennis
○ Livro - Actionable Agile Metrics for Predictability
Referências