Il “Lean Software”, che potremmo tradurre in italiano con “lo sviluppo software agile”, rappresenta un insieme di principi e pratiche utilizzate per realizzare dei software in maniera agile e smart. DevOps è una metodologia che integra e automatizza il lavoro di sviluppo software (Dev) e le operazioni IT (Ops), con l’obiettivo di migliorare e accorciare il ciclo di vita dello sviluppo dei sistemi.
DevOps e Lean Software sono di fatto approcci complementari e hanno il fine di sviluppare software nella maniera più agile ed efficiente possibile. Questo libro esplora il modo in cui i team di sviluppo software che utilizzano metodologie “Lean Software” e “DevOps” possono misurare le proprie prestazioni e come le prestazioni dei team di ingegneria del software influiscono sulle prestazioni complessive di un'organizzazione.
È attraverso il miglioramento della nostra capacità di consegnare software e parti di software velocemente che le organizzazioni possono fornire funzionalità più rapidamente, fare variazioni quando necessario, rispondere alle modifiche di conformità e sfruttare il feedback dei clienti esistenti per attirarne di nuovi.
La prima cosa importante da capire, quindi, è che al giorno d’oggi è importante accelerare, o comunque tenere il piede premuto sull’acceleratore se già stiamo procedendo rapidamente. Viviamo in un mondo in cui il successo è spesso consentito dall'innovazione tecnica, pertanto dobbiamo cercare metodi per creare in azienda la cultura, l'approccio e la velocità giusti per supportare una rapida creazione di valore per il cliente, al fine di rimanere competitivi.
Le aziende in generale devono sopportare molta pressione per adattarsi al mondo che cambia, e devono sfruttare la tecnologia e l'innovazione per competere in questa nuova era di cambiamenti che avvengono a velocità esponenziale. La chiave per un cambiamento di successo, in uno scenario del genere, è anzitutto comprendere con accuratezza quali elementi è bene misurare e quali sono invece meno importanti. Perché per trovare una soluzione serve fare un’analisi, e per poter compiere un’analisi, servono i dati giusti.
Una prima indicazione in proposito è quella di focalizzarsi sui modelli basati sulle capacità, piuttosto che sulla maturità. Un Modello di Maturità è un modello usato per misurare la maturità di un’organizzazione, dove per “maturità” si intende la capacità di un'organizzazione di migliorare continuamente in una particolare disciplina. Questi modelli, però, presuppongono che si possa arrivare a uno stato delle cose “finito”, “terminato”, anziché focalizzarsi sullo stabilire dei meccanismi volti al miglioramento continuo. I Modelli di Maturità sono spesso troppo prescrittivi e non si adattano bene alle esigenze dinamiche dell’organizzazione, perché tendono a definire processi e capacità tecnologiche statiche e non si adattano quindi al panorama tecnico in costante evoluzione dei giorni nostri.
Un Modello di Capacità invece è un insieme integrato e completo di tutte le capacità aziendali, una sorta di scomposizione di ciò che un’azienda fa e può fare espresso in un raggruppamento logico e granulare. È quindi il risultato dell’architettura aziendale ed è una base di partenza fondamentale per la trasformazione aziendale. I Modelli di Capacità aiutano a identificare cosa fa un’azienda e illustrano i risultati e gli effetti associati alle capacità. Si basano su risultati misurabili, misurati, e che lasciano molto meno spazio all’interpretazione e all’incertezza.