Intervista a Marco Castellani, CTO for Innovation, Agile Coach e DevOps Expert

Tempo di lettura di 4 minuti

I segreti di una metodologia rivoluzionaria: DEVOPS.

DevOps, una combinazione di sviluppo (DEV) e operazioni (OPS), è l'unione di persone, processi e tecnologia per offrire continuamente valore ai clienti. Il modello DevOps fa riferimento a un'ampia gamma di pratiche correlate allo sviluppo e all'utilizzo di codice software negli ambienti di produzione in data center sul cloud.

Abbiamo intervistato il nostro Marco Castellani, CTO for Innovation, Agile Coach e DevOps Expert, che ci ha parlato approfonditamente dell'importanza di un approccio culturale aziendale che vada nella giusta direzione e che faccia risparmiare alle aziende settimane di lavoro. In questa intervista potrai trovare esempi concreti di successo, suggerimenti pratici e aspetti da tenere in considerazione per coloro che stanno valutando di avvicinarsi al mondo di DevOps, con particolare attenzione agli elementi di base e alle opportunità offerte dalla tecnologia cloud, nel contesto più ampio della trasformazione digitale.

Ciao Marco, oggi parleremo della metodologia DevOps e dei benefici che può apportare nei processi di sviluppo. Tuttavia, prima di iniziare, potresti condividere qualche informazione utile su di te?

img_marco

"Certamente, sono Marco Castellani e da circa quindici anni mi occupo di tecnologia, innovazione tecnologica e metodologie Agili. Negli ultimi anni, ho concentrato la mia attenzione sull'innovazione nell'ambito dell’infrastruttura, e in particolare su DevOps, che considero l'innovazione principale nel campo, in quanto offre vantaggi che, a mio parere, meritano di essere esplorati."

 

 

Bene, entriamo nel dettaglio. Cos'è la metodologia DevOps e perché la consigli?

"Il primo vantaggio, che ritengo fondamentale, è avvicinare le Operation ai Developer, creando un'unità più coesa nel team di lavoro e promuovendo una maggiore sinergia negli obiettivi attraverso le pratiche devops. Questo approccio permette sia al processo di sviluppo che a quello infrastrutturale di procedere di pari passo, evitando eventuali divari tecnologici e consentendo ai team di avere una visione completa del ciclo di sviluppo del software, garantendo così una migliore esperienza all’utente finale.

Grazie a DevOps, si favorisce l'innovazione tecnologica e si ottimizzano le risorse, poiché i processi di sviluppo vengono automatizzati e standardizzati in modo agile, risparmiando tempo prezioso che può essere investito in nuovi obiettivi di business."

Quali sono i principali problemi che questa metodologia si propone di risolvere?

"In primo luogo, DevOps mira a superare il divario tra i vari reparti coinvolti, consentendo a diverse figure professionali di lavorare in sinergia e in modo agile per migliorare i servizi e sfruttare appieno le ultime tecnologie disponibili.

Un aspetto non meno rilevante, soprattutto in termini di risultati immediati, è la riduzione degli errori di configurazione e dei tempi di deploy. DevOps pone un forte accento sull'automazione; un piccolo investimento iniziale nella creazione di processi automatizzati consente di risparmiare tempo e risorse, evitando la necessità di effettuare costose operazioni di manutenzione o di gestire incompatibilità tra le diverse installazioni."

Fun Fact: "Fino a qualche tempo fa, era prassi degli sviluppatori non fare rilasci di venerdì, per paura che qualcosa andasse storto e richiedesse lavoro nel fine settimana. Grazie alla cultura DevOps e agli automatismi, il rilascio può essere effettuato serenamente anche più volte al giorno, dato che abbiamo la garanzia che ciò che funziona in ambiente di test funziona anche in ambiente di produzione."

Ottimo! Quindi possiamo rassicurare il team, dato che i weekend sono al sicuro. Da un punto di vista più tecnico, quali figure vengono coinvolte e quali nuove professionalità possono emergere?

"Il termine DevOps copre un'ampia gamma di competenze ed è talvolta utilizzato in vari contesti, all'interno del framework agile, ma il concetto fondamentale è quello di unire le cosiddette "operations" con lo sviluppo. Il DevOps Engineer è colui che si dedica a integrare la parte tecnologica e infrastrutturale (spesso chiamata "sistemistica") all'interno del Team. Tuttavia, le "operations" non si limitano solo all'aspetto della distribuzione, ma ci sono altre dimensioni coinvolte, come la sicurezza. Per garantire la sicurezza, emergono figure chiamate DevSecOps, soprattutto in settori in cui la sicurezza è di fondamentale importanza, come le istituzioni finanziarie o i sistemi di scambio."

Hai dei casi di successo o dei risultati di alcuni progetti che vorresti condividere?

"Senza dubbio, uno dei casi di cui sono particolarmente orgoglioso riguarda uno dei primi progetti in cui abbiamo affrontato una soluzione estremamente complessa, composta da più di ottanta componenti (software e hardware). Inizialmente, il protocollo di installazione richiedeva da 2 a 3 settimane di lavoro da parte di uno sviluppatore per ciascuna installazione, seguite da un periodo di 30-45 giorni. Grazie all'automazione introdotta attraverso DevOps, siamo riusciti a ridurre il tempo necessario a poche ore di lavoro per ogni installazione. Questo ha permesso ai team di concentrare la loro energia sullo sviluppo di nuove funzionalità aziendali. Inoltre, i clienti del nostro partner hanno notato un miglioramento nella qualità dei rilasci e nell'uniformità delle configurazioni. Gli help desk hanno potuto lavorare in un ambiente con configurazioni sempre coerenti e ben documentate. Questo ha comportato un notevole miglioramento nella qualità del lavoro e nei risultati ottenuti nei progetti."

Abbiamo esaminato i numerosi vantaggi di questa metodologia finora, ma esistono situazioni o motivi in cui non consiglieresti il suo utilizzo?

"Non riesco a pensare a situazioni in cui sconsiglierei l'uso di DevOps, poiché lavorare in modo sinergico e rimanere all'avanguardia dal punto di vista tecnologico è sempre un valore aggiunto che offre un evidente vantaggio competitivo. Tuttavia, è importante prestare attenzione a certi aspetti, specialmente considerando che DevOps coinvolge un cambiamento nella mentalità delle persone e insegna un nuovo modo di fare le cose. È fondamentale aver sviluppato una roadmap flessibile che inizi concentrandosi sulle aree più critiche, ma che alla fine fornisca strumenti completi, affidabili e che soddisfino le esigenze di tutti i team di sviluppo, mantenendo un focus su ciascun membro del team, in modo da non lasciare nessuno indietro."

Per concludere, quale sarebbe il consiglio più importante che offriresti a coloro che desiderano introdurre la metodologia DevOps nella propria organizzazione?

"A mio parere, il consiglio più importante è adottare un approccio graduale. È essenziale identificare inizialmente gli elementi che possono apportare il massimo valore, dimostrando in modo tangibile al team che l'innovazione porta a una migliore qualità del lavoro. A seconda del livello di maturità dell'azienda, ciò potrebbe comportare scelte molto diverse. Ad esempio, in aziende che sono tecnologicamente arretrate, potrebbe essere utile creare un team dedicato che sviluppi l'infrastruttura e promuova la cultura necessaria al cambiamento prima di introdurre le figure professionali nell'ambito dello sviluppo del software. In altri casi, potrebbe essere sufficiente promuovere una cultura aziendale favorevole al cambiamento e lasciare ai team la responsabilità di creare i propri strumenti in un contensto di collaborazione.

Per questo motivo, è estremamente importante ottenere il supporto di partner strategici capaci di pianificare una roadmap efficace che aiuti a bilanciare le sfide del cambiamento con i vantaggi che ne derivano. Applicare in modo dogmatico un framework o una metodologia può comportare dei rischi."

Ringraziamo Marco per il tempo che ci ha dedicato!