Articoli
Tutorial
Guide interattive
DevOps e Agile a confronto
Quali sono le differenze e le somiglianze tra Agile e DevOps?
Tom Hall
DevOps Advocate & Practitioner
Nei primi anni 2000, l’adozione sempre più diffusa della metodologia Agile ha trasformato il modo in cui sviluppiamo software e altri prodotti. Tuttavia, nel giro di pochi anni da quando è diventata uno standard del settore, è emerso un nodo di importanza critica: 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, un approccio che ha consentito l'allineamento tra i team di sviluppo e quelli delle operazioni. Quindi DevOps ha sostituito l'approccio Agile? O si completano a vicenda? È emerso che i due approcci presentino delle differenze, ma anche dei punti in comune. L'approccio Agile e DevOps possono essere sia esclusivi che inclusivi ed entrambi possono coesistere all'interno di un'organizzazione.
Cos'è Agile?
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 preso piede nei primi anni 2000 dal settore dello sviluppo software e 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 utilizzabile del prodotto viene spesso rilasciata più rapidamente rispetto ai prodotti sviluppati attraverso la metodologia a cascata. 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.
Agile è un insieme di metodologie, non un unico approccio allo sviluppo. È un'aggregazione di scrum, eXtreme Programming (XP) e altri sistemi di pratiche che gli sviluppatori hanno utilizzato negli anni precedenti e che sono il risultato della collaborazione di questi professionisti verso l'unificazione di tali approcci in un unico insieme di principi. Il risultato di questo lavoro di unificazione è stato il Manifesto Agile, composto da 12 principi basati su quattro valori fondamentali.
Materiale correlato
Scopri di più sul framework CALMS
Materiale correlato
Scopri di più sulla storia di DevOps
I quattro valori fondamentali del Manifesto Agile
Individui e interazioni
al di sopra di processi e strumenti
Software di lavoro
al di sopra di una documentazione completa
Collaborazione con i clienti
al di sopra della negoziazione del contratto
Risposta al cambiamento
al di sopra della fedeltà ai piani
DevOps entra in scena
DevOps è un approccio allo sviluppo software che consente ai team di creare, testare e rilasciare software in modo più rapido e affidabile incorporando principi e pratiche Agile, come una maggiore automazione e una migliore collaborazione tra i team di sviluppo e delle operazioni. Le attività di sviluppo, test e distribuzione rientrano sia nella metodologia Agile che in quella DevOps. Eppure, l'approccio Agile tradizionale non abbraccia del tutto le operazioni, che invece sono parte integrante di DevOps.
L'obiettivo di DevOps è quello di favorire la collaborazione tra gli sviluppatori che scrivono software applicativi e gli addetti alle operazioni che eseguono il software nell'ambiente di produzione e di creare e gestire l'infrastruttura in cui viene eseguito. DevOps sostituisce il vecchio approccio in cui i team di sviluppo scrivono le applicazioni per poi passarle ai team delle operazioni che distribuiscono e gestiscono il software con una visibilità minima su come è stato sviluppato. In un ambiente DevOps, i team di sviluppatori e quelli delle operazioni lavorano fianco a fianco durante l'intero processo di sviluppo, distribuzione e gestione delle applicazioni.
Due framework comuni per comprendere DevOps sono "Three Ways" e "CALMS", acronimo di Culture, Automation, Lean, Measurement e Sharing (Cultura, Automazione, Lean, Misurazione e Condivisione). Con il termine cultura si intende il cambiamento culturale in cui i team di sviluppo e delle operazioni lavorano in modo più coeso. L'automazione aumenta la velocity e garantisce una qualità superiore. I principi Lean del miglioramento continuo e l'accettazione degli errori sono le basi di una mentalità sperimentale. Con il termine misurazione si intende la pratica di misurare i risultati per migliorare i processi. Con il termine condivisione si intende sottolineare l'importanza di DevOps come lavoro di gruppo e adozione di best practice.
Le tre vie per DevOps
Pensiero sistemico
Capire che le applicazioni software sono sistemi complessi
Amplificazione dei cicli di feedback
Migliorare la comunicazione bidirezionale tra i membri del team
Cambiamento culturale
Cultura della sperimentazione e dell'apprendimento continui
Quando Agile e DevOps lavorano insieme?
DevOps può essere considerato come un'evoluzione delle pratiche Agile o come il pezzo mancante di 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 più 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 diverse cerimonie come le riunioni stand-up quotidiane, le riunioni di pianificazione e le retrospettive.
Quali sono le somiglianze/differenze tra Agile e DevOps?
- Agile enfatizza la collaborazione tra gli sviluppatori e il team di gestione dei prodotti. DevOps coinvolge il team delle operazioni
- Agile mette al centro il flusso del software dall'ideazione al completamento del codice. DevOps estende il focus alla distribuzione e alla manutenzione
- Agile enfatizza lo sviluppo iterativo e in piccoli batch. DevOps si concentra maggiormente sull'automazione dei test e dei rilasci
- Agile aggiunge struttura al lavoro pianificato per gli sviluppatori. 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.
Inoltre, i Dodici principi del software Agile includono riferimenti ai principi DevOps. Ad esempio, l'enfasi su continuous integration e continuous delivery, la suddivisione del lavoro in piccoli batch con rilasci frequenti e l'utilizzo dell'automazione sono tutti elementi che ritroviamo nei Dodici principi del software Agile.
In conclusione... Agile E DevOps
In definitiva, 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.
Atlassian connette i team di sviluppo, delle operazioni IT e dell'approccio Agile con una toolchain aperta che espande l'offerta di prodotti Atlassian e di strumenti di terze parti. DevOps di Atlassian offre tutto ciò di cui hanno bisogno i team per sviluppare e utilizzare il software. Provalo subito.
Condividi l'articolo
Argomento successivo
Letture consigliate
Aggiungi ai preferiti queste risorse per ricevere informazioni sui tipi di team DevOps e aggiornamenti continui su DevOps in Atlassian.