Il motivo principale per il 20% di tempo è 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 modellarne il comportamento usando la teoria delle code .
TEORIA
Se le richieste arrivano più velocemente di quanto il sistema possa servirle, si accodano. Quando gli arrivi sono più lenti, la dimensione della coda diminuisce. Poiché i processi di arrivo e di servizio sono casuali, le dimensioni della coda cambiano casualmente con il tempo.
L'inclinazione matematica può chiedere di questa "casualità": deve esserci una 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 uguale al rapporto tra tassi di servizio e di arrivo.Se i processi non sono Markov, la matematica è più complicata, ma non cambia le conclusioni.)
Se tracciate questa funzione, potete vedere che la lunghezza media della coda rimane bassa mentre l'utilizzo è fino a 0,8 , quindi aumenta bruscamente e passa all'infinito. Puoi capirlo in modo intuitivo pensando alla CPU del tuo computer: quando il suo utilizzo si avvicina al 100%, il computer non risponde.
PRACTICE
L'economia dello sviluppo del software è tale che le società di software sostengono ingenti costi quando le loro code sono in stati di coda alta. Ciò include opportunità di mercato mancate, prodotti obsoleti, progetti in ritardo e sprechi causati dalla costruzione di funzionalità in previsione della domanda.
Il 20% del tempo è quindi la risposta scientifica al problema dell'ottimizzazione dei risultati economici: evitare gli stati di coda alta evitando i rapporti di utilizzo che li causano. È essenzialmente il gioco che mantiene il sistema reattivo.
Seguono immediatamente alcune conclusioni pratiche:
- se stai considerando il 20% di tempo e esegui la contabilità dei costi (il tempo degli sviluppatori costa X, ma / e l'azienda non 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% di tempo, stai sbagliando
- se stai compilando i timesheet, stai sbagliando
- se utilizzi l'innovazione come motivazione per il 20% del tempo, stai sbagliando. Mentre i nuovi prodotti sono usciti dal 20% dei progetti, non erano il punto. Se la tua azienda non può innovare durante le sue ore principali, questo è un problema!
- Il 20% di tempo non riguarda la creatività. Non dire che scateni la tua creatività con il 20% di tempo, chiedi perché non sei già abbastanza creativo durante il tuo core hours.
RISPOSTE ALLE DOMANDE NEI COMMENTI
Dan , hai capito bene e hai descritto con precisione 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 corrispondenza è uno dei problemi difficili affrontati dal corpus di conoscenza del software di sviluppo snello. L'utilizzo è uno degli indicatori di quanto questo problema sia stato risolto in un'organizzazione. Il lasco emerge man mano che la tua iniziativa snella progredisce e rimuovi gli sprechi dal flusso di valore. Ma se imposti il 20% di tempo, finisci nella stessa trappola di utilizzo con meno capacità disponibile.
Kim , è ancora parzialmente una cosa culturale. Il riferimento culturale più vicino a cui riesco a pensare è il livello sinergico del cosiddetto modello Marshall del cambiamento organizzativo. Emerge alla fine delle trasformazioni magre di successo o è presente nelle organizzazioni costruite a partire 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 in il loro libro del 2006 Implementazione dello sviluppo software snello . Donald Reinertsen in il suo libro 2009 Principles of Product Development Flow (Capitolo 3) offre un trattamento approfondito di questo argomento, con formule e grafici.