< Histórias de sucesso

Conheça 5 práticas de gestão de fluxo para elevar a performance dos seus times

  • Agile

Em um dos nossos trabalhos mais recentes, atendemos o chamado de um dos nossos clientes de longa data nos Estados Unidos, para apoiar um dos times responsáveis por construir e manter uma Enterprise PaaS criada especificamente para suportar seu principal produto de experiência digital. 

Desafio

Nossa missão era ajudar na construção de um método de gestão de fluxo que fosse simples, fácil de replicar, e por consequência, executado pelo próprio time, ao invés de ser suportado pelo escritório de projetos ou qualquer agente externo.

Antes de detalhar as práticas que construímos, vamos falar um pouco sobre os resultados alcançados em pouco mais de 6 meses de trabalho.

Resultados

Para se ter uma base de comparação, nessa etapa do trabalho de transformação ágil os times envolvidos tinham um ciclo de entrega de aproximadamente 4 a 5 semanas, e após implantação das práticas de gestão de fluxo esses foram os resultados alcançados:

Quando comparamos a performance dos times que adotaram as práticas com os demais, a diferença é bastante relevante.

Os números não mentem, logo, podemos afirmar que tais práticas selecionadas trouxeram resultados consistentes e repetíveis, melhorando consideravelmente a eficiência do time. Além disso, percebemos que a previsibilidade do time aumentou bastante, pois foi possível reduzir a ocorrência de outliers, facilitando um pouco responder a velha e tradicional pergunta que todos os times de engenharia de software recebem todos os dias: quando vai ficar pronto?

E o que o cliente tem a dizer dos resultados alcançados?

“Eu tive a oportunidade de ver como as práticas e recomendações feitas pela Objective beneficiaram nosso time e facilitaram o progresso. Desde que começamos a trabalhar com eles experimentamos melhorias na performance de uma forma geral, motivação e satisfação do time.” (Gerente de Projetos Sênior, baseado no Canadá).

Solução

E finalmente, quais práticas contribuíram para alcançar os resultados acima? Abaixo descrevo algumas delas.

1. Promover o entendimento do tempo de entrega do produto

A primeira etapa foi permitir que todos os times conseguissem entender seu fluxo de ponta a ponta e pudessem compartilhar com clareza qual seu Service Level Expectation (SLE). A partir do momento em que conheço meu SLE, tenho uma ideia de quanto tempo em média vou demorar para atender novas demandas que entram no meu fluxo. Adotamos o lead time como nosso principal indicador, e a partir desse momento, essa nova consciência por si só trouxe grandes benefícios, pois os times puderam fazer relações de causa e efeito muito mais facilmente, permitindo que decisões que afetassem o fluxo negativamente fossem menos frequentes.

2. Times diferentes, indicadores personalizados

Com todos os times acompanhando o lead time tínhamos um boa ferramenta para entender se nossas hipóteses estavam certas ou não, no que tange a média. No entanto, cada time estava em um nível diferente de maturidade e enfrentando desafios diferentes. Entendemos que aqui seria importante que cada time pudesse ser capaz de olhar para seu fluxo e procurar por oportunidades de melhoria, definir hipóteses de como melhorar, e criar um indicador que mostrasse se estava dando certo ou não. 

Essa fase foi muito interessante, pois exigiu um trabalho intenso de treinamento em parceria com as lideranças, e ao final, cada time tinha seus próprios indicadores que serviam como improvement drivers. Como exemplo, posso citar que um dos times ficou intrigado ao perceber que a maior parte do bugs de alfa demorava a ser retestado depois de corrigido, pois ficava um longo tempo na fila. Outros times perceberam que tinham um gargalo na revisão de PRs, enquanto outros viram oportunidade de melhorar seu processo de release. Cada oportunidade de melhoria tinha seu improvement driver, agora era só trabalhar e medir os resultados.

3. Prevenir que itens no seu fluxo envelheçam mais que seu SLE

Dado que todos os times conheciam seu lead time, uma prática interessante seria monitorar o aging dos itens em progresso de forma proativa para evitar que os mesmos envelheçam além do SLE. O resultado imediato dessa prática é que o lead time muito provavelmente iria estabilizar, ou até mesmo, começaria a reduzir com o tempo. Para executar esse trabalho, usamos o Actionable Agile, que possui um gráfico (dados de exemplo) muito interessante chamado Aging Work In-Progress que podemos ver mais abaixo:

Cada ponto azul no gráfico representa um item em progresso no seu fluxo de trabalho. A ideia é que o time seja proativo e tome providências toda vez que um deles cruza a linha dos 70%. As ações a serem tomadas precisam ser adaptadas ao contexto de cada time, mas compartilho algumas ideias do que poderia ser feito nesse caso:

  • Redução de escopo
  • Quebra dos itens em partes menores
  • Colocar o item em observação para remoção mais rápida de blockers

Seja criativo! A ideia é não deixar que os itens envelheçam mais que a média de tudo que você entrega. Note que esse framework pode ser aplicado a qualquer item do seu backlog em diferentes níveis. Para times que fazem uma quebra mais granular, utilizando épicos, histórias e subtarefas, cada tipo de trabalho pode e deve ter seu aging acompanhado de perto. A diferença será a frequência. Os épicos podem ser acompanhados em intervalos maiores, na ordem de meses. As histórias em intervalos de semanas, e as subtarefas em intervalos de dias.

4. Aprender com o passado. 

Se você chegou até aqui, significa que já tem um processo que evita que seu SLE continue a crescer, e talvez até o reduza com o tempo. O próximo passo seria aumentar as chances de uma redução drástica no lead time acontecer através da análise dos seus dados históricos. Se conseguir detectar todos os itens que são outliers no seu fluxo, muito provavelmente perceberá que eles compartilham uma ou mais características em comum, as quais podem representar uma oportunidade de melhoria a ser implementada. Características comuns para procurar:

  • Domínio de conhecimento específico (módulo específico do produto?)
  • Solicitante (um time ou papel específico?)
  • Nível de detalhamento do item (item sem especificação, critérios de aceitação e etc?)
  • Tipo de item (é uma história, bug ou outro tipo?)
  • Classe de serviço (só acontece com os expedites ou com outras classes de serviço?)

Esse trabalho é sempre recompensado com bons insights e oportunidades de melhoria, então com certeza valerá a pena o investimento. Para apoiar a execução do mesmo, usamos o gráfico de dispersão (dados de exemplo) do Actionable Agile conforme demonstrado abaixo:

5. Repita o processo de forma consistente

Quem faz isso uma vez, faz duas. Quem faz duas pode fazer sempre. O segredo é a recorrência e o mindset de melhoria contínua. Assim como não sabemos quais features irão agradar mais nossos clientes, escolher quais melhorias terão maior impacto no nosso fluxo se torna um jogo de adivinhação se não estivermos amparados por boas métricas. Portanto, faça pequenas alterações incrementais, meça os resultados, mantenha o que funciona e descarte o que é apenas overhead. Repita esse processo de forma consistente e veja seu lead time reduzir drasticamente.

Espero que tenham gostado e caso queiram saber mais, os convido a agendar uma reunião comigo através desse link. Teremos grande prazer em te ajudar.

Um abraço!

Rafael Fernandes Gomes - Business Development na Objective.

Insights do nosso time

Obtenha insights do nosso time de especialistas sobre metodologias de desenvolvimento de software, linguagens, tecnologia e muito mais para apoiar o seu time na operação e estratégia de negócio.