Por que sistemas pull criam visibilidade e responsabilidade que sistemas push escondem.
Sistemas push iniciam o trabalho com base em previsões ou cronogramas. Um gerente atribui trabalho. Um sprint é planejado. O trabalho entra no sistema independentemente de haver capacidade.
Sistemas pull iniciam o trabalho com base em capacidade e demanda. O trabalho só entra quando uma etapa downstream sinaliza que está pronta. Nada é empurrado—é puxado.
A origem na Toyota: Em um sistema push, as peças são fabricadas com base em previsões e empurradas downstream. No sistema pull da Toyota, os processos downstream enviam um sinal (cartão kanban) quando precisam de peças. As peças são produzidas apenas quando sinalizadas.
Em software:
A matemática é contraintuitiva: menos itens de cada vez, mais itens finalizados.
A Diferença de Visibilidade
Sistemas push escondem problemas. A pilha de trabalho inacabado se acumula invisivelmente. Sistemas pull revelam problemas. Quando você não pode puxar novo trabalho porque está bloqueado, o bloqueio fica visível. Essa visibilidade força a resolução.
Em um sistema push, os problemas ficam enterrados.
A equipe tem 15 itens em progresso. Três estão bloqueados aguardando decisões de arquitetura. Mas o trabalho continua nos outros 12. Os bloqueios ficam invisíveis em meio à atividade.
No final do sprint, esses 3 itens ainda estão bloqueados. Agora é uma crise. "Por que ninguém levantou isso?" Porque o sistema não forçou.
Sistemas push também escondem problemas de capacidade. Se você empurra mais trabalho do que pode lidar, o excesso simplesmente se acumula. O lead time cresce, mas de fora, "todo mundo está trabalhando duro."
Sistemas push otimizam para iniciar. Sistemas pull otimizam para finalizar.
Pensamento push: "Iniciamos 20 itens neste sprint!" (Mas finalizamos 8.) Pensamento pull: "Finalizamos 15 itens neste sprint." (E iniciamos 15.)
Qual seus clientes prefeririam?
A equipe se compromete com 20 histórias com base na velocidade. Na metade, três histórias estão bloqueadas em uma dependência. O trabalho continua nas outras. Ao final do sprint: 8 completas, 12 parcialmente concluídas. Os 3 itens bloqueados ainda estão bloqueados.
O limite de WIP é 3. O desenvolvedor puxa uma história mas ela está bloqueada em uma dependência. Ele não pode puxar nada novo—o limite foi atingido. O bloqueio fica imediatamente visível. A equipe se mobiliza para resolvê-lo. O lead time permanece curto.
Sistemas pull são mais difíceis de manipular do que sistemas push.
Em um sistema push, você pode parecer produtivo enquanto acumula dívida. "Estou trabalhando em 8 coisas!" (Nenhuma finalizada.) "Completei 50 story points!" (Mas metade está presa em revisão.)
Em um sistema pull, o único trabalho válido é o trabalho finalizado. Você não pode iniciar algo novo até que algo seja finalizado. Manipular é mais difícil porque o sistema força a conclusão.
Essa responsabilidade se estende a questões de bloqueio:
Sistemas pull alinham incentivos com resultados. O sistema recompensa finalizar, não iniciar. Recompensa desbloquear, não contornar bloqueios. Recompensa throughput, não ocupação.
Isso é desconfortável para algumas equipes. Sistemas push permitem que você se sinta produtivo mesmo quando não está entregando. Sistemas pull tornam a lacuna visível. Isso é uma funcionalidade, não um bug.
Pull Requer Coragem
Sistemas pull expõem problemas que sistemas push escondem. Algumas organizações adotam pull e depois o abandonam porque 'está expondo muitos problemas.' Esses problemas sempre existiram—pull apenas os tornou visíveis. O objetivo é corrigi-los, não reescondê-los.