Il motivo principale del 20% di tempo è di mantenere l'utilizzo della capacità all'80% anziché al 100%.
Puoi pensare a un'organizzazione di sviluppo software come a un sistema che trasforma le richieste di funzionalità in funzionalità sviluppate. Puoi modellare il suo comportamento usando la teoria delle code .
TEORIA
Se le richieste arrivano più velocemente di quanto il sistema possa fornirle, si mettono in coda. Quando gli arrivi sono più lenti, la dimensione della coda diminuisce. Poiché i processi di arrivo e di servizio sono casuali, la dimensione della coda cambia in modo casuale nel tempo.
I matematicamente inclini possono chiedere questa "casualità": ci deve essere una certa distribuzione di probabilità, quindi quale sarà la dimensione della coda in media? La matematica (teoria delle code) ha una risposta a questo: se entrambi i processi di arrivo e di servizio sono Markov, allora N = rho ^ 2 / (1-rho).
(Dove rho è il coefficiente di utilizzo pari al rapporto tra servizio e tariffe di arrivo. Se i processi non sono Markov, la matematica è più complicata, ma non cambia le conclusioni.)
Se traccia questa funzione, puoi vedere che la lunghezza media della coda rimane bassa mentre l'utilizzo è fino a 0,8 , quindi aumenta bruscamente e va all'infinito. Puoi comprenderlo intuitivamente pensando alla CPU del tuo computer: quando il suo utilizzo si avvicina al 100%, il computer non risponde.
PRATICA
L'economia dello sviluppo del software è tale che le società di software sostengono grossi costi quando le loro code si trovano in stati di alta coda. Ciò include opportunità di mercato mancate, prodotti obsoleti, progetti in ritardo e sprechi causati dalle funzionalità di costruzione in previsione della domanda.
Il tempo del 20% è quindi la risposta scientifica al problema dell'ottimizzazione dei risultati economici: evitare gli stati di coda elevata evitando i rapporti di utilizzo che li causano. È essenzialmente il gioco che mantiene il sistema reattivo.
Diverse conclusioni pratiche seguono immediatamente:
- se stai considerando il 20% di tempo e stai facendo la contabilità dei costi (il tempo degli sviluppatori costa X, ma / e la società può / non può permetterselo), stai sbagliando.
- se stai assegnando il 20% a un venerdì ogni settimana, stai sbagliando
- se stai impostando un sistema di invio / revisione / approvazione della proposta di progetto del 20%, stai sbagliando
- se stai compilando schede attività, stai sbagliando
- se stai usando l'innovazione come motivatore per il 20% del tempo, stai sbagliando. Mentre i nuovi prodotti sono usciti dal 20% dei progetti, non erano questo il punto. Se la tua azienda non può innovare durante le sue ore principali, questo è un problema!
- Il 20% del tempo non riguarda la creatività. Non dire che libererai la tua creatività con il 20% di tempo, chiedi perché non sei già abbastanza creativo durante le tue ore principali.
RISPOSTA ALLE DOMANDE NEI COMMENTI
Dan , hai capito bene e hai accuratamente descritto l'errore fatto da molti. Non puoi scegliere la percentuale di utilizzo, perché è una variabile di output. È un rapporto tra le caratteristiche di due processi, quindi è quello che è perché i processi sono come sono. Un'organizzazione ha influenza su entrambi i processi; la capacità e la domanda di abbinamento è uno dei problemi più difficili affrontati dal corpo snello di conoscenza dello sviluppo software. L'utilizzo è uno degli indicatori della risoluzione del problema in un'organizzazione. Il rallentamento emerge mentre la tua iniziativa snella avanza e rimuovi gli sprechi dal flusso di valore. Ma se si impone il 20% di tempo, si finisce nella stessa trappola di utilizzo con una capacità disponibile inferiore.
Kim , è ancora parzialmente una cosa culturale. Il riferimento culturale più vicino a cui riesco a pensare è il livello sinergico del cosiddetto modello Marshall di cambiamento organizzativo. Emerge alla fine di trasformazioni lean di successo o è presente nelle organizzazioni costruite lean fin dall'inizio. ( Ecco un link al white paper di Bob Marshall (PDF) .)
RIFERIMENTI
La logica di cui sopra è ben supportata nella letteratura di ingegneria del software. Mary e Tom Poppendieck lo hanno accennato nel loro libro del 2006 Implementing Lean Software Development . Donald Reinertsen nel suo libro del 2009 Principles of Product Development Flow (capitolo 3) offre un trattamento approfondito di questo argomento, con formule e grafici.