Lavoro su un grande programma software - 100 sviluppatori in servizi finanziari.
La saggezza comune di Integrazione continua serve per ottenere un feedback in anticipo rispetto alle modifiche.
La saggezza comune di Consegna continua è che riuscendo a sbloccare piccoli pezzi, si riduce il rischio di fallimento, perché puoi eseguire facilmente il rollback e rilasciare piccoli blocchi ti aiuta a raggiungere rapidamente e spesso la produzione.
Un diagramma del valore aziendale in Lean ci consente di vedere il flusso del valore aziendale da sinistra a destra (simile a una linea di produzione) e da questo è possibile identificare dove si stanno bloccando le voci di modifica e dove sono i colli di bottiglia nel processo.
La sfida nello sviluppo del software è identificare esattamente quali sono i widget sulla linea di produzione.
Se leggi The Phoenix Project , le modifiche sono le registrazioni delle modifiche che fluiscono attraverso il sistema (anche se questo è strongmente focalizzata sull'infrastruttura IT). Se parli con uno Scrum master - allora le modifiche fluiscono attraverso il sistema sono storie. Se parli con uno sviluppatore, le modifiche che fluiscono attraverso il sistema vengono commesse dalla GIT. (Che può e dovrebbe allinearsi alle storie).
La semplice realtà è che realizziamo piccole versioni una volta al mese e grandi versioni una volta ogni tre mesi, a causa del costo di transazione del test di regressione. (Il libro di Don Reinersen I principi del flusso di sviluppo del prodotto è sorprendente sui compromessi tra tempi di ciclo e costi di transazione.
Quindi nel tentativo di identificare i vincoli sul sistema - invece di trovare un'area di lavoro in cui gli elementi si accumulano - a me sembra che la dimensione del batch stesso sia un vincolo. Per dimensione del lotto, intendo il numero di risultati finali in una versione. Un rilascio ogni mese con un gran numero di sviluppatori avrebbe un gran numero di storie / commit. Sto cercando di quantificarlo.
Sappiamo che l'economia delle dimensioni del lotto è un problema di ottimizzazione della curva a U e che il costo di transazione di un test di regressione e di un rilascio è notevole.
La mia domanda è: Come posso determinare la frequenza di rilascio ottimale per il massimo throughput?