Apprendimento chiave tratto da Accelerate: The Science of Lean Software e DevOps: Building and …

Accelerare di Nicole Forsgren, Jez Humble e Gene Kim è stato uno dei migliori libri di tecnologia che ho letto. Ecco un riassunto di alcune citazioni chiave e gli insegnamenti che ho preso dal libro.

  • Non avere un arretrato di funzionalità e un arretrato di debito tecnico e un arretrato di lavoro operativo; invece, hanno un unico arretrato perché gli NFR sono caratteristiche e la riduzione del debito tecnico migliora la stabilità del prodotto
  • Le aziende più innovative e le organizzazioni più performanti si sforzano sempre di essere migliori e non si considerano mai “mature” o “fatte” con il loro percorso di miglioramento o trasformazione.
  • I performer comprendono che non devono scambiare velocità per stabilità o viceversa, perché costruendo la qualità ottengono entrambi.
  • La teoria delle code in matematica ci dice che quando l’utilizzazione si avvicina al 100%, i tempi di consegna si avvicinano all’infinito – in altre parole, una volta raggiunti livelli molto alti di utilizzo, i team impiegano esponenzialmente più tempo per fare qualsiasi cosa.
  • Non premiare gli sviluppatori per la produttività e le operazioni per la stabilità: questo è un contributo chiave al “muro di confusione” in cui lo sviluppo lancia un codice di scarsa qualità sul muro alle operazioni e le operazioni mettono in atto dolorosi processi di gestione del cambiamento come un modo per inibire il cambiamento.
  • Le questioni relative alle prestazioni di consegna del software forniscono una forte argomentazione contro l’outsourcing dello sviluppo di software strategico per la vostra azienda, e invece portano questa capacità nel cuore della vostra organizzazione.
  • La maggior parte dei software utilizzati dalle aziende (come i software di produttività per ufficio e i sistemi di gestione stipendi) non sono strategici e in molti casi dovrebbero essere acquisiti utilizzando il modello di software come servizio. Distinguere quale software è strategico e quale no, e gestirli in modo appropriato, è di enorme importanza.
  • Un obiettivo chiave della consegna continua è cambiare l’economia del processo di consegna del software, in modo che il costo di espulsione delle modifiche individuali sia molto basso.
  • Nelle organizzazioni burocratiche i team tendono a concentrarsi sugli obiettivi dipartimentali piuttosto che su quelli organizzativi. Pertanto, lo sviluppo si concentra sulla produttività, i test sulla qualità e le operazioni sulla stabilità. Tuttavia, in realtà questi sono tutti risultati a livello di sistema e possono essere raggiunti solo attraverso una stretta collaborazione tra tutti i soggetti coinvolti nel processo di consegna del software.
  • Utilizzando il principio di lavorare in piccoli lotti e costruire qualità, i team ad alte prestazioni mantengono le filiali di breve durata (meno di un giorno di lavoro) e le integrano frequentemente nel trunk / master. Ogni modifica innesca un processo di compilazione che include l’esecuzione di unit test. Se qualsiasi parte di questo processo fallisce, gli sviluppatori lo risolvono immediatamente.