Comecei um trabalho recente como Agile Coach para uma grande consultoria em um projeto para um grande cliente. Fui chamado para atuar com o projeto já em andamento para otimizar a aplicação de Agile — o primeiro trabalho foi ajudar a identificar um MVP que atendesse melhor o cliente, e em seguida trabalhar junto à equipe para calibrar o andamento dos sprints.

A equipe do projeto é formada por quinze pessoas divididas em três times que trabalham de forma bastante próxima e interdependente, inclusive compartilhando o mesmo Scrum Master, o mesmo Product Owner e as mesmas cerimônias de planejamento, revisão e retrospectiva.

O cliente usa o Jira para controlar o backlog das histórias e dos sprints, mas internamente a equipe faz o acompanhamento efetivo das tarefas em um quadro de kanban. A equipe não usa o Burndown Chart do próprio Jira, muito por conta da ferramenta não considerar sub-tarefas, o que cria um gráfico que não tem muita praticidade para a equipe. O kanban dá uma ótima visibilidade das tarefas em andamento e das pendências, mas a equipe sentia falta de informações de progresso de sprint que o burndown ajuda a visualizar. Decidimos então criar um burndown próprio, representado ao nível de sub-tarefas.

Fora do horário de trabalho, um dos hobbies da equipe, além dos happy-hours, é andar de kart. Uma corrida recente gerou histórias durante dias — quem ganhou, quem ficou para trás, quem saiu da pista e perdeu posições. Mais de uma pessoa contou sobre o momento em que saiu da pista e teve dificuldades para voltar, perdendo posições e comprometendo o resultado da corrida.

Foi nesse comentário sobre “sair da pista” que surgiu a ideia: e se criássemos o Burndown Chart justamente como uma corrida de kart?

O BURNDOWN KART

O Kart Azul está fazendo uma ótima corrida, adiantado em relação ao planejado. O Kart Vermelho saiu da pista, voltou, e está saindo novamente - equipe precisa reagir. O Kart Verde está fazendo uma corrida com muitos problemas e requer ação urgente da equipe

No exemplo acima o Kart Azul está fazendo uma ótima corrida, adiantado em relação ao planejado. O Kart Vermelho saiu da pista, voltou, e está saindo novamente — equipe precisa reagir. O Kart Verde está fazendo uma corrida com muitos problemas e requer ação urgente da equipe

Para criar um Burndown Kart tivemos que adaptar algumas ideias em relação ao burndown tradicional.

O primeiro ponto é que é legal treinar solo em um circuito próprio, mas é mais legal correr com mais carros na mesma corrida. No nosso caso, como temos três equipes bastante próximas em um mesmo projeto, temos o cenário ideal para projetar os três carros juntos. Mas ao mesmo tempo, cada equipe tem uma quantidade de pessoas, backlogs e story points diferentes umas das outras. Para termos os três carros no mesmo circuito, decidimos normalizar o eixo Y com porcentagens ao invés de horas ou story points. Dessa forma todos os carros começam juntos em 100% e correm juntos até chegarem em 0%, não importando quantas tarefas tem os seus backlogs ou quais as suas velocidades particulares. Vale adicionar que as três equipes começam e encerram os sprints nas mesmas datas — equipes que trabalham com datas diferentes já não caberiam na mesma corrida.

Representação da pista: linha tracejada representando o baseline planejado, e os limites da pista representando margens de desvio de 10%

O segundo ponto é em relação à própria pista. Em um gráfico de burndown tradicional nós temos um baseline de referência, e o mais comum durante o sprint é não seguir precisamente em cima da linha, mas flutuar acima ou abaixo do planejado. Já em um circuito de kart nós temos um espaço da pista por onde os carros andam, limitado pelas beiras da pista. Para o nosso gráfico nós não queríamos considerar a pista inteira como o baseline, porque os carros passariam a maior parte da corrida fora da pista, dando a impressão de fazerem uma corrida ruim. Nós queríamos que os carros corressem dentro da pista. Então decidimos considerar o meio da pista como o baseline (representado por uma faixa tracejada), e criar uma margem de desvio de 10% — ou seja, se uma equipe estiver até 10% atrasada ou até 10% adiantada, seu carro ainda estaria dentro da pista, o que representa que a corrida está indo bem. Mas se a equipe estiver mais de 10% atrasada ou adiantada, seu carro sairia da pista, exigindo ação imediata da equipe.


O terceiro ponto era que inicialmente estávamos com receio de criar um sentimento de competição entre os times, ou uma equipe “ganhar” da outra. Mas na prática, como o eixo X representa tempo e todos os carros estão sempre no mesmo dia, a impressão é de estarem sempre alinhados, somente com a diferença de estarem dentro ou fora da pista. Com isso a leitura acaba sendo mais de estarem correndo juntos do que em uma competição um contra o outro.

grafico-equipe


E o quarto ponto e mais importante: definimos que o único critério para os carros se manterem na pista são tarefas no status de Done. Não contamos horas trabalhadas, porcentagens de andamento, tarefas In Progress ou In Review — somente Done.

E aí foi só esquentar os motores e preparar o grid de largada.

E FOI DADA A LARGADA

Durante a corrida o objetivo da equipe é manter o kart sempre dentro da pista. Quando um carro ameaça derrapar e sair da pista, o time precisa tomar alguma medida, replanejando tarefas para que o carro volte à pista. Por exemplo, observar se existem muitas tarefas em paralelo segurando o andamento do sprint, ou se temos muitas pendências de aprovação com o Product Owner. Nesse ponto o quadro de kanban ajuda muito a interpretar o andamento da corrida e a tomar decisões para reposicionar os karts.

Time Verde tem muitas tarefas In Progress e In Review e poucas Done - kart fora da pista. Time Vermelho está entregando uma boa quantidade de tarefas, mas a quantidade In Review está crescendo - kart ameaçando derrapar para fora da pista. Time Azul limita seu WIP e já tem várias tarefas Done - kart dentro da pista

No exemplo acima o Time Verde tem muitas tarefas In Progress e In Review e poucas Done — kart fora da pista. Time Vermelho está entregando uma boa quantidade de tarefas, mas a quantidade In Review está crescendo — kart ameaçando derrapar para fora da pista. Time Azul limita seu WIP e já tem várias tarefas Done — kart dentro da pista

E o mais importante é que os conceitos de Agile e Lean são aplicadas nessa corrida — impedimentos afetam a corrida e requerem atenção; muitas tarefas In Progress e In Review fazem o carro derrapar e sair da pista; limitar WIP e criar fluxo contínuo são praticamente um motor em turbo mode.

Estamos no segundo sprint usando essa ideia, e tivemos uma reação bem legal das equipes — a leitura é direta e intuitiva para a equipe e para o cliente, os karts saindo da pista estão gerando boas discussões e replanejamentos, e os retornos à pista estão gerando incentivos e torcidas. A brincadeira criou uma forma legal de acompanhar o sprint, de uma forma muito mais efetiva do que um gráfico de burndown tradicional.

FERRAMENTAS

No nosso projeto criamos duas ferramentas de Burndown Kart: uma exposta em uma das paredes em que usamos fitas adesivas, e outra no Google Sheets para controlar as tarefas e calcular as posições dos carros. No quadro na parede usamos fitas adesivas para delimitar a pista e o baseline, e os carros usamos botões magnéticos que encontramos na papelaria, mas colados com fita dupla face. Quem quiser incrementar o quadro com bandeiras, faixas de largada e chegada, torcidas etc, é só desenhar.

Planilha no Google Sheets que gera os gráficos

O cálculo detalhado da corrida é feito em uma planilha compartilhada no Google Sheets que gera os gráficos automaticamente. Os cálculos incluem as porcentagens de acordo com a quantidade de tarefas e de dias do sprint, as margens (-10% e +10%) para desenhar a pista, e o andamento dos nossos três karts. E também criamos linhas de tendência baseadas no histórico de andamento de cada carro para ajudar a prever o final da corrida. Aqui tem um exemplo com um sprint de três semanas e três karts para quem quiser adaptar para o seu próprio projeto.

Se tiverem comentários e sugestões fiquem à vontade para comentar. Quem decidir usar essa ideia compartilhem aqui os resultados. E boas corridas!

Agradecimentos: Douglas Monteiro

No alt text provided for this image

× Como posso te ajudar?