Nei primi anni 2000, l’utilizzo sempre più diffuso della metodologia Agile ha trasformato il modo in cui sviluppiamo software e altri prodotti (vedi il nostro corso di AgilePM di APMG International al link https://www.hrv-swiss.consulting/02-agilepm/).

Tuttavia, nel giro di pochi anni da quando è diventata un riferimento del settore, è emerso che i team che si occupavano dell’implementazione e della scelta dei prodotti erano stati esclusi da questa implementazione: i processi e i requisiti del team delle operazioni che si occupa dell’implementazione e della gestione dei prodotti software erano stati esclusi da questa rivoluzione. Ciò ha portato all’adozione di DevOps, ha colmato un gap del mondo Agile, che ha consentito l’allineamento tra i team di sviluppo e quelli delle operazioni. I due approcci presentano delle differenze, ma anche molti punti in comune.

La cultura Agile e la cultura di DevOps possono coesistere all’interno di un’organizzazione. Agile è un approccio iterativo alla gestione dei progetti e allo sviluppo del software incentrato sulla collaborazione, sul feedback dei clienti e sui rilasci rapidi. Ha aiutato i team di sviluppo a reagire e adattarsi alle mutevoli condizioni del mercato e alla domanda dei clienti. Nell’approccio Agile, alcune fasi di pianificazione e progettazione vengono eseguite in anticipo, ma lo sviluppo procede a piccoli passi e implica una stretta collaborazione con gli stakeholder. Le modifiche vengono incorporate continuamente e una versione non finale ma utilizzabile del prodotto viene spesso rilasciata più rapidamente rispetto ai prodotti sviluppati con altre metodologie. Ciò offre molti vantaggi, il più importante dei quali probabilmente è la possibilità di correggere in tempo reale il software se questo non soddisfa le esigenze o le aspettative del cliente.

La metodologia Agile vede la sua concretizzazione nel Manifesto Agile, composto da 12 principi basati su quattro valori fondamentali. Possiamo affermare che DevOps ha acquisito le pratiche Agile. Consiste nel prendere le innovazioni dell’approccio Agile e applicarle ai processi operativi. Allo stesso tempo, rappresenta il pezzo mancante di Agile perché alcuni principi di questa metodologia si realizzano nella loro forma più completa solo quando vengono implementate le pratiche DevOps. Ad esempio, nella documentazione Agile esistono diversi riferimenti alla continuous delivery del software, ma poiché nelle pipeline di consegna rientrano anche le questioni legate alle operazioni, la continuous delivery è generalmente considerata come una pratica DevOps. L’amplificazione dei cicli di feedback richiede una migliore comunicazione tra tutti i team. Agile, e in particolare Scrum, agevola questa comunicazione attraverso diversi eventi come le riunioni stand-up quotidiane, le riunioni di pianificazione e le retrospettive. Quali sono le somiglianze e le differenze?

Agile enfatizza la collaborazione tra gli sviluppatori e il team di gestione dei prodotti mentre DevOps coinvolge il team delle operazioni; Agile mette al centro il flusso del software dall’ideazione al completamento del codice mentre DevOps estende il focus alla distribuzione e alla manutenzione; Agile enfatizza lo sviluppo iterativo e in piccoli batch mentre DevOps si concentra maggiormente sull’automazione dei test e dei rilasci; Agile aggiunge struttura al lavoro pianificato per gli sviluppatori mentre DevOps incorpora il lavoro non pianificato comune per i team delle operazioni. Il Manifesto Agile dà esplicitamente la priorità agli individui e alle interazioni, al software funzionante, alla collaborazione con i clienti e alla risposta ai cambiamenti: queste sono chiaramente le stesse priorità di DevOps, che tuttavia in questo approccio si estendono oltre il processo di sviluppo fino a toccare la gestione dei sistemi e delle applicazioni in esecuzione.

In sostanza, gli obiettivi di Agile e DevOps sono gli stessi, ovvero il miglioramento della velocità e della qualità dello sviluppo del software, pertanto non ha molto senso parlare di uno senza l’altro. Molti team hanno trovato un validissimo aiuto nelle metodologie Agile, mentre altri hanno avuto difficoltà a rendersi conto dei vantaggi promessi da tale approccio. Ciò potrebbe dipendere da una serie di motivi, tra cui la mancata comprensione da parte dei team delle pratiche Agile o la loro implementazione non corretta. È anche possibile che l’integrazione dell’approccio DevOps aiuti le organizzazioni che riscontrano difficoltà con Agile a colmare le lacune e a raggiungere il successo sperato. Corso di DevOps Foundation di DevOps Institute al link https://www.hrv-swiss.consulting/it/01-devops-fnd/