Cos’è Devops? perchè si parla di 5 CALMS in DevOps?
DevOps è una metodologia che unisce pratiche in grado di strutturare una collaborazione tra team di sviluppo e Operation all’interno di un’organizzazione. Il termine stesso “DevOps” è una combinazione di Development e Operations inteso come approccio collaborativo o condiviso alle attività svolte dai team in questione.
CALMS è un framework che valuta la capacità di un’azienda di adottare i processi DevOps, nonché un modo per misurare il successo durante una trasformazione DevOps. L’acronimo è stato coniato da Jez Humble, coautore di “The DevOps Handbook”, e sta per Culture, Automation, Lean, Measurement e Sharing.
Come si legano i 5 CALMS a Devops?
DevOps è una metodologia volta a migliorare il lavoro durante il ciclo di vita dello sviluppo di un software. È possibile immaginare un processo DevOps come un ciclo infinito, che comprende le seguenti fasi: pianificare, codificare, costruire, testare, rilasciare, distribuire, operare e monitorare.
Il framework CALMS copre tutte le parti interessate all’interno di DevOps, compresi i team di business, IT operations, QA, InfoSec e sviluppo, e il modo in cui collettivamente forniscono, distribuiscono e integrano processi automatizzati che hanno senso per il business.
Il modello CALMS fornisce un buon quadro di riferimento per confrontare la maturità di un team DevOps e, in quanto tale, è prezioso per valutare lo stato dei team in vista del cambiamento trasformazionale che ne consegue.
CALMS è un quadro concettuale per l’integrazione di team, funzioni e sistemi di sviluppo e operativi (DevOps) all’interno di un’organizzazione. Il framework CALMS viene spesso utilizzato come modello di maturità, per aiutare i manager a valutare se la loro organizzazione è pronta per DevOps e, in caso contrario, cosa deve cambiare.
Quali sono i 5 CALMS DevOps
John Willis e Damon Edwards hanno coniato l’acronimo CAMS nel 2010, successivamente ampliato in CALMS da Jez Humble.
CALMS sta per:
- Culture
- Automation
- Lean
- Measurement
- Sharing
Ogni pezzo del puzzle contribuisce al successo di un cambiamento culturale realmente orientato a DevOps.
Vediamo insieme gli aspetti principali dei 5 CALMS.
Culture
C sta per Cultura in quanto il cambiamento culturale può essere considerato il fulcro di ogni trasformazione DevOps. Il cambiamento deve essere abbracciato dal top management e messo in pratica con una guida coerente che dia il buon esempio.
DevOps non è semplicemente un processo o un diverso approccio allo sviluppo, ma un vero e proprio cambiamento culturale. Una parte fondamentale nella cultura DevOps è la collaborazione. Qualsiasi strumento o automazione risulta inutile se i professionisti dello sviluppo e dell’IT/Ops non lavorano insieme: DevOps non risolve problemi legati agli strumenti ma risolve problemi legati ai professionisti, all’aspetto umano di un lavoro.
Perché DevOps non risolve i problemi legati agli strumenti. Risolve i problemi umani.
La condivisione di un obiettivo comune e un piano per raggiungerlo insieme sono due fattori fondamentali nel favorire la collaborazione all’interno dei team e tra diversi team, obiettivo stesso della metodologia DevOps. Le aziende di maggior successo sono a favore dell’applicazione della cultura DevOps in tutti i dipartimenti e a tutti i livelli dell’azienda, perché DevOps non è il lavoro di un team, ma è il risultato della collaborazione di tutti i team coinvolti.
Automation
Oltre ad aumentare velocità e qualità delle consegne, l’automazione è la parte più importante di DevOps: consente infatti di fornire valore più velocemente e con qualità superiore, obiettivo principale della metodologia. L’automazione è fondamentale e va sfruttata il più possibile per diversi motivi:
- Aiuta a eliminare lavori manuali e ripetitivi e a creare sistemi affidabili per il loro svolgimento: i computer, infatti, svolgono test più rigorosi e affidabili rispetto alle persone permettendo di individuare bug e falle di sicurezza più velocemente.
- L’automazione permette di svolgere in modo automatico i lavori più semplici lasciando tempo per lavoro di più alto valore per cui è indispensabile l’apporto umano.
Lean
Quando parliamo di Lean ci riferiamo a due aspetti molto diversi: cultura e automazione.
Se da un lato c’è l’aspetto astratto di DevOps, la filosofia che lo contraddistingue, dall’altro abbiamo il suo aspetto più pratico, ovvero quello dell’automazione.
Una mentalità DevOps riconosce ovunque opportunità di continual improvement.
Alcune sono ovvie, come tenere regolari retrospettive per migliorare i processi del team, mentre altre sono più sottili, come il test A/B di diversi approcci di onboarding per i nuovi utenti del prodotto.I membri del team sono in grado di visualizzare il lavoro in corso (WIP), limitare le dimensioni dei lotti e gestire la lunghezza delle code.
Measurement
La misurazione dei dati è in generale un aspetto fondamentale per poter effettuare delle scelte, e per quanto riguarda DevOps l’attenzione viene posta esclusivamente su determinate metriche.
L’iterazione rapida funziona solo se si sa dove si sta andando, ed è perciò necessario avere consapevolezza per quanto riguarda i dati: misurare e tenere traccia di ciò che viene svolto nel processo di sviluppo di un software è un prerequisito non negoziabile per prendere decisioni basate sui fatti.
Per questo motivo, le organizzazioni disciplinate e ben organizzate raccolgono dati su tutto.
Avere una grande quantità di dati aiuterà il vostro team a prendere decisioni, tuttavia questi dati si riveleranno ancora più utili se saranno condivisi anche all’esterno con altri team dell’organizzazione per creare roadmap chiare e ricevere il sostegno da tutti i team coinvolti nel processo e, se necessario, da tutti gli stakeholder in generale.
Sharing
Infine troviamo la S di sharing:
La condivisione delle conoscenze e delle best practice acquisite durante l’intero processo è un aspetto fondamentale per poter concludere con successo un progetto perché permette un lavoro di collaborazione. La collaborazione fra le varie parti porta a un generale innalzamento del rendimento dell’azienda. Una cultura che supporta la condivisione costante favorisce l’apprendimento continuo.
In conclusione
Da questo sistema dei CALMS nasce una nuova concezione di collaborazione tra programmatore e sistemista in un’azienda. Lavorando insieme durante tutto il ciclo di produzione di un’applicazione si crea un ambiente in cui è possibile auto-organizzare la produzione. La concezione diffusa di lavorare per dipartimenti può andare bene per alcune realtà ma non per tutte. In sintesi, DevOps consiste nel trasformare la cultura dell’organizzazione in modo che:
- Ci si muova più velocemente
- Sia più efficiente
- Collaborare in modo più efficace
- Si rifletta nei cinque principi (cultura, automazione, snellezza, misurazione, condivisione)
Il lavoro di uno sviluppatore è basato sull’apprendimento costante, dato dalle tante sfide che con un ambiente collaborativo agevolano la riduzione del tempo che intercorre fra la produzione e la consegna finale.
Se si decide di adoperare i 5 pilastri CALMS DevOps la collaborazione durante tutto il ciclo di produzione porterà inevitabilmente a risultati migliori tangibili.
Leggi anche la nostra intervista ITIL vs DevOps, con il trainer esperto Xavier Heusdens sulla sua esperienza con entrambe le metodologie.
Leggi anche la nostra intervista all’esperto DevOps e le 5 cose da sapere su DevOps.
Vuoi saperne di più? QRP International offre formazione Devops. Contattaci per maggiori informazioni.