Perché i sistemi pull creano visibilità e responsabilità che i sistemi push nascondono.
I sistemi push avviano il lavoro in base a previsioni o pianificazioni. Un manager assegna il lavoro. Uno sprint viene pianificato. Il lavoro entra nel sistema indipendentemente dalla capacità disponibile.
I sistemi pull avviano il lavoro in base alla capacità e alla domanda. Il lavoro entra solo quando una fase a valle segnala di essere pronta. Nulla viene spinto dentro—viene tirato attraverso.
L'origine Toyota: in un sistema push, i componenti vengono prodotti in base a previsioni e spinti a valle. Nel sistema pull di Toyota, i processi a valle inviano un segnale (scheda kanban) quando hanno bisogno di componenti. I componenti vengono prodotti solo quando segnalati.
Nel software:
La matematica è controintuitiva: meno elementi alla volta, più elementi finiti.
La Differenza di Visibilità
I sistemi push nascondono i problemi. La pila di lavoro non finito si accumula in modo invisibile. I sistemi pull rivelano i problemi. Quando non puoi tirare nuovo lavoro perché sei bloccato, il blocco è visibile. Questa visibilità forza la risoluzione.
In un sistema push, i problemi vengono sepolti.
Il team ha 15 elementi in corso. Tre sono bloccati in attesa di decisioni architetturali. Ma il lavoro continua sugli altri 12. I blocchi sono invisibili tra l'attività.
Verso la fine dello sprint, quei 3 elementi sono ancora bloccati. Ora è una crisi. "Perché nessuno l'ha segnalato?" Perché il sistema non l'ha forzato.
I sistemi push nascondono anche i problemi di capacità. Se spingi dentro più lavoro di quanto puoi gestire, l'eccesso si accumula semplicemente. Il lead time cresce, ma dall'esterno, "tutti stanno lavorando sodo."
I sistemi push ottimizzano per iniziare. I sistemi pull ottimizzano per finire.
Pensiero push: "Abbiamo iniziato 20 elementi questo sprint!" (Ma ne abbiamo finiti 8.) Pensiero pull: "Abbiamo finito 15 elementi questo sprint." (E ne abbiamo iniziati 15.)
Cosa preferirebbero i tuoi clienti?
Il team si impegna su 20 storie in base alla velocity. A metà percorso, tre storie sono bloccate su una dipendenza. Il lavoro continua sulle altre. Alla fine dello sprint: 8 complete, 12 parzialmente fatte. I 3 elementi bloccati sono ancora bloccati.
Il limite WIP è 3. Uno sviluppatore tira una storia ma è bloccata su una dipendenza. Non può tirare nulla di nuovo—il limite è raggiunto. Il blocco è immediatamente visibile. Il team si mobilita per risolverlo. Il lead time rimane breve.
I sistemi pull sono più difficili da manipolare rispetto ai sistemi push.
In un sistema push, puoi sembrare produttivo mentre accumuli debito. "Sto lavorando su 8 cose!" (Nessuna finita.) "Ho completato 50 story point!" (Ma metà sono bloccati in revisione.)
In un sistema pull, l'unico lavoro valido è il lavoro finito. Non puoi iniziare qualcosa di nuovo finché qualcosa non finisce. Manipolare è più difficile perché il sistema forza il completamento.
Questa responsabilità si estende ai problemi bloccanti:
I sistemi pull allineano gli incentivi con i risultati. Il sistema premia il finire, non l'iniziare. Premia lo sbloccare, non l'aggirare i blocchi. Premia il throughput, non l'essere occupati.
Questo è scomodo per alcuni team. I sistemi push ti permettono di sentirti produttivo anche quando non stai consegnando. I sistemi pull rendono visibile il divario. Questa è una caratteristica, non un bug.
Pull Richiede Coraggio
I sistemi pull fanno emergere problemi che i sistemi push nascondono. Alcune organizzazioni adottano il pull e poi lo abbandonano perché 'sta esponendo troppi problemi.' Quei problemi sono sempre esistiti—il pull li ha solo resi visibili. L'obiettivo è risolverli, non ri-nasconderli.