Simyl
simylflow
Início do Curso
Módulo 3: Fluxo de Valor e Fluxo
Lição 5 de 5
12 min

Teoria dos Gargalos

Por que melhorar a restrição importa—e todo o resto não.

1A Teoria das Restrições

Na década de 1980, Eli Goldratt desenvolveu a Teoria das Restrições (TOC). A ideia central é simples, mas profunda:

Todo sistema tem uma restrição—uma etapa que limita a capacidade de entrega do todo.

Pense em uma rodovia: se um trecho está congestionado, toda a rodovia fica mais lenta. Alargar os trechos livres não ajuda. Você precisa resolver o trecho congestionado.

O mesmo se aplica aos fluxos de valor. Se a revisão de código é o gargalo, tornar o desenvolvimento mais rápido apenas cria uma pilha maior na revisão de código. Se os testes são a restrição, contratar mais desenvolvedores apenas significa mais trabalho esperando pelo QA.

O sistema só pode avançar tão rápido quanto sua restrição mais lenta.

Isso tem implicações poderosas para a melhoria: melhorar qualquer coisa que não seja a restrição é teatro. Pode parecer produtivo, mas não tem efeito na capacidade de entrega geral.

O Poder do Foco

A TOC diz exatamente onde focar: a restrição. Ignore todo o resto até que a restrição seja quebrada. Depois encontre a nova restrição e repita. Isso evita a armadilha comum de otimizar em todos os lugares sem resultados.

2Encontrando a Restrição

Como você encontra a restrição? Procure onde o inventário (trabalho) se acumula.

A restrição tem uma pilha de trabalho esperando na frente dela. Se a revisão de código sempre tem um backlog, a revisão de código provavelmente é a restrição. Se os testes têm semanas de trabalho na fila, os testes provavelmente são a restrição.

Outros sinais de restrições:

  • Alta utilização: A restrição está no limite
  • Pressão constante: As pessoas na etapa de restrição estão sempre apressadas
  • Escassez a jusante: Etapas após a restrição estão esperando por trabalho
  • Frustração a montante: "Terminamos, por que não está avançando?"

Restrições comuns em software:

  • Revisão de código (poucos revisores, PRs grandes)
  • Testes (QA manual, cobertura de testes limitada)
  • Deploy (releases complexos, janelas de deploy limitadas)
  • Decisões de arquitetura (esperando pelo arquiteto)
  • Decisões de produto (esperando pelo product owner)

Observação: a restrição frequentemente não é uma etapa "produtiva". Pode ser um tomador de decisões. Pode ser um processo de aprovação. Pode ser um recurso compartilhado.

O Gargalo do Deploy

Uma equipe mede e encontra trabalho se acumulando no deploy. Apenas uma pessoa sabe como fazer deploy. Ela tem tempo para um deploy por semana. Todo o resto espera. Solução: automatizar o deploy e disseminar o conhecimento. A capacidade de entrega dobra.

A Otimização Errada

A gestão vê desenvolvedores 'subutilizados' (90% vs. 100%) e atribui mais trabalho. Os desenvolvedores aceleram. Mas o deploy é a restrição—ainda é uma vez por semana. O lead time não melhora. O inventário na frente do deploy cresce.

3Explorando e Elevando Restrições

A TOC prescreve um processo de cinco etapas:

1. Identificar a restrição: Encontre onde o trabalho se acumula.

2. Explorar a restrição: Maximize a capacidade de entrega através da restrição sem adicionar recursos. Se a revisão de código é a restrição, priorize revisões em vez de novo desenvolvimento. Certifique-se de que os revisores não estão distraídos. Reduza o tamanho dos PRs para que as revisões sejam mais rápidas.

3. Subordinar todo o resto: As não-restrições devem servir à restrição. Se o QA é a restrição, não empurre mais trabalho para o QA—ajuste o ritmo do desenvolvimento para corresponder à capacidade do QA.

4. Elevar a restrição: Se a exploração e a subordinação não forem suficientes, adicione capacidade à restrição. Treine mais revisores. Automatize os testes. Contrate mais da habilidade restrita.

5. Repetir: Uma vez que você quebra uma restrição, outra emerge. A restrição se move. Encontre-a e repita.

Isso é melhoria contínua e iterativa. Você está sempre focado na restrição atual, não disperso por todas as etapas.

A metáfora tambor-pulmão-corda: A restrição é o "tambor" que define o ritmo. O trabalho antes da restrição é o "pulmão". A "corda" puxa o trabalho para o sistema no ritmo que a restrição pode lidar—não mais rápido.

A Restrição Errante

Quando você quebra uma restrição, outra etapa se torna a nova restrição. Isso é normal. Mas se a restrição vagueia aleatoriamente (às vezes dev, às vezes QA, às vezes deploy), seu sistema está instável. Estabilize primeiro, depois otimize.

Principais Conclusões
  • Todo sistema tem uma restrição que limita a capacidade de entrega geral
  • Melhorar não-restrições não ajuda o sistema
  • Encontre a restrição procurando onde o trabalho se acumula
  • Explore a restrição antes de adicionar capacidade
  • Quando você quebra uma restrição, outra emerge—repita

Exercícios Práticos