menu

Entendendo a Lei de Little

Por

Você já viu a fórmula abaixo alguma vez? É possível que sim.


Average Lead Time = Average Work in Progress / Average Throughput ou
Tempo de espera médio = Média da quantidade de trabalho em progresso / Vazão média


john_dclittleA fórmula é conhecida como Lei de Little, em homenagem ao professor John Little, e demonstra a relação entre as médias históricas de Lead Time (LT), Work in Progress (WIP) e Throughput (TP)LT = WIP/TP (conheça um pouco mais sobre estes termos logo abaixo)
O meu objetivo com esse post é apresentar a Lei de Little, um pouco da sua utilização, além de explorar um ponto muito importante que são as premissas para que a análise e aplicação da fórmula sejam válidas.

As variáveis

Se você já conhece as variáveis envolvidas na fórmula, por favor, pule esse trecho ;-), caso contrário, vou apresentar o que é Lead Time, Work in Progress e Throughput.

sistema

A imagem acima representa um sistema em que há um ponto de entrada (linha pontilhada verde) e um ponto de saída (linha pontilhada vermelha). É importante saber quais são esses pontos no seu sistema.

Na visão de um cliente, por exemplo, o ponto de entrada de um sistema de pizzaria delivery seria a ligação para pedir uma pizza, já o ponto de saída seria a entrega da pizza em sua casa.


No Scrum, é comum considerar como entrada no sistema o momento em que as histórias são incluídas no Sprint, logo após a reunião de Planejamento, e a saída é o momento em que o PO aceita as histórias.

board


 

Bom, vamos lá às nossas queridas variáveis:

Work in Progress (WIP) ou Trabalho em progresso — O estado de um item que está em seu sistema é “Em progresso”. Portando, Trabalho em progresso é o número de itens que está em seu sistema naquele instante que foi analisado.

Mantendo-se no exemplo da pizza, WIP da pizzaria é o número de pizzas pedidas, mas ainda não entregues. Inclui, portanto, desde todos os pedidos que ainda não foram passados ao pizzaiolo; as pizzas sendo feitas; aquelas que estão no forno; as encaixotadas até as que estão com o motoboy.

Lead Time (LT) ou Tempo de espera — É o tempo em que um item permanece em progresso. Ou seja, é o tempo total desde que o item entrou no sistema até o momento que ele saiu.

Ainda no caso da pizza, é o tempo que decorre entre a ligação para pedir sua pizza até tê-la entregue em sua casa.


“Quanto tempo vocês acham que vão demorar?”
É bem provável que a pizzaria acompanhe as métricas de Lead Time e possa te passar um tempo bem próximo do real.

 

Throughput (TP) ou Vazão — É a taxa na qual os itens saem de seu sistema (“taxa de saída”). Por exemplo, se a pizzaria entrega 2 pizzas por minuto, podemos dizer que essa é sua vazão.


Não confunda o termo “Velocidade” com “Vazão”

Apesar de terem semelhanças, a velocidade é medida em pontos de história por unidade de tempo (normalmente uma Sprint ou iteração), enquanto vazão é o número de itens por unidade de tempo.
Se você quiser utilizar na fórmula a velocidade no lugar da vazão, utilize a quantidade de pontos de história dos itens que compõem seu WIP no lugar da quantidade de itens.


Quando for fazer suas contas utilizando a Lei de Little, preste atenção para manter as unidades coerentes, se estiver medindo Lead Time em horas, use itens por hora para a vazão 😉

A origem da Lei de Little: Filas           

filaFila de clientes

 

A Lei de Little surgiu do estudo de sistemas de filas.

“Um ‘sistema de filas’ consiste em objetos discretos chamados ‘itens’ que ‘chegam’ a alguma taxa ao ‘sistema.’ Internamente ao sistema, os itens podem formar uma ou mais filas e em algum momento recebem o ‘serviço’ e saem.”

John D.C. Little e Stephen C. Graves


Falamos bastante de pizzaria, mas basicamente, o que fazemos na gestão de um processo, seja Kanban, Scrum ou qualquer outro, é gerenciar filas. Sim, seu
backlog é uma fila, os itens no seu fluxo de trabalho formam filas e por aí vai.Parece que “sistemas de filas” é um termo técnico e assustador, mas nada mais é que seu dia a dia, por isso, um bom entendimento é tão fundamental.

Aplicação prática

Reduzindo WIP

“Existe causalidade entre a quantidade de trabalho em progresso e o tempo médio de espera, e essa relação é linear.”  David J. Anderson em seu famoso livro azul sobre Kanban.

Veja que a afirmação de David Anderson é correta apenas quando aplicada para trás, ou seja, utilizando dados históricos. Mesmo assim, talvez um dos pontos mais importantes a se entender é que existe uma correlação forte entre menos itens em progresso e redução de tempo médio de espera mesmo olhado para o futuro.

Reduza o trabalho em progresso (WIP) e boas coisas virão 😉

Tanto o Kanban quanto o Scrum limitam o trabalho em progresso. Ambos de maneiras bem diferentes, mas limitam. O primeiro, Kanban, o faz explicitamente, já o Scrum limita ao pedir que a equipe só puxe para dentro do Sprint o que entender ser capaz de fazer neste período.

Encontrando a variável perdida

Na fórmula da Lei de Little, composta por 3 variáveis, é muito comum que se consiga medir duas das variáveis, mas não a terceira. É por essa razão que a relação entre as três variáveis é tão importante, pois basta utilizar a fórmula para facilmente descobrir a variável ausente.

Imagine que você quer abrir uma pizzaria e quer ter uma ideia de quantas pizzas estarão sendo preparadas ao mesmo tempo para ter uma ideia de quantas pessoas precisará contratar inicialmente.

Você estabelece que durante o horário de pico o tempo médio de espera tolerável para os clientes é de 30 minutos e suas pesquisas de mercado mostram que são esperados 20 pedidos de pizza por hora (taxa de entrada).

WIP = ?

Lead Time médio = 30 minutos

Vazão = 20 pizzas por hora (mas não era taxa de entrada, como você está usando como taxa de saída??? A gente vai ver isso mais para frente)

Acerte as unidades, vamos usar horas

Lead Time médio = 0.5 horas

Agora basta colocar na fórmula

0.5h = WIP / (20 itens/h)

WIP = 0.5 * 20 itens

WIP = 10 itens

Bom, saber que a pizzaria deve ter em média 10 itens em progresso todo o tempo durante o horário de pico pode ajudar você a ter uma ideia de quantas pessoas serão necessárias. Se você ficou curioso em como chegar nesse número, aguarde nosso próximo post 😉

Previsões?

O mundo certamente tem mais variabilidade do que gostaríamos, então, fazer previsões determinísticas é um grande risco.


Variabilidade
Quando você pega o carro para ir ao trabalho, você sempre leva o mesmo tempo exato ou existe alguma variação comparando dia a dia? Variabilidade são todas as coisas, pequenas ou grandes, que trazem irregularidade ao fluxo. Os japoneses usam o termo “Mura” como “variabilidade no fluxo”.
DeterminismoDeterminismo, em contrapartida, é dizer que se você for de carro para o trabalho, não há nada que possa mudar o tempo ou qualquer outra situação até você chegar no trabalho. Você, como motorista, fará as mesmas curvas, brecará nos mesmos pontos, os semáforos, por sua vez, acenderão nos mesmos momentos e terão os mesmos carros na rua nas mesmas posições e por aí vai.determinismo-variabilidade

 

Contudo, apenas para se ter uma ideia de quando algo ficará pronto, ainda é justo o uso das relações da Lei de Little.


Vamos falar um pouco do projeto como um todo, incluindo o backlog. Uma das características interessantes da Lei de Little é que ela se aplica tanto a um subsistema, quanto ao sistema inteiro. Assim, podemos falar do sistema de desenvolvimento como parte de algo maior que é o projeto todo.

“De forma prática, os resultados aplicam-se a qualquer sistema e, particularmente, a sistemas dentro de sistemas. Assim, em um banco, a fila é um subsistema e cada caixa é também um subsistema. A Lei de Little poderia ser aplicada a cada um, assim como ao todo.”  Dimitar Bakardzhiev

Dado que posso utilizar a Lei de Little tanto para o todo, quanto para as partes, o que estou falando é utilizá-la em previsões do tipo: dado que entrego 10 itens em média por semana, vou ter entregue 100 itens daqui a 10 semanas. Outro exemplo: tenho um backlog com 100 itens (WIP), faço 10 itens por semana (Throughput), portanto devo levar 10 semanas para concluir, que retrata, então, o Lead time do projeto. Lembre-se! Esse racional é apenas para se ter uma ideia. Não vá sair se comprometendo com datas desse jeito. Existem técnicas bem melhores para se fazer isso, mas vou deixar para falar delas em outro post 😉

Se você reparou bem, é de maneira determinística que a maioria das pessoas se compromete com datas. Usam um burnup e a taxa de saída para projetar quando tudo ficará pronto e falam: “Devemos terminar no dia 2 de março!” Isso é uma maneira muito simplista e problemática de se comprometer com uma data.

Em suma, apesar da Lei de Little não servir como modelo adequado para prever o futuro, ela pode ser usada para dar muito mais previsibilidade ao sistema. Para isso, uma série de condições precisa estar presente. Conhecer tais premissas permite-nos criar sistemas mais previsíveis com a escolha de melhores políticas.


Uma política é um acordo sobre como algo funcionará em um sistema.
Limitar o trabalho em progresso em uma coluna no Kanban é um exemplo política; ter classes de serviço é outra. No Scrum, algumas políticas já são do próprio framework, como: todo começo de Sprint serão incluídos um número X histórias ou pontos que a equipe julgue capaz de realizar.

Premissas

Versão baseada na entrada de itens no sistema

L = ƛW 

Essa é a lei formulada originalmente. O sinalzinho estranho ali é “lambda” 😉

Como falamos, a lei de Little surgiu do estudo de sistemas de filas e, diferente da versão mais conhecida hoje em dia, era baseada na taxa de entrada de itens no sistema. A fórmula era a seguinte:

L = ƛW

Sendo

L = Quantidade média de itens no sistema

ƛ = Taxa média de entrada de itens no sistema

W = Tempo médio de um item no sistema

Exemplo:

No artigo do próprio Little, ele conta o exemplo de como seria descobrir a idade média de um vinho que supostamente fica melhor com o passar dos anos (é só o que diz o artigo, não entendo nada de vinho :-)).

Preferi reescrever o exemplo usando cervejas: Imagine que você tem uma geladeira cheia de latas de cerveja e quer saber quanto tempo em média elas ficam lá. Você é daquelas pessoas que anotam os gastos em planilhas, portanto você consegue levantar que nos últimos dois anos comprou, em média, 12 latas por semana e sua geladeira tem espaço para armazenar 48 cervejas, mas quase sempre só tem ¾ delas em média ocupando a geladeira.

L = 36 latas em média

ƛ = 12 latas / semana

Como você não consegue saber a ordem com a qual tomou as cervejas, fica difícil saber de outra forma qual a idade média delas. É aí que entra a lei de Little.

Aplicando-se L = ƛW

36 latas = 12 latas / semana * W

36/12 semanas = W

ou seja, as cervejas teriam a idade média de 3 semanas na sua geladeira.

As premissas para que isso fosse verdade seriam:

  • Um sistema estável
    • A média do WIP no início do período do cálculo deve ser muito próxima da média no final do período.
      Se você está analisando os dois últimos meses, então dois meses atrás o WIP deveria ser muito semelhante ao de hoje.
    • A idade média dos itens que compõe o trabalho em progresso não deve estar mudando, nem para mais, nem para menos.
      Imagine no exemplo das cervejas que algum dia você ganhou de um “grande” amigo seu um pacote de 12 latas de uma cerveja que você não gosta. Isso já faz dois anos e você não tem coragem nem de tomá-las (talvez você esteja guardando para se punir por algo) nem de jogá-las fora (se fizesse isso seu amigo poderia ficar chateado, ou pior ainda 😉 , afetaria a conservação de fluxo que vamos ver mais para frente). Qual a idade, então, dessas doze latas? Pelo menos dois anos cada. Mesmo que as demais 24 latas tivessem sido recém adquiridas, a média de idade do WIP seria de 8 meses.
      E se isso continuasse acontecendo por mais dois anos? Se você disse 16 meses, acertou em cheio. Portanto, se você ganhou um pacote de cerveja ruim e decidiu largá-lo na sua geladeira, você ferrou, sem saber, com uma das premissas da Lei de Little 😉
  • Médias de uma série longa
    Como vimos no exemplo, por várias e várias semanas você reabastece a geladeira com cervejas e durante esse tempo todo a média de latas na geladeira foi de aproximadamente 36.

Versão baseada na saída de itens no sistema

Alguém da gestão de operações percebeu que o L (Quantidade média de itens no sistema) parecia-se muito com o WIP e que o W (Tempo médio de um item no sistema) era igualzinho ao Lead Time.

Além dessas duas traduções na fórmula, a terceira acaba sendo a mais impactante, pois é graças a ela que o foco da lei deixa de ser na taxa de entradas e passa a usar a taxa de saídas. Ela troca o ƛ (Taxa de entrada) pelo Throughput.

Então a nova versão da fórmula ficou assim:

Average WIP (L) = Average Throughput (ƛ) * Average Lead Time (W)

Já ficou um pouco mais parecida com a atual, certo?

E bastou um pouco de álgebra simples para deixá-la da forma mais conhecida:

Average Lead Time = Average Work in Progress / Average Throughput

Novo formato, novas premissas

Tá, parece só uma mudança de pouca importância, mas ela faz com que as premissas mudem.

Além das premissas anteriores, ganhamos agora a conservação do fluxo nesta nova versão (em termos de Throughput):

Conservação do fluxo (** novo **)

    • Durante o período do cálculo, todo o trabalho iniciado deve seguir o fluxo e sair do sistema;
      É comum entender que algo não faz mais sentido e tirar do sistema. Aqui a questão não é se isso é certo ou não, apenas que a lei de Little deixa de ter validade se estiver acontecendo esse tipo de coisa no sistema. Lembre-se do exemplo das cervejas ruins que seu amigo lhe deu, jogá-las fora é uma afronta a essa premissa.Como escrevi em outro post“… seria imbecil continuar trabalhando em algo que não tem mais valor de negócio. O que quero dizer é que você terá que lidar adequadamente com esse item em seus dados, seja movendo-o para ‘pronto’, seja tratando-o como se nunca tivesse entrado em seu sistema para começo de conversa.
  • Durante o período do cálculo, a taxa média de chegada de itens deve ser muito próxima à taxa média de saída.

Só para ver se você entendeu, quando você tiver todas as premissas em ordem, um gráfico CFD (Cumulative Flow Diagram ou Diagrama de fluxo cumulativo) do seu processo deve parecer com esse abaixo, se estiver usando Scrum, ele vai ficar mais escadinha, mas não é um problema:

cfd

A taxa de entrada está igual à de saída. Também não haverá itens sendo jogados fora no meio do caminho sem o devido tratamento. E, por fim, a idade média dos itens em WIP estará razoavelmente constante.

Assim, analisamos neste artigo as principais características da famosa Lei de Little. Falamos um pouco de como utilizá-la e vimos algo pouco explorado, mas muito, muito importante que são as suas premissas de validade.

Pense agora no que você tem feito com seu processo e como isso se adequa às referidas premissas. Pense em como aqueles itens bloqueados estão afetando seu processo. Qual o efeito de itens “urgentes” que furam suas filas? Será que está rompendo com alguma das premissas? Será que essas coisas reduzem sua previsibilidade?

Em um próximo post, darei exemplos da aplicação da Lei de Little a projetos de desenvolvimento de software 😉

Tente responder essas perguntas e conte-nos um pouco da sua experiência.

Abraços e até a próxima.


 

Referências:

6 comments

  1. Teresa Maciel

    Leonardo, um aluno encontrou sua matéria e achei muito bom seu texto, que fornece uma visão preliminar de fácil assimilação sobre o assunto . Didático, simples e objetivo. Parabéns.

    Posted on fevereiro 26, 2016
    • Leonardo Campos

      Obrigado, Teresa.
      Se tiver algum ponto que ele ou você achem interessante explorar melhor, é só falar 😉

      Posted on fevereiro 27, 2016
  2. Pingback: Trabalhando com poucos dados | Kudoos

  3. Pingback: Cumulative Flow Diagram: Como exibir o progresso visualmente | Kudoos

  4. Pingback: Começando a estimar a duração de um projeto | Kudoos

  5. Leonardo Del Guerra

    Leonardo Campos,

    Parabéns pelo post!

    Gostaria de mais informações sobre como podemos determinar um “WiP ideal”, de forma a mantermos um fluxo puxado e constante, principalmente em ambientes onde os recursos trabalham para muito projetos. Alguma dica?

    Posted on setembro 2, 2016

Leave your reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Go to top

O kudoos busca melhorar a gestão ágil no Brasil por meio da criação e promoção de conteúdo e eventos de qualidade. Veja nossos conteúdos e vídeos e participe dos eventos que promovemos para troca de ideias e experiências.

Close