Close

DevOps e Agile a confronto

Quali sono le differenze e le somiglianze tra Agile e DevOps?

Foto di Tom Hall
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.

Icona nodo centralizzato
Materiale correlato

Scopri di più sul framework CALMS

Icona della struttura nella mente
Materiale correlato

Scopri di più sulla storia di DevOps

I quattro valori fondamentali del Manifesto Agile

Meeple che guardano un flusso di lavoro di sviluppo software

Individui e interazioni
al di sopra di processi e strumenti

Cartella aperta con ticket completati

Software di lavoro
al di sopra di una documentazione completa

Meeple che lavorano sulla piattaforma

Collaborazione con i clienti
al di sopra della negoziazione del contratto

Sfera di cristallo

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). Per "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 dell'accettazione degli errori sono le basi di una mentalità sperimentale. Per "misurazione" si intende la pratica di misurare i risultati per migliorare i processi. Con "condivisione" si intende infine sottolineare l'importanza di DevOps come lavoro e adozione di best practice di gruppo.

Le tre vie per DevOps

Unione dei pezzi di un puzzle

Pensiero sistemico
Capire che le applicazioni software sono sistemi complessi

Puntatore del browser con icona di riproduzione

Amplificazione dei cicli di feedback
Migliorare la comunicazione bidirezionale tra i membri del team

Meeple che guardano un flusso di lavoro di sviluppo software

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.

Tom Hall
Tom Hall

Tom Hall è DevOps Advocate e Practitioner, lettore vorace e pianista dilettante.
Tra i traguardi degli ultimi 20 anni vanta certificazioni Novell, EMC, VMware e AWS. Dal 2016 aiuta a organizzare i DevOpsDays ad Atlanta e ad Austin, Texas.


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.

Illustrazione su Devops

Community DevOps

Illustrazione su Devops

Percorso di apprendimento DevOps

Illustrazione di una mappa

Inizia gratis

Iscriviti alla nostra newsletter DevOps

Thank you for signing up