A influência da variabilidade na eficiência de fluxo
Entendendo a variabilidade e seu impacto na eficiência de fluxo
“Quando você me explicou que a eficiência que precisamos olhar é a eficiência de fluxo, eu entendi. Agora, que nós precisamos entender a variabilidade, é algo que eu realmente não esperava! A última vez que ouvi sobre isso, foi na aula de estatística da faculdade há 20 anos.” Questiona o diretor de maneira surpresa e um tanto quanto cética.
A sua jornada para trabalhar a eficiência do time começou bem, o próximo passo vai ser entender e explicar como a variabilidade influencia no seu cenário. Este não será um desafio fácil, poderá ser um pouco contraintuitivo, mas levará a insights importantes.
Haverá sempre variação entre pessoas, capacidades, serviços e produtos. (W.Edwards Deming)
Este é o terceiro texto da série sobre eficiência aplicada ao contexto de desenvolvimento de software. Para extrair o máximo do conteúdo, recomendo ler o primeiro o texto A busca pela eficiência em times de tecnologia e o segundo, A métrica de eficiência de fluxo. No primeiro, foi discutida a diferença da eficiência de fluxo e de recurso, e a importância da eficiência de fluxo. No segundo texto, foi explorado de maneira mais prática, como estruturar o fluxo e como metrificar a eficiência de fluxo.
Principais tópicos
Como vimos no primeiro texto, a priorização da alta utilização de recursos leva ao crescimento do tempo de espera e, consequentemente, à baixa eficiência de fluxo. Além da utilização de recursos, há outra força, que apesar de muito relevante para a eficiência de fluxo, não costuma receber muitos holofotes, trata-se da variabilidade¹.
A variabilidade está presente em todo o sistema de trabalho, seja no processo, na unidade de fluxo ou nos recursos. Apesar de trazer exemplos aqui do mundo de desenvolvimento de software, todas as áreas do trabalho do conhecimento estão sempre expostas a vários fatores de variabilidade e seus desdobramentos.
Na linha de entender a variabilidade e o efeito dela no nosso sistema de trabalho, será abordar aqui:
- O que é variabilidade
- A relação da variabilidade com a eficiência de fluxo
- As diferenças no mundo de produtos digitais e da manufatura
- Oportunidade econômica na variabilidade
Variabilidade
Não existem processos sem variabilidade ou sistemas de trabalho isentos dos efeitos dela. A variabilidade é qualquer diferença entre o esperado e o resultado gerado pelo sistema de trabalho. É a ausência de uniformidade. A variabilidade se refere ao quanto uma unidade de fluxo varia ao passar pelo processo, esta oscilação pode acontecer no tempo, na qualidade ou na construção de algo diferente do projetado.
Os estudos sobre variabilidade na indústria começaram nos anos 1920 por Walter Shewhart e depois por W.Edwards Deming. Também se tornou uma das bases do Toyota Production System e do Six Sigma.
Existem incontáveis fontes de variabilidade que envolvem praticamente todos os elementos do sistema de trabalho. Estas fontes podem ser classificadas em dois tipos, segundo Shewhart, em internas e externas. Fontes de variabilidade internas estão sob controle do processo e da equipe, como por exemplo (no contexto de desenvolvimento de produtos digitais):
- no tempo de ciclo (tempo para um item atravessar o processo) — exemplo: uma equipe de desenvolvimento de software costuma construir uma funcionalidade em tempo de ciclo médio de 7 dias, porém, recentemente construíram uma funcionalidade em 65 dias, algo totalmente diferente no histórico desta equipe.
- natureza dos itens (user story, bugs, operacional)
- dimensão e complexidade dos itens
- na qualidade — exemplo: uma equipe passou semanas sem qualquer incidente em ambiente de produção, porém, na última semana foram acionados por 3 problemas sistêmicos graves que impactaram os usuários, não havia qualquer previsão de que isso aconteceria.
- retrabalho (devido a falta de qualidade)
- tempo de construção de um projeto
- handoffs (transferência de atividades)
- interrupções e reinícios
- chaveamento de foco
- etapas de filas que compõem o processo
- nível de conhecimento das pessoas
As fontes externas de variabilidade estão fora da zona de controle da equipe e do processo, alguns exemplos:
- projetos inesperados e urgentes
- escopo do projeto
- modo de especificação da demanda
- ambiguidade dos requisitos
- etapas com dependência externa
- concorrência de recursos e prioridades
- atraso da entrega do parceiro/fornecedor
- modo como o software é utilizado pelos usuários
- diferentes maneiras que uma solução pode ser projetada
- chegada (antecipada ou tardia) de uma funcionalidade ou projeto no processo
- quantidade de itens de trabalho que chegam
- condições macroeconômicas
- mudanças de rotas estratégicas da empresa
Na minha visão, algumas fontes aparecem tanto sob controle do time e processo, quanto fora, como:
- disponibilidade de pessoas para atuar (contratações, desligamentos, férias)
- perda de conhecimento organizacional
É muito difícil segregar estes elementos entre causadores de variabilidade e resultantes dela. Na verdade, alguns deles podem ser ao mesmo causador e resultante. Por exemplo, mudança na estratégia da empresa, em muitos casos é resultante de mudanças macroeconômicas e, por sua vez, é gatilho de muitas mudanças nas priorizações de projetos.
Outra questão relevante que precisamos considerar, é que a variação de um elemento combinada com a variação de outros ao mesmo tempo, gera efeito exponencial no sistema de trabalho. Vamos tomar de exemplo o caso da equipe que entregava uma nova funcionalidade em 7 dias aproximadamente. Em questão de poucas semanas, esta equipe teve alguns turnovers, passou por uma reorganização, teve que lidar com uma nova demanda urgente de segurança da informação e teve problemas com o ambiente de homologação. Todos estes fatores combinados levaram a algo muito diferente do comum, uma nova funcionalidade levou 65 dias para ficar pronta.
Um pouco de estatística
Analisar os tempos que os itens levaram para atravessar o processo através de um gráfico de dispersão de pontos (control chart) é uma das formas mais comuns de entender a variabilidade na prática. No gráfico abaixo, temos um exemplo de um conjunto de itens finalizados, nos quais os respectivos tempos de ciclo estão indicados no eixo esquerdo. Também foi expresso no gráfico, a média (~10) de tempo dos itens e os limites² acima e abaixo desta média.
Os itens que estão dentro dos limites (entre a linha vermelha e laranja) sofreram o que Deming chama em suas obras, de variação de causa comum. Estes itens estão dentro de uma faixa de desvio aceitável. Ou seja, é um tipo de variação natural em um processo estável. Já os itens acima da linha vermelha e abaixo da linha laranja, sofreram a chamada variação de causa especial. São eventos ou coisas totalmente inesperadas e incomuns às circunstâncias normais do sistema de trabalho.
Outra maneira de analisar os números de variabilidade, é através da frequência de tempos de ciclo ocorridos. Para ajudar nisso, vamos analisar uma amostra de entregas feitas por uma equipe do Luizalabs. Calcular o coeficiente de variação (%) desta amostra é o modo estatístico de se obter a variabilidade dos tempos de ciclo. O coeficiente de variação é uma medida percentual obtida da divisão do desvio padrão pela média. Quanto mais próximo de zero, maior a uniformidade dos tempos de ciclo.
Nesta amostra, temos um conjunto de 1027 itens que tem o coeficiente de variação de 81,4% (desvio padrão de 8,05 e média 9,89).
A curva desta amostra se assemelha com a distribuição normal. Em cenário de baixa variabilidade, teríamos algo parecido com a linha laranja, no gráfico abaixo. Ou seja, a distribuição de tempos de ciclo é reduzida a poucos valores. Em cenário de alta de variabilidade (linha amarela), a distribuição de tempo de ciclo é bem mais ampla.
Relação da variabilidade e a eficiência de fluxo
Conseguir boas medições do efeito da variabilidade pode ser algo difícil na prática. Se isso não for possível, o mais importante, que vamos discutir à frente, é entender os efeitos gerados a partir da variabilidade.
Há uma relação intrínseca entre variabilidade e eficiência de fluxo, tanto que há muito tempo o movimento Lean propõe eliminar as fontes de variabilidade como meio para alcançar a eficiência de fluxo.
Para ajudar no entendimento desta relação, vamos olhar para a fórmula de Kingman. O objetivo não é usar a fórmula para aplicações práticas. Mesmo assim, entendê-la é algo valioso, pois a fórmula explica a relação matemática entre variabilidade com o tempo de espera e a taxa de utilização. Sem adentrar nos detalhes da matemática, a fórmula de Kingman (ou VUT) calcula a aproximação do tempo de espera (ou tempo em filas) a partir de:
- (V) Variabilidade no sistema — a fórmula considera a variabilidade (coeficiente de variação) do tempo de ciclo e da taxa de chegada do item ao processo.
- (U) Utilização do recurso — taxa (%) de utilização dos recursos.
- (T) Tempo de processamento — no nosso contexto, é o equivalente a tempo de ciclo.
A fórmula é representada por:
Ou
Como vimos no A métrica de eficiência de fluxo, junto com tempo de trabalho e bloqueio, o tempo de espera é uma das variáveis utilizadas no cálculo da eficiência de fluxo. Logo, se entendermos como a variabilidade impacta no tempo de espera, também saberemos como a variabilidade impacta na eficiência de fluxo.
A fórmula de Kingman indica dois comportamentos no sistema. O primeiro (como também vimos no A busca pela eficiência em times de times de tecnologia) é que quanto maior a utilização dos recursos presentes no processo, maior será o tempo de espera e, consequentemente, maior o tempo de ciclo.
O segundo comportamento é a relação do tempo de espera com a variabilidade. Quanto maior a variabilidade, maior será o tempo de espera e maior o tempo de ciclo.
Como indicado na fórmula, a utilização é multiplicada pela variabilidade. O aumento da variabilidade sozinho, mesmo que se mantenha a utilização do processo estável, já é suficiente para alavancar o tempo de espera. Da mesma forma, o aumento da utilização, mesmo que a variabilidade se mantenha estável, também alavanca o tempo de espera.
Quando há aumento simultâneo da variabilidade e da utilização, isso não terá efeito de aumento linear no tempo de espera, mas sim, em aumento exponencial.
Por tais efeitos na eficiência de fluxo, em muitas situações é interessante controlar os fatores causadores de variabilidade no sistema de trabalho.
As grandes diferenças no mundo de produtos digitais e da manufatura
Na manufatura onde temos produtos físicos e idênticos passando por uma linha de produção que não recebe mudanças frequentes de setup, é possível alcançar um alto grau de uniformidade. Mais do que isso, em muitas fábricas, quando um item entra na primeira etapa do processo, é provável que ele já tenha sido vendido, já tem demanda garantida. O nível de incerteza neste contexto tende a ser muito baixo. Nesse cenário, muitos métodos como o Lean Six Sigma, propõem a redução de variabilidade como alavanca essencial para a eficiência.
Já o mundo de desenvolvimento de produtos digitais convive com uma série de fatores de variabilidade e incerteza, alguns dos quais foram mencionados no início deste texto. É importante destacar que existem fatores-chave que o diferenciam da manufatura:
- Os itens de trabalho são únicos, não existem funcionalidades idênticas.
- O “recurso processador” é um ser humano, inevitavelmente sujeito a variações.
No entanto, há algo que vai além disso. Mesmo quando um projeto de software é construído e liberado para uso dos clientes/usuários, o nível de incerteza não é reduzido a zero. Não existe garantia completa que o produto alcançará o sucesso esperado. Por exemplo, após a implantação do software, os usuários podem não utiliza-lo do modo que foi projetado, ou os KPIs da empresa não foram tão movimentados como era planejado.
Um produto de software não é como um Corolla em seu estado final, é algo vivo e dinâmico, que passará por aprimoramentos ao longo do tempo. Por essa razão, nos últimos anos, surgiram métodos como o Lean Startup, que sugerem encararmos o que precisa ser construído como uma hipótese, um experimento e, se preciso, pivotar a estratégia.
Ao considerar um projeto de software como uma hipótese ou aposta, se está reconhecendo o fator da incerteza. Um meio de diminuir a alta incerteza é através de loops de feedback rápidos, ou seja, utilizar técnicas que nos proporcionem respostas sobre se estamos no caminho certo ou não, o quanto antes.
Oportunidade econômica na variabilidade
No desenvolvimento de produtos digitais, nem sempre a menor variabilidade será algo mais interessante. Na verdade, em alguns casos, maior variabilidade poderá resultar em maiores oportunidades econômicas. Esta linha de reflexão é explorada por Donald G. Reinertsen no seu livro The Principles of Product Development Flow:
In product development, we must carefully distinguish between variability that increases economic value and variability that decreases it. Rather than eliminating all variability, we must actively put it to work to create economic value. (Reinertsen, 2009, p. 86).
Isso implica em orientar as decisões de acordo com os potenciais retornos econômicos dos projetos. Neste mundo, os projetos apresentam retornos muito assimétricos quando comparados entre si. Uma escolha assertiva de focar no projeto X e não no Y, pode resultar em ganhos de milhões de reais a mais.
Para ajudar nesse entendimento, vamos imaginar que a empresa tenha 3 projetos sob análise para serem trabalhados em breve. Os retornos foram calculados para horizonte de 1 ano:
- O projeto A pode gerar economia nas despesas financeiras de R$16 milhões e há 90% de probabilidade que esta hipótese se concretize.
- O projeto B pode gerar economia de R$28 milhões nos custos da operação e tem probabilidade de 65%.
- O projeto C, através da revisão de experiência de compra, visa aumentar a conversão de vendas, que por sua vez poderá gerar um lucro de R$85 milhões. Este é um cenário de elevada incerteza, então, consideramos a probabilidade de sucesso em apenas 34%.
Vamos analisar por partes os fatores que compõem este cálculo.
Custos de hipótese
Os custos de hipótese referem-se a técnicas como POCs, testes A/B, entrevistas, entre outras utilizadas na fase de Discovery de produtos. O objetivo dessas técnicas é acelerar a obtenção de feedbacks sobre se a hipótese do projeto resultará em bom retorno ou não. Elas ajudam diminuir o índice de incerteza bruscamente (como ilustrado no cone da incerteza), possibilitando a calibragem da estratégia.
Estas abordagens têm custos relativamente baixos e evitam gastarmos muito. Mesmo quando alguns testes são invalidados e o esforço investido neles, é descartado, os custos destes testes são desproporcionalmente menores que o valor econômico gerado por uma hipótese assertiva. Além disso, obter feedback antecipado, por meio da validação de hipóteses, evita o desperdício mais significativo e caro de todos: colocar energia na estratégia errada.
Custo de projeto
O custo do projeto foi calculado a partir da estimativa de quantidade de itens de trabalho cruzando com o custo das equipes envolvidas no projeto. Como existem diferentes caminhos de como construir um projeto de software, que desdobram em dimensões e complexidades diferentes de escopo, esta variável poderá ser alterada durante o desenvolvimento.
Retorno
O retorno (payoff) esperado é resultado de um racional financeiro construído por product managers em conjunto com os stakeholders. É preciso destacar que tal perspectiva econômica na gestão de produtos digitais é um assunto muito mais profundo e interessante, que poderemos dar o justo detalhamento em outro texto.
Probabilidades
Além das medidas econômicas de custo e retorno, também foi considerada a probabilidade de existirem diferentes índices de incerteza se cada projeto realmente concretizará o ganho esperado. Com tais variáveis, se multiplicarmos o retorno (payoff) pela probabilidade e subtrair pelos custos de hipótese e projeto, teremos o retorno potencial de cada projeto.
Retornos
E, finalmente, com estes cálculos em mãos, podemos analisar o quão assimétricos são os retornos potenciais dos projetos no mundo de produtos digitais, tornando interessante analisar várias opções possíveis. Estes retornos tão discrepantes podem levar a decisão de investir, mesmo em projetos com maior variabilidade e incerteza.
Investimento inteligente (conteúdo extra)
Os custos de hipóteses estão relacionados majoritariamente com a atuação dos product managers e designers durante o Product Discovery. Estes profissionais representam uma parte menor dos custos da área de tecnologia. Por exemplo (dados reais), em duas equipes do Luizalabs, uma com 55 pessoas e outra com 52, têm, respectivamente, 16% e 17% dos custos de folha de pagamento direcionados para estes profissionais.
Eles não estão somente trabalhando nas avaliações de hipóteses, claro, há inúmeras outras ações como triar, refinar e fatiar as demandas. E isso tem papel chave na redução da variabilidade antes que os itens de trabalho cheguem com o efeito dela no time de desenvolvimento (delivery), onde o custo da variabilidade é maior. Vamos começar a falar mais destas oportunidades nos próximos textos.
Assim, o investimento destinado para estes profissionais é uma decisão inteligente na busca pelos melhores retornos econômicos e também para a diminuição da variabilidade.
Respondendo a mudança
Responding to change over following a plan. (Agile Manifesto)
Sistemas de trabalho aptos à inovação e preparados para responder rapidamente a mudanças, sejam estas por fatores estratégicos da empresa ou por eventos de mercado, extraem da variabilidade o seu potencial econômico. Por exemplo: em março de 2020, quando o lockdown gerado pela covid fez com que todas as lojas do Magalu fossem fechadas, algumas equipes do Luizalabs tiveram que mudar drasticamente o plano de um dia para o outro. Foram pausados todos os itens de trabalho que estavam em andamento e o que estava em backlog, para focar no projeto de Venda Remota.
Este projeto viabilizou que os milhares de vendedores de lojas físicas do Magalu continuassem suas vendas, mesmo que de maneira remota. Naquele momento, surgiu uma opção com retorno muito assimétrico em relação a todos os outros projetos que estavam em andamento ou em backlog, isso não apenas sob a perspectiva de valor econômico, mas também sob a perspectiva de continuidade operacional, competitividade e relevância social.
Além do chaveamento de um projeto por outro, como mencionado no exemplo anterior, também existe a forma de variabilidade através das mudanças de escopo dentro de um projeto. O ideal é que o Discovery e o planejamento evitem que surjam estas mudanças, mas se acontecer, elas precisam ser avaliadas, pois, podem adicionar considerável valor econômico ao projeto.
Final
Compreender a variabilidade em nosso sistema de trabalho não se resume a uma questão de ser boa ou ruim. Não se trata de buscar a variabilidade zero. Mas, não significa que podemos deixar de atacar as oportunidades para amenizar e contrabalancear a variabilidade, inclusive, o Como melhorar a eficiência de fluxo — Parte 1 e Parte 2 vão abordar maneiras de se fazer isso.
Sistemas de trabalho que operam com variabilidade desenfreada, podem alcançar níveis de entropia muito danosos aos resultados. O objetivo é levar a variabilidade para níveis que permitam a alta eficiência de fluxo, principalmente na etapa de desenvolvimento (delivery). Porém, não se deve buscar pela eliminação da variabilidade, se houver geração de valor econômico às entregas. É muito valioso preparar os sistemas de trabalho para serem adaptáveis às mudanças repentinas, seja por sobrevivência no mercado ou para aproveitar oportunidades com maior potencial de retorno econômico.
Key Takeaways
- Alta variabilidade e alta utilização de recursos, resultam em baixa eficiência de fluxo.
- Inovação, mudanças no processo e mudanças no planejamento adicionam oportunidades econômicas e maior competitividade ao negócio. Com isso, também vem incertezas e variabilidade.
Referências
- A função da descoberta de produto e a relação com risco, variabilidade e redução de tamanho de lote — Victor Lima (2021).
- A nova economia para a indústria, o governo e a educação. — W. Edwards Deming (1997).
- A startup enxuta. — Eric Ries (2011).
- Administração da Produção, 3ª Ed. Bookman Editora. — Chambers, S, Johnston, R. e Slack, N. (2009).
- Implementando o Desenvolvimento Lean de Software: do Conceito ao Dinheiro. Bookman Editora. — Poppendieck, M. e Poppendieck, T. (2011).
- Isto é Lean: Resolvendo o Paradoxo de Eficiência. Bookman Editora. — Åhlström, P. e Modig, N. (2017).
- Kanban: Successful Evolutionary Change for your Technology Business — David J. Anderson (2010).
- The Kingman Formula — Variation, Utilization, and Lead Time — Christoph Roser (2017).
- The Principles of Product Development Flow: Second Generation Lean Product Development. Celeritas Publishing. — Reinertsen, D. (2009).
Notas de Rodapé
[1]: Em algumas fontes, é usado o termo variabilidade e em outras, variação. Não há distinção significativa.
[2]: Estes limites são conhecidos como Upper e Lower Process Limit (UPL e LPL).