Nel messaggio precedente ho introdotto cosa misurare in una software factory che si concentra sul voler creare un sistema affidabile, prevedibile e adattivo.
Sono queste le caratteristiche che ritengo indispensabili per un team di sviluppo software su cui poter costruire business.
Io so quali ritmi è in grado di sostenere la mia auto e perciò posso pianificare viaggi di conseguenza.
Come pianifico il mio viaggio con una vettura tradizionale a motore Diesel è completamente diverso rispetto a una full-electric perché cambiano le caratteristiche di autonomia, velocità di ricarica alla colonnina eccetera.
Allo stesso modo solo conoscendo le caratteristiche del mio team di sviluppo posso pianificare le delivery di software.
Per ottenere stabilità e prevedibilità la regola numero 1 consiste nel limitare il lavoro in corso: il WIP limit (work-in-progress limit).
Traccia il work-in progress
Nel mio Metodo Software Factory la prima cosa che faccio insieme ai clienti è tracciare il work-in-progress e limitarlo.
Ci sono svariati modi per vedere il lavoro in corso ma due sono i principali:
Kanban board
È la classica lavagna (fisica o virtuale) che rappresenta il lavoro in formato di cartellini che rendono visuale lo spostamento del lavoro tra le varie fasi rappresentate come colonne con delle regole di transizione tra una e l’altra.

Cumulative Flow Diagram
L’immagine qui sotto mostra un CFD che illustra il lavoro in ogni fase del processo. Se il sistema fluisce bene le bande dovrebbero avere una larghezza più o costante e stabile.

Scorrendo il diagramma in orizzontale possiamo anche misurare il tempo di attraversamento completo o tra una fase e l’altra.
Più facile a dirsi che a farsi
Limitare il work-in progress è un concetto estremamente facile da spiegare ma difficile da applicare. Siamo abituati a iniziare molte attività e finirne poche. Iniziare cose ci da una falsa idea di produttività sul momento ma poi la paghiamo in frustrazione e sensazione di non aver combinato nulla. Tra le altre cose è difficile imparare a dire “no”: non posso iniziare questa cosa perché ne devo prima finire un’altra.