NEWSLETTER - IL CAFFE' DIGITALE
DevOps, NoOps, LEAN

N. Marzo 2019

a cura di Mauro Biscotti
Senior Associate Consultant, The Innovation Group

 

Cos’è esattamente il DevOps? Tre sono le dimensioni di fondo che possiamo individuare in questo concetto.

La prima è l’automazione spinta del ciclo di vita del software. Il progresso delle tecnologie di virtualizzazione e le piattaforme integrate di sviluppo, consentono di astrarsi sempre più dagli aspetti fisici della soluzione informatica, riconducendo a livello di software parte dei livelli dello stack tecnologico. Questo consente a toolset sempre più sofisticati di rendere standardizzabili e quindi automatizzabili le attività a minor valore aggiunto: costruzione ambienti, test, build, rilascio, distribuzione, controllo configurazione. L’intervento umano può focalizzarsi sempre più sulle fasi di analisi e disegno tecnico/funzionale, sull’esperienza utente e sulla definizione delle logiche di elaborazione dell’informazione.

La seconda è l’abilitazione di un livello elevato di collaborazione e feedback continuo tra Sviluppo e Operations. Nella quasi totalità delle organizzazioni IT, le responsabilità relative alla realizzazione dei software sono separate da quelle relative al suo passaggio in esercizio e successiva gestione, con diversità di obiettivi, metriche di prestazione, cultura tecnica ed operativa. Lo sviluppo subisce tipicamente la variabilità del requisito e la pressione sulle scadenze che il cliente impone, e scende a compromessi sulla qualità e sulla pianificazione delle consegne. Operations necessita di pianificare ed avere stabilità e controllo su tutto ciò che va in produzione, per evitare situazioni di impatto utente, incident e condizioni di continua emergenza. La costruzione di meccanismi di coordinamento e la effettiva condivisione della responsabilità sul risultato finale, consentono il coinvolgimento di operations ancora nelle fasi di disegno e pianificazione dello sviluppo, supportando l’adozione di scelte coerenti con le esigenze di rilascio ed evitando la costruzione di un debito tecnico, scaricato sulla fase finale del processo.

Terza è l’estensione di una logica Agile sull’intera filiera, ovvero la capacità di delegare ad un team stabile, autonomo, responsabile e dedicato tutte le attività necessarie allo sviluppo e messa in produzione, “cortocircuitando” di fatto tutte le fasi del ciclo. Nel modello Agile è la parziale eliminazione di “struttura” dell’operatività di dettaglio, a consentire di conciliare efficienza, flessibilità e velocità, garantendo allo stesso tempo la sostenibilità dal punto di vista del rischio e del controllo. L’adozione dell’Agile tuttavia ha dei prerequisiti organizzativi forti e cambia nei fondamentali la logica con cui è gestita la relazione con il cliente: a questi viene infatti viene demandata la responsabilità di garantire la saturazione del team con un flusso continuo di requisito, “prioritizzato” e di qualità, e di assicurare al team il mantenimento di condizioni ottimali di lavoro.

I vari approcci al DevOps indirizzano in genere tutti e tre gli aspetti, pur in modo più o meno esplicito, mirando ad un ideale scenario di “rilascio continuo” che per molti versi ne implica la contemporanea attuazione.

Esse rimangono tuttavia dimensioni distinte: né l’elevata automazione del processo di sviluppo né l’aumento dell’integrazione organizzativa tra Sviluppo (Dev) e Operations (Ops), debbono necessariamente implicare l’adozione di una logica operativa Agile. Parimenti l’adozione dell’Agile sull’intera filiera non è condizionata necessariamente da toolset e stack tecnologici.

Si può pensare che la dimensione dell’automazione possa essere prevalente, nel senso che riducendo la complessità operativa e le attività a carico di Ops, conduce a scenari piuttosto di “NoOps”, e rende più semplice lo svolgimento delle dinamiche agili. A nostra opinione ha comunque senso considerare tutte e tre le dimensioni, pensando che il DevOps possa essere un modello di validità generale per lo sviluppo delle soluzioni informatiche, anche in assenza di livelli elevati di automazione.

Del resto, l’idea di fondo del DevOps rimane in estrema sintesi il concetto LEAN di ottimizzazione complessiva dell’intero flusso di valore, contrapposto alla ottimizzazione “locale” delle sue parti, da perseguire con ogni strumento e strategia possibile, secondo il contesto.

Categorie
FOCUS CYBER
IL CAFFÈ DIGITALE - ARCHIVIO
@TIG_italia