Agile

12 set, 2017

Métricas ágeis: Throughput e gráfico de Burnup

Publicidade

Desde que comecei a trabalhar com projetos de desenvolvimento de software, tenho lidado com dois aspectos importantes, mas nem sempre convergentes: escopo e prazo. O processo de alinhamento das expectativas quanto ao progresso das entregas e a capacidade de produção das equipes é árduo, mas quando acontece, aumentam as chances de sucesso do projeto.

Neste artigo, vou apresentar como usamos os gráficos de Throughput e Burnup na Plataformatec, durante o ciclo de vida de um projeto.

Aprendendo a partir do Throughput

LeanKit define Throughput como o número médio de unidades processadas por unidade de tempo. No fluxo de desenvolvimento de uma equipe, os exemplos podem ser “cartões por dia”, “cartões por semana” ou “cartões por mês”.

Uma observação importante a respeito o Throughput é que a métrica difere do “Velocity” (quantidade de story points entregue por iteração ou sprint) utilizado no Scrum.

Na Plataformatec, consideramos Throughput como o número de itens (por exemplo, história do usuário) entregues por semana.

Geralmente, analisamos o Throughput para responder questões como:

  • Quantos itens de trabalho a equipe entrega por semana?
  • O time está criando uma tendência crescente de entrega?
  • Algum fator tem bloqueado a capacidade de entrega da equipe?

Vamos ver um exemplo prático. Imagine uma situação que você, como Gerente de Desenvolvimento, precisa ajudar o time a explorar o Throughput passado a fim de gerar melhorias futuras.

Primeiramente, podemos observar no gráfico acima que somente em 15% das semanas (4 de 27) a quantidade de itens entregues foi zero (0).

Além disso, é possível extrair mais informações do gráfico de tendência. Caso o Throughput esteja em crescente, a equipe está aumentando o número de itens entregues em uma semana. Se a tendência é de queda, pode colocar em risco o prazo de entrega de um projeto. Um limite inferior pode ser estipulado como forma de fornecer um indicador de quando ações corretivas podem ser necessárias. Nesta equipe, o Throughput aumenta nas primeiras semanas, seguida de uma ligeira queda e, finalmente, estabiliza-se.

Olhando para a distribuição de Throughput da equipe, temos uma situação em que a média (linha verde), a moda (linha laranja) e a mediana (linha laranja) possuem quase o mesmo valor (aproximadamente dois). Portanto, é razoável dizer que o time, em geral, entrega dois itens por semana.

Outra forma de validar o argumento sobre a capacidade de entrega da equipe é buscar o percentil 80 (linha cinza). Ele nos diz que apenas em 20% das semanas, a equipe conseguiu entregar mais de três itens por semana.

Uma boa prática que definimos para os projetos na Plataformatec é uma verificação semanal do Throughput, como um processo de compreensão das causas que afetam o ritmo de entrega. Geralmente, o Throughput de uma equipe cai pelos seguintes motivos:

  • Requisitos ruins — exemplo, baixa qualidade nos critérios de aceite de histórias de usuário;
  • Dívidas técnicas — exemplo, necessidade de refatorações inesperadas;
  • Gargalos do processo — exemplos, especialista de testes sobrecarregado, pipeline de implantação falho;
  • Backlog com baixo nível de itens prontos para desenvolvimento;
  • Mudança de escopo — por exemplo, aumento no escopo de uma história de usuário.

Olhando para o gráfico de Burnup

O gráfico de Burnup é uma ferramenta valiosa para gerenciamento do escopo. Ele apresenta a quantidade de trabalho entregue por uma equipe e, fornece mais informações do que o Burndown, pois combina escopo e total de entrega na mesma visualização.

É comum ver gráficos de Burnup com linha de tendência para estimar o prazo de entrega do escopo que está sendo analisado.

Tenho visto Product Owners e Agile Coaches projetando cenários baseados em três perspectivas:

  • Pior caso: projetar a performance futura da equipe com base no menor Throughputhistórico;
  • Melhor caso: considerar que a equipe atuará no futuro com base no maior Throughputhistórico;
  • Caso mais provável: considerar que a equipe terá no futuro um comportamento semelhante ao Throughput “médio” (recomendo a leitura do artigo que escrevi sobre o motivo pelo qual você deve ter cuidado ao usar a média como medida).

Em nosso contexto, o gráfico de Burnup está nos ajudando a responder perguntas como:

  • O escopo do projeto está crescendo de forma saudável?
  • Quando a equipe terminará o escopo atual do projeto?

O exemplo abaixo aconteceu com um cliente da Plataformatec e as circunstâncias eram as seguintes:

  • Duração do projeto: 23 semanas (quase seis meses).
  • Expectativa do cliente: ter uma solução para resolver um problema de processo interno (projeto do zero, sem código legado).
  • Roadmap do produto: após a sessão inicial de story mapping, a equipe e o cliente reduziram o escopo da entrega.
  • Desafio do projeto: assegurar que o software estivesse disponível para uso na data acordada.

Neste projeto, usamos o gráfico de Burnup como ferramenta para comunicar o progresso do projeto. O gráfico foi desenvolvido para exibir:

  • O número de itens de trabalho planejado para a entrega (escopo);
  • O número de itens entregues;
  • Cenários para possíveis datas de entrega do projeto.

Os próximos três gráficos representam o projeto no início (primeiras seis semanas), no meio (doze semanas) e no fim (semana 23).

Analisando o início do projeto, tivemos um cenário de aumento do escopo e algumas entregas.

Em relação ao escopo, o aumento aconteceu devido ao refinamento de um conjunto de histórias de usuário criadas após o story mapping.

Um indicador útil para analisar o crescimento do backlog é calcular a taxa de aumento semanal de novas histórias de usuários (no exemplo, sete histórias de usuário foram criadas por semana no início do projeto). Aqui na Plataformac, usamos esse indicador como ferramenta para manter o aumento do escopo previsível.

No meio do projeto, houve crescimento contínuo do escopo (seis novas histórias de usuário criadas por semana). Neste momento, tivemos que sentar com o cliente para alinharmos formas de simplificar o escopo, porque, caso o mesmo continuasse a crescer, dificilmente entregaríamos uma versão do software no final do contrato. O gráfico de Burnup foi útil para definir estratégias para melhorar o Throughput com base nos resultados das entregas realizadas.

A técnica de projeção utilizada foi importante para chegar ao final do projeto entregando todas as funcionalidades necessárias para o software.

Na conclusão do projeto, realizamos uma sessão de lições aprendidas e a equipe destacou que o gráfico de Burnup foi útil, pois:

  • trouxemos visibilidade ao processo do desenvolvimento garantindo que o cliente estava alinhado com o progresso e o prazo de entrega;
  • mostramos visualmente como o aumento do escopo influencia o prazo de entrega, sendo assim, uma boa ferramenta de negociação.

Conclusão

Monitorar o Throughput significa melhorias do processo com base em dados, que expõe o que está sendo feito com transparência à todos envolvidos no projeto.

O gráfico de Burnup é uma ferramenta poderosa de comunicação que pode ser usada para negociar com stakeholders, visto que, revela como mudanças de escopo afetam o prazo de entrega desejado, ao mesmo tempo que informa o progresso real.

Se você busca material avançado em métricas, recomendo o livro Métricas Ágeis – Obtenha melhores resultados em sua equipe. –Tudo bem, é um jabá! Eu sou o autor do livro, mas acredite, minha recomendação é genuína.

***

Este artigo foi publicado originalmente em: http://blog.plataformatec.com.br/2017/08/metricas-ageis-throughput-e-graficos-burnup/