Throughput ou vazão em desenvolvimento de software é uma métrica que mensura a quantidade de work items completados por um time em uma janela de tempo, geralmente semanal ou quinzenal. O Throughput é útil para acompanhar o progresso, avaliar produtividade e identificar disfunções no processo de desenvolvimento. Além disso, é uma ferramenta de previsibilidade importante para construir um planejamento de entregas e estimar prazos.
Contexto
No contexto de desenvolvimento de software, avaliar a produtividade das equipes, monitorar o avanço dos projetos e estimar prazos/custos com precisão representam desafios significativos. A métrica de throughput, apesar de incorporar certa subjetividade, oferece uma referência confiável desses parâmetros, pautada na correlação entre a quantidade user stories entregues e o valor gerado pela equipe. Esta associação oferece um meio eficaz para medir a produtividade, fundamentado na premissa de que cada item do backlog possui valor próprio. Assim, a conclusão e entrega de cada user story não apenas contribuem com um avanço tangível para o produto, mas também ampliam o valor agregado ao negócio. Em suma, a produtividade é avaliada pela habilidade da equipe em converter itens do backlog em soluções que agregam valor significativo, sublinhando a noção de que o volume de entregas reflete diretamente o valor proporcionado ao negócio.

Aplicabilidade e Exemplos práticos
A aplicabilidade da vazão, ou throughput, no contexto do desenvolvimento de software, é vasta e abrange diversas facetas. Ela oferece insights valiosos para equipes ágeis, líderes técnicos, gestores e stakeholders ao fornecer uma medida concreta da quantidade de trabalho entregue em um determinado período de tempo. Aqui estão alguns dos principais usos e benefícios da aplicação da vazão:
Planejamento e Estimativa
A vazão ajuda no planejamento e nas estimativas ao fornecer dados históricos sobre o desempenho passado da equipe, permitindo previsões mais precisas sobre quanto trabalho pode ser realizado em futuros ciclos de desenvolvimento. Isso é particularmente útil em desenvolvimento de software, onde a capacidade de adaptação e a precisão nas estimativas são críticas para um bom planejamento.
Utilizando os dados históricos de vazão, é viável conduzir uma análise estatística, fundamentada em probabilidades, para estimar prazos e determinar o grau de confiança dessas previsões, baseando-se no histórico de entregas da equipe. Essa abordagem permite uma avaliação quantitativa da capacidade prevista de entrega, com o respaldo dos resultados anteriores do time.
O método inicial e mais direto para realizar tal projeção envolve calcular a média de vazão observada em ciclos anteriores, empregando-a como benchmark para o planejamento do próximo ciclo. Essa média serve como uma estimativa central da capacidade de entrega, oferecendo uma linha base para expectativas futuras.
É sabido que a média pode ter mais ou menos valor de acordo com o nível de dispersão dos dados. Para refinar e elevar o grau de confiança na estimativa, pode-se incorporar o desvio padrão, uma medida que contempla a variabilidade histórica dos dados de vazão. Esse acréscimo permite quantificar a dispersão das entregas em torno da média, proporcionando uma compreensão mais aprofundada da previsibilidade e estabilidade das entregas do time. Ao considerar tanto a média quanto o desvio padrão, cria-se um quadro mais robusto e confiável para o planejamento e estimativa, habilitando a equipe a gerenciar expectativas com maior precisão e a fundamentar suas decisões em uma análise estatística concreta.

A média das entregas das últimas 10 semanas do exemplo do gráfico é de aproximadamente 12,7 user stories, com um desvio padrão de aproximadamente 3,03. Com base nisso, podemos definir os seguintes intervalos para a previsão da quantidade de user stories que sua equipe entregará na próxima semana:
- Intervalo de (MÉDIA ± DESVIO PADRÃO): Entre aproximadamente 9,7 e 15,7 user stories. Este intervalo cobre aproximadamente 68% dos dados, assumindo uma distribuição normal e foi o que plotamos no gráfico.
Entre 9,7 e 15,7 é portanto a zona mais provável onde a vazão deve chegar na próxima semana com base nos dados históricos. É importante ressaltar que quanto maior for a variabilidade dos dados, ou seja, a inconsistência das entregas do time, mais imprevisível será a estimativa de prazos e incerto o planejamento. Isso ficará visível no gráfico com um intervalo de desvio padrão superior e inferior extremamente grande para fazer qualquer planejamento.
Monitoramento do Progresso e Prazo
A vazão fornece uma métrica clara para monitorar o progresso do projeto. Ao acompanhar quantos itens de trabalho são completados em cada ciclo, as equipes têm uma visão clara de seu avanço em direção aos objetivos do projeto, facilitando ajustes em tempo real para garantir a entrega dentro do prazo.

No gráfico acima de vazão acumulada, a área sombreada mostra o número total de user stories entregues por uma equipe a cada semana, acumulando-se ao longo do tempo. A linha pontilhada representa a tendência dessa vazão acumulada, baseada em uma regressão linear dos dados, que é uma previsão de como a entrega de user stories pode continuar se a equipe mantiver o mesmo ritmo.
O tamanho total do backlog é indicado pela linha horizontal tracejada, que neste caso mostra, como exemplo, um total de 200 user stories a serem entregues. A linha de regressão linear é extrapolada até cruzar essa linha horizontal do backlog, o que sugere o ponto no tempo em que o backlog completo será entregue se a tendência atual continuar. A previsão do gráfico indica que isso acontecerá entre as semanas 17 e 18.
A regressão linear nada mais é, de modo bastante simplificado, uma regra de três simples. Que pode ser calculada da seguinte forma:
- Com base na vazão Atual: Até agora foram entregues 127 itens em 10 semanas.
- Tamanho Total do Backlog: Determine o total de itens no backlog que precisam ser entregues, digamos 200 itens.
- Regra de Três: Se em 10 semanas foram entregues 127 itens, você quer saber em quantas semanas serão entregues todos os 200 itens. Use a regra de três para calcular isso:
- 127 itens = 10 semanas
- 200 itens = X semanas
- Projeção: Após realizar a multiplicação e divisão, você obterá o valor de X, que é a estimativa de quantas semanas são necessárias para completar o backlog inteiro com base na vazão atual.
Portanto, para conclusão de todo backlog, serão necessários em torno de 6 semanas a mais.
Identificação de Gargalos
Outra aplicação importante da métrica de vazão está relacionada a identificação gargalos e problemas de entrega em geral nos times de desenvolvimento. Ao analisar as variações na vazão, as equipes podem detectar disfunções que retardam o processo, possibilitando intervenções direcionadas para melhorar a eficiência geral. Veja, por exemplo, o gráfico abaixo:

O gráfico serve como um instrumento visual eficaz para identificar potenciais problemas de produtividade. As barras representam a quantidade de user stories completadas por semana e, observando as semanas em sequência, é possível perceber padrões ou mudanças na produtividade do time.
Neste exemplo acima podemos verificar que nas primeiras oito semanas, a equipe apresenta uma certa consistência com alguma variação na vazão de user stories, o que é normal devido à natureza variável do trabalho de desenvolvimento de software. No entanto, há uma queda notável na produtividade nas semanas 9 e 10, como indicado pelo destaque em vermelho, que poderia sinalizar um problema.
Esse declínio acentuado na vazão pode ser um indicador de várias questões, como aumento dificuldades técnicas, recursos reduzidos, mudanças de escopo sem planejamento ou mudanças ineficientes no processo. Detectar essa tendência permite que gestores e equipes investiguem as causas subjacentes e implementem ações corretivas para retomar a produtividade. Assim, o gráfico não apenas ajuda a visualizar a produtividade ao longo do tempo, mas também atua como um alerta precoce para possíveis interrupções ou problemas no processo de desenvolvimento.
Melhoria Contínua
Usar a vazão como uma métrica chave promove a cultura de melhoria contínua. As equipes podem experimentar diferentes abordagens para aumentar a vazão e, por meio de uma avaliação constante, adotar as estratégias mais eficazes. Isso encoraja uma mentalidade de crescimento e a busca constante por excelência.
Por exemplo, caso a equipe note um declínio na vazão e determine que as revisões de código estão excessivamente demoradas, pode optar pela implementação de uma ferramenta automatizada de análise de código. Essa solução visa agilizar as revisões ao destacar potenciais problemas e inconsistências de forma proativa, liberando os desenvolvedores para se concentrarem em questões mais substanciais. A eficácia dessa mudança se refletirá claramente na vazão subsequente, que deve apresentar uma melhoria, evidenciando o impacto positivo da nova ferramenta no processo de desenvolvimento.

Comunicação com Stakeholders
Por ser uma métrica intuitiva e de fácil entendimento, a vazão facilita a comunicação do progresso do projeto para stakeholders não técnicos, permitindo que eles tenham uma visão clara do desempenho da equipe e do andamento do projeto.
Analogias e Metáforas
Imagine que o processo de desenvolvimento de software seja como uma rodovia. O throughput seria equivalente à quantidade de carros (projetos) que conseguem chegar ao seu destino final (produção) em um determinado período de tempo. Mesmo que cada carro (user story) possa se mover rapidamente em alguns trechos, congestionamentos e paradas obrigatórias (tempos em fila e atrasos) podem afetar significativamente a viagem como um todo.
Importância
Conhecer e otimizar o throughput é essencial para melhorar a previsibilidade e a eficiência das entregas em engenharia de software. Isso não só permite uma melhor gestão de expectativas com stakeholders, mas também contribui para a melhoria contínua dos processos, resultando em entregas mais rápidas e confiáveis.
Limitações e Críticas
A eficácia da vazão (throughput) como métrica de produtividade pode ser comprometida por fatores externos, tais como interdependências entre equipes, limitações de infraestrutura e as ferramentas utilizadas. Um esforço excessivo para elevar a vazão pode inadvertidamente desviar a atenção da qualidade e inovação, priorizando volume sobre valor.
Comportamentos que levam a fracionar demasiadamente as user stories, especialmente durante ou após o refinamento, podem levar a uma leitura imprecisa da vazão, afetando negativamente a acurácia das previsões e a percepção do progresso real, pois as quebras podem fazer com que as user stories se tornem tasks e não tenham valor para o negócio de maneira isolada. Tal prática, motivada pelo desejo de apresentar um aumento artificial nos números, pode mascarar a verdadeira progressão do projeto.
Para manter a validade da vazão como uma medida representativa do trabalho da equipe, é vital estabelecer um equilíbrio no tamanho das user stories. Recomenda-se que elas sejam calibradas para que nenhuma seja tão pequena que demande menos de um dia para ser concluída, nem tão grande que ultrapasse três dias. Isso não só facilita a previsão e o planejamento como também contribui para a continuidade e o desenvolvimento sustentável do projeto.
Comparação com conceitos similares
Previsões baseadas em estimativas de tempo de trabalho, como os métodos baseados story points, muitas vezes falham em capturar a realidade dos projetos, especialmente em ambientes de trabalho baseados em conhecimento, como o desenvolvimento de software. Isso ocorre por uma série de razões intrinsecamente ligadas aos conceitos de tempo de fila (queue time), tempo de trabalho (work time) e eficiência de fluxo.
O tempo de trabalho refere-se ao período efetivamente gasto trabalhando em uma tarefa — ou seja, o tempo durante o qual valor é adicionado ao projeto. Este é o foco das estimativas convencionais, que tentam prever quanto tempo uma tarefa específica levará para ser concluída. No entanto, essa abordagem ignora o tempo de fila, que é o tempo durante o qual uma tarefa aguarda para ser iniciada, revisada ou movida para a próxima etapa do processo. O tempo de fila pode ser causado por diversos fatores, como dependências entre tarefas, atrasos na aprovação ou espera por recursos disponíveis. O grande problema é que fluxos de desenvolvimento de software por definição possuem um tempo de fila alto.
A relação do tempo de trabalho ao tempo total (trabalho mais fila) de uma tarefa nós chamamos de eficiência de fluxo. Em muitos processos de trabalho, especialmente aqueles que são complexos e interdependentes, a eficiência de fluxo é surpreendentemente baixa, geralmente abaixo de 20%. Isso significa que a maior parte do tempo total de um projeto não é dedicada ao trabalho direto, mas ao tempo de espera.

Por que as Estimativas Falham
As estimativas falham em fornecer previsões precisas principalmente porque se concentram apenas no tempo de trabalho, negligenciando o tempo de fila. Mesmo uma estimativa “perfeita” do tempo de trabalho pode resultar em previsões imprecisas se o tempo de fila não for considerado. Em ambientes de trabalho baseados em conhecimento, onde a colaboração e a interdependência são altas, o tempo de fila pode constituir a maior parte do tempo total de um projeto.
Além disso, fatores externos, mudanças de prioridade e a natureza dinâmica do trabalho baseado em conhecimento podem aumentar significativamente o tempo de fila, exacerbando a discrepância entre as estimativas de trabalho e o tempo total necessário para concluir um projeto.
Para melhorar a precisão das previsões, é crucial adotar uma abordagem mais holística que considere tanto o tempo de trabalho quanto o tempo de fila. Nesse contexto, o indicador de vazão emerge como uma ferramenta consideravelmente mais eficaz para enfrentar os desafios da gestão de projetos. Ao focar na quantidade de trabalho efetivamente entregue em um determinado período, independentemente dos variados tempos de espera envolvidos, a vazão oferece uma visão mais fidedigna do ritmo real da equipe. Isso possibilita ajustes mais precisos e informados no planejamento e na alocação de recursos, conduzindo a uma gestão de projetos mais eficiente e a resultados mais previsíveis.
Perguntas frequentes (FAQs)
Por que o tamanho da user story é considerado irrelevante quando se foca em throughput?
Porque o throughput considera o tempo total desde a concepção até a entrega, e os atrasos costumam ocorrer em etapas que não estão diretamente relacionadas ao tamanho da tarefa, como tempos de espera e aprovações. Para ilustrar imagine que uma user story, prevista para ser concluída em 8 horas, na prática levou 16 horas para ser finalizada. À primeira vista, isso representaria um atraso de 100%. Contudo, na dinâmica real dos projetos, essa mesma tarefa pode ter passado 10 dias aguardando por uma janela de deploy antes de ser efetivamente lançada. Assim, ao considerar o atraso de um dia em relação ao ciclo total de 12 dias (considerando o tempo de espera e de trabalho), o atraso real se traduz em apenas 8,33%. Demonstrando que o tamanho da user story pouco afeta o tempo total de entrega. Isso acontece devido a baixa eficiência de fluxo de trabalhos de conhecimento.
Como o throughput pode ser aumentado?
Aumentar o throughput geralmente envolve identificar e mitigar gargalos no processo de desenvolvimento, diminuir dependência entre os times que travam o fluxo de entregas, melhorar a comunicação entre as equipes, otimizar as ferramentas e práticas de trabalho, etc.
Passos importantes para trabalhar o aumento da vazão incluem definir os parâmetros corretos de performance da vazão e estabelecer objetivos. Também é importante realizar diagnósticos dos tempos de cada etapa para identificar gargalos e ineficiências.
O throughput pode ser aplicado em qualquer metodologia de desenvolvimento?
Sim, embora seja particularmente relevante para abordagens ágeis, o conceito de throughput pode ser aplicado em qualquer metodologia de desenvolvimento para avaliar e melhorar a eficiência do processo de entrega.
Recursos adicionais
- Kanban: Successful Evolutionary Change for Your Technology Business por David J. Anderson aborda conceitos de gestão de fluxo e vazão.
- A Meta: Teoria das restrições aplicada à industria de Eliyahu M. Goldratt e Jeff Cox, que trás uma abordagem focada na Teoria das Restrições e mostrando como direcionar esforços onde realmente importa.
- The Principles of Product Development Flow do Donald G. Reinertsen que aborda conceitos de gestão de fluxo e teoria das filas fundamentais para otimizar vazão.