Introdurre metodologia DevOps in azienda

Se pensando a DevOps ti vengono in mente solo i relativi tool, stai perdendo di vista una parte importante del processo. Il termine DevOps, infatti, non indica una tecnologia o un framework. Si tratta piuttosto di una metodologia, che mette assieme una serie di principi i quali costituiscono la cultura DevOps. L’obiettivo? Accelerare il time to market, rispondere ai cambiamenti del mercato e alle richieste del business con miglioramenti incrementali e creare un processo di sviluppo del codice più semplice ed efficiente.

Il termine è un portmanteau di due aree aziendali che tradizionalmente sono sempre state separate: Development e Operations. La cultura DevOps si appoggia su una metodologia progettata per accelerare il ciclo di rilascio del software, ridurre gli scarti e migliorare l'esperienza dell'utente finale dopo ogni rilascio.

La prima difficoltà che si affronta in azienda quando si intende introdurre DevOps è la resistenza interna. Nella nostra esperienza, la maggior parte delle volte questa avversità dipende da un fraintendimento di base su cosa davvero comporti adottare pratiche e cultura DevOps.

Vediamo allora alcuni consigli che favoriscono l’adozione di DevOps e permettono di trarre davvero vantaggio da questo approccio.

 

La cultura DevOps è collaborazione

In un’organizzazione che usa DevOps, team piccoli, multidisciplinari e autonomi lavorano in modo collaborativo tra i team di sviluppo, QA (Quality Assurance) e messa in produzione con responsabilità condivisa su tutto il processo.

Infatti il primo punto è proprio la collaborazione tra i team, e qui la tecnologia gioca un ruolo chiave. Tutti gli strumenti per tenere insieme il team e metterlo in grado di comunicare, da Slack a Teams fino a Zulip, sono fondamentali.

Ma è altrettanto importante l'automazione di tutto quello che è possibile automatizzare. Così facendo si facilita la collaborazione e si eliminano gli attriti grazie a processi più lineari e veloci. L'automazione di attività come i test, la configurazione e la distribuzione del software consente al team di concentrarsi su altre attività più importanti e riduce anche la possibilità di errori umani.

Bonus: gli script e i test per l'automazione nel corso del tempo diventano anche un'ottima documentazione del sistema a cui si sta lavorando.

DevOps significa responsabilità condivise

Con DevOps è necessaria anche una ridefinizione dei ruoli e delle responsabilità del team.

Se il team che si occupa dello sviluppo, quando ha finito, passa la responsabilità del progetto a chi si occupa della gestione e della manutenzione, è facile che se ne disinteressi. Se invece quel team si deve prendere carico in parte anche del ciclo di vita del progetto, allora ne sente di più la responsabilità e la difficoltà operativa, e si preoccupa di identificare modi per semplificarne la messa in produzione e la manutenzione.

Anche per questo essere tutti responsabili del risultato finale è importante.

LEGGI ANCHE: Containerizzazione delle applicazioni: cosa devi sapere

Apprendimento costante delle pratiche DevOps

Altro aspetto da non sottovalutare è la mentalità, che non deve essere distruttiva ma di partecipazione. Si deve passare da una forma mentis in cui se si rompe una parte del codice "si punta il dito", cercando il responsabile, a una che veda invece l’errore come una lezione da cui imparare e migliorare continuamente.

Un clima che invita a un costante apprendimento è la base per lo sviluppo di una cultura basata sul "fail fast": si provano soluzioni nuove molto velocemente e si scopre subito se funzionano o no, pronti a ripartire verso un'altra direzione dopo aver imparato qualcosa di utile. L'errore è la metà visibile del processo, dietro però ci deve essere l'apprendimento di insegnamenti che arricchiscono tutto il team.

LEGGI ANCHE: Le best practice DevOps da conoscere

Feedback continuo con le giuste modalità

I processi di miglioramento continuo di cui abbiamo appena parlato sono basati anche su un feedback costante e cadenzato. Dopo ogni iterazione il feedback (rispettoso, onesto e chiaro) di tutti è la base per poter proseguire crescendo.

A tal proposito occorre che si instauri un clima di scambio costante, con meeting ben cadenzati e regolari in cui tutti abbiano la di libertà di esprimersi. Ogni singolo membro del team deve sentirsi sicuro nel poter dire quel che pensa.

Per questo avere un sistema di comunicazione interno (come i già citati Slack, Teams o Zulip) che permetta a ciascuno di restare agganciato, ascoltare e contribuire, è fondamentale. Un grande valore aggiunto offerto da queste piattaforme sta nella facilitazione del lavoro di team in remoto e distribuiti, tema sempre più cruciale dopo la pandemia da Covid-19 e ormai realtà quotidiana di tantissime aziende.

Per i team distribuiti possono risultare utili anche Retrium, tool che permette di organizzare una retrospettiva di valore, e Miro, piattaforma che aiuta a condurre dei meeting organizzati grazie alla funzione di lavagna condivisa.

Questo mindset di collaborazione e apertura comporta anche un profondo cambiamento nella gerarchia dell'azienda e dei gruppi, che così si appiattisce, superando modelli di organizzazione ormai obsoleti e poco adatti ad accogliere l’innovazione. Dalla base al vertice i passaggi diventano pochi, e i cancelli della comunicazione, oltre a quelli della percezione, restano sempre aperti.

Alla cultura DevOps servono tempo e KPI misurabili

Se si vuole che porti ai risultati sperati, le cultura DevOps deve essere introdotta a tutti i livelli. Il consiglio con cui vogliamo lasciarti è: concedi il giusto tempo alle persone e ai team. Come abbiamo detto all’inizio, si tratta di una metodologia che comporta cambiamenti anche importanti, e ci vuole del tempo perché venga integrata nel team. Ma dopo i primi passi, DevOps comincia a portare benefici.

A tal proposito è fondamentale, in una strategia DevOps, impostare in fase iniziale i KPI per valutare il successo dell'operazione dopo un tempo prestabilito. Di seguito ne riportiamo alcuni, ma è molto importante che i KPI vengano studiati ad hoc per la tipologia di soluzione e che vengano considerati solo quelli di valore per l’applicativo, tralasciando quelli secondari.

Ecco i KPI che più comunemente vengono monitorati:

  • La frequenza di deploy in produzione;
  • Il tempo di deploy in produzione;
  • Il "mean time to failure" (il tempo che intercorre tra gli errori in produzione) e il "mean time to recovery" (il tempo che ci vuole per recuperare dopo un errore);
  • Lead time, ovvero il tempo che intercorre tra l’avvio della lavorazione di un elemento fino al deployment;
  • Error rates, che includono bug e problemi di produzione.

Il vero valore di DevOps

DevOps è una strategia basata su interazioni continue e automatizzate al massimo (Continuous Integration, Delivery, Testing e Monitoring) che fanno svanire i confini tra sviluppo, QA e produzione. I team sono messi in condizione di accelerare significativamente i tempi di sviluppo e rilasciare più spesso nuove funzionalità per gli utenti, creando una sempre migliore user experience.

È un approccio consolidato, diventato negli ultimi anni uno standard de-facto per la produzione di software moderna, nonché un fattore di vantaggio competitivo sempre più necessario al business digitale. In fin dei conti, DevOps aiuta le organizzazioni a creare relazioni di fiducia con i loro clienti, fornendo velocemente a questi ultimi applicazioni sicure e costantemente aggiornate. E in fondo, è proprio nella capacità di creare questa fiducia che si rispecchia il vero valore di un’azienda oggi.

New call-to-action