Vantaggi

Come lo stesso nome suggerisce, l’approccio DevOps fonde insieme sviluppo (development) ed operazioni (operations). Nasce per rendere più veloce e controllabile lo sviluppo e l’implementazione di applicazioni in azienda enfatizzando la collaborazione tra team di sviluppo e quello delle operations, ossia i sistemisti che gestiranno 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. Molti problemi che impediscano all’applicazione di operare come previsto si evidenziano solo a questo punto, dopo il rilascio, così come molti di quelli che potevano essere evidenziati direttamente dal team delle operations, perché legati al funzionamento quotidiano dell’infrastruttura IT e dei suoi componenti. Questo approccio mira a eliminare questo contrasto introducendo una più stretta collaborazione fra i due team. 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. Poiché il metodo enfatizza l’individuazione di responsabilità e la collaborazione dentro il team e tra team, questo approccio sta trovandosi a suo agio anche in altri ambiti che necessitino di processi digitali, veloci e controllabili, come per esempio il cloud computing, la agile methodology e i big data: il cloud raddoppia l’effetto DevOps nel software delivery e l’approccio DevOps amplifica l’effetto dell’agilità. Senza questa integrazione, infatti, i vantaggi nello sviluppo della applicazioni verrebbero rallentati se non vanificati. L’adozione delle metodologie Agile e DevOps deve essere guidata dal business, integrata tra i vari team e iterativa. Deve inoltre sfruttare le analisi e i loop di feedback appropriati, per consentire miglioramenti rapidi e costanti, a ogni livello.

Svantaggi

La filosofia DevOps potrebbe, in alcuni casi, avere delle controindicazioni. Dovendo coinvolgere più persone, aumentano le complicazioni nell’organizzazione e gestione delle riunioni del team. Siccome il team è composto da persone eterogenee, ciascuna specialista in campi diversi, 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ò inoltre portare all’aggiunta in corso di così tante modifiche da costringere a rimandare le scadenze dei rilasci. È quindi opportuno tenere traccia dell’avanzamento dei lavori e definire milestone inderogabili, fissando a un certo punto le specifiche di ogni fase.