Acronimo di Development e Operations, DevOps è un approccio allo sviluppo e all’implementazione di applicazioni in azienda che enfatizza la collaborazione tra il team di sviluppo vero e proprio e quello delle operations, ossia che gestirà le applicazioni dopo il loro rilascio.

Nel modello tradizionale di sviluppo questa collaborazione è limitata: chi sviluppa recepisce all’inizio dello sviluppo i requisiti che il software deve soddisfare, scrive il codice, produce l’applicazione e la testa in un ambiente controllato per poi rilasciarla. Eventuali problemi che impediscano all’applicazione di operare come previsto si evidenziano solo a questo punto, dopo il rilascio definitivo, anche quelli che potevano essere evidenziati direttamente dal team delle operations perché legati al funzionamento quotidiano dell’infrastruttura IT e dei suoi componenti.

L’approccio DevOps mira a eliminare questa distonia introducendo una più stretta collaborazione fra i due team e si è affermato con la diffusione dello sviluppo per le applicazioni cloud e delle architetture software-defined. In entrambi questi ambiti il software ha una concezione modulare e strettamente integrata con i processi aziendali perché questi sono sempre più digitalizzati, uno scenario che rende poco efficace il modello dello sviluppo monolitico e sequenziale.

L’approccio DevOps mira ad accorciare o annullare i cicli di coding-rilascio-test-correzione tipici del metodo di sviluppo software “a cascata” 

Il significato pratico che si dà al termine DevOps non è sempre univoco. In senso stretto è un modello concettuale, un cambiamento culturale che andrebbe adottato in azienda per portarla verso approccio collaborativo, con conseguenze anche nell’organizzazione e nelle procedure di lavoro dei team coinvolti.

Il DevOps migliora i risultati di business, ma l’Italia è indietro

Non è invece una “etichetta” per identificare piattaforme o modelli di sviluppo, anche se spesso per estensione DevOps è usato come sinonimo di Agile Development (AD) e Continuous Delivery (CD). I tre ambiti sono certamente collegati fra loro ma sono anche distinti: DevOps è una evoluzione culturale/organizzativa ad ampio spettro, AD è un modello di sviluppo software, CD un’accezione più pratica e orientata all’automazione di alcuni aspetti dello sviluppo.

Flusso di lavoro DevOps

Un tipico flusso di lavoro nell’approccio DevOps (credits: CC-BY-SA-4.0 di Kharnagy

DevOps richiede ovviamente l’uso di sistemi di sviluppo e gestione delle applicazioni più integrate rispetto al passato e che abbiano anche recepito i modelli di AD e CD. Alcuni software vendor hanno presentato piattaforme per DevOps che cercano di raccogliere tutte le funzioni necessarie. Tra le aziende impegnate in DevOps troviamo RedHat, CA Technologies, HPE e molte altre. E’ anche possibile adottare il modello DevOps facendo cooperare moduli distinti e più mirati, molti dei quali vengono dal mondo open source.

Gli svantaggi dell’approccio DevOps

La filosofia DevOps potrebbe, in alcuni casi, avere però delle controindicazioni. Dovendo coinvolgere più persone, aumentano la complicazioni nell’organizzazione e gestione delle riunioni del team.

Siccome il team è composto da persone eterogenee, ciascuna specialista in campi diversi (sviluppo, gestione sistemi, erogazione dei servizi, responsabili di business…), potrebbe essere necessario impiegare del tempo per spiegare concetti che per alcuni sono scontati, o che in ogni caso non interessano tutti i componenti del gruppo. Per questo, è importante ridurre il team al minimo, e organizzare semmai riunioni in cui partecipano solo le persone direttamente coinvolte nella particolare fase del progetto trattata nel meeting.

La flessibilità nel poter cambiare direzione al progetto in ogni momento, può portare all’aggiunta in corso di così tante modifiche da costringere a rimandare le scadenze dei rilasci. E’ quindi opportuno tenere traccia dell’avanzamento dei lavori e definire milestone inderogabili, fissando a un certo punto le specifiche di ogni fase.