Simyl
simylflow
Home del Corso
Modulo 4: Metriche e Gestione del Flusso
Lezione 4 di 5
12 min

Trovare e Affrontare i Colli di Bottiglia

Usare i dati per identificare dove il flusso si interrompe e cosa fare al riguardo.

1Cos'è un Collo di Bottiglia?

Un collo di bottiglia è una fase che limita il throughput dell'intero sistema. È il passaggio più lento del processo.

Theory of Constraints (Eli Goldratt): L'output del sistema non può mai superare l'output del collo di bottiglia. Migliorare qualsiasi cosa diversa dal collo di bottiglia non migliora il sistema.

In Kanban:

  • Il lavoro si accumula davanti al collo di bottiglia
  • Le fasi a valle sono affamate
  • Il throughput del collo di bottiglia = throughput del sistema

Ogni sistema ha un collo di bottiglia. Quando ne risolvi uno, ne emerge un altro. Questo non è un fallimento—è così che funziona il miglioramento. Il collo di bottiglia dovrebbe spostarsi man mano che migliori.

2Identificare i Colli di Bottiglia con i Dati

Metriche che rivelano i colli di bottiglia:

1. Lunghezza delle code (WIP in stati di attesa) Se "Pronto per QA" ha 8 elementi mentre altre code ne hanno 1-2, probabilmente QA è il collo di bottiglia.

2. Tempo nella fase Se gli elementi trascorrono 3 giorni nello sviluppo ma 5 giorni nella revisione del codice, la revisione del codice sta rallentando le cose.

3. Larghezza delle bande CFD Bande larghe = WIP alto = collo di bottiglia. Cerca bande che crescono nel tempo.

4. Età dell'elemento più vecchio per fase Se l'elemento più vecchio in "Deploy" ha 2 giorni ma il più vecchio in "Testing" ha 10 giorni, il testing è il vincolo.

Colli di bottiglia comuni nei team software:

  • Revisione del codice (revisori insufficienti)
  • QA/Testing (capacità o automazione insufficiente)
  • Deployment (processi manuali o rilasci poco frequenti)
  • Requisiti/Design (collo di bottiglia a monte)
  • Approvazioni (in attesa degli stakeholder)

3Affrontare i Colli di Bottiglia

Una volta identificato il collo di bottiglia, le opzioni includono:

1. Aggiungere capacità al collo di bottiglia

  • Più persone
  • Cross-training
  • Automazione
  • Rimuovere sprechi dal processo del collo di bottiglia

2. Scaricare lavoro dal collo di bottiglia

  • Altre fasi possono aiutare?
  • Il lavoro del collo di bottiglia può essere semplificato?
  • Alcuni lavori possono saltare il collo di bottiglia?

3. Ridurre la domanda sul collo di bottiglia

  • Limiti WIP più stretti a monte (non sovraccaricarlo)
  • Migliore preparazione degli elementi di lavoro
  • Batching (a volte—compromesso con il flusso)

4. Subordinare altre fasi al collo di bottiglia

  • Il collo di bottiglia imposta il ritmo
  • Non ottimizzare i non-colli di bottiglia (spreca sforzi)
  • Alimentare il collo di bottiglia esattamente al ritmo che può consumare

5. Elevare il collo di bottiglia

  • Investire nel rendere il collo di bottiglia più veloce
  • Eliminare completamente il vincolo se possibile
Buono: Focus sul Collo di Bottiglia

QA è il collo di bottiglia. Il team decide: (1) Due sviluppatori iniziano ad aiutare con il testing, (2) Aggiungere più test automatizzati per ridurre il carico di QA manuale, (3) Stringere il limite WIP sullo sviluppo così QA non viene sommerso. Il throughput di QA aumenta, il flusso migliora.

Cattivo: Ignorare il Collo di Bottiglia

QA è il collo di bottiglia. Il team decide di 'andare più veloce' nello sviluppo tagliando gli angoli. Il throughput dello sviluppo aumenta. L'accumulo in QA peggiora. La qualità cala. Il throughput del sistema rimane invariato.

4Il Collo di Bottiglia si Sposta

Quando risolvi un collo di bottiglia, ne appare uno nuovo. Questo è previsto e sano.

Il ciclo:

  1. Identificare il collo di bottiglia (QA)
  2. Migliorarlo (automazione, cross-training)
  3. Emerge un nuovo collo di bottiglia (ora è la revisione del codice)
  4. Identificare e affrontare il nuovo collo di bottiglia
  5. Ripetere

Progressione comune nei team software:

  1. Primo collo di bottiglia: Testing/QA
  2. Soluzione: Automazione dei test, cross-training → Il collo di bottiglia si sposta a...
  3. Secondo collo di bottiglia: Revisione del codice
  4. Soluzione: Pair programming, revisioni asincrone → Il collo di bottiglia si sposta a...
  5. Terzo collo di bottiglia: Deployment
  6. Soluzione: CI/CD, feature flag → Il collo di bottiglia si sposta a...
  7. Quarto collo di bottiglia: Decisioni di prodotto

Questo è progresso! Ogni volta che il collo di bottiglia si sposta, la capacità del tuo sistema è aumentata.

Il pericolo: Cercare di risolvere tutti i colli di bottiglia contemporaneamente. Non puoi. Concentrati sul vincolo attuale. Quando non è più il vincolo, passa al successivo.

Se non sei sicuro quale fase sia il collo di bottiglia, probabilmente i tuoi limiti WIP sono troppo lassi. Stringili finché non si formano code—allora vedrai chiaramente il collo di bottiglia.

Punti Chiave
  • Il collo di bottiglia limita il throughput del sistema—migliorare qualsiasi altra cosa non aiuta
  • Identificare i colli di bottiglia tramite lunghezza delle code, tempo nella fase e pattern CFD
  • Affrontare i colli di bottiglia aggiungendo capacità, riducendo la domanda o subordinando altre fasi
  • Quando risolvi un collo di bottiglia, ne emerge un altro—questo è progresso
Errori Comuni da Evitare
  • Cercare di ottimizzare fasi non-collo di bottiglia
  • Ignorare il collo di bottiglia mentre si accelerano altre fasi
  • Non rivalutare quando il collo di bottiglia si sposta
  • Limiti WIP lassi che nascondono dove si trova il vero vincolo