Sponsored Story

DevOps e agile: ecco come migliorare i processi di produzione in azienda

Breve viaggio attraverso le metodologie agile e DevOps che promettono di migliorare la qualità dello sviluppo software e la produttività dell’IT, accelerando il rilascio di nuove applicazioni e servizi digitali aziendali a misura del time-to-market

Pubblicato il 23 Gen 2023

DevOps e Agile

Per garantire il time-to-market nei progetti aziendali che dipendono dai tempi di rilascio di applicazioni e servizi digitali è oggi importante applicare le metodologie appropriate, a cominciare da agile e DevOps. Agile aiuta a sviluppare progetti in modo incrementale, riducendo gli oneri e le rigidità delle analisi iniziali, favorendo l’incorporazione continua d’innovazione. Fondendo in modo coerente sviluppo del software e operation IT, DevOps (e DevSecOps che comprende la sicurezza) industrializza l’IT allineando i processi come in una catena di montaggio per gestire, senza soluzione di continuità, i cicli di creazione, test e rilascio delle applicazioni come oggi è richiesto dall’evoluzione dei business. Agile e DevOps hanno il potenziale per migliorare i processi IT aziendali, come ci spiegano Paolo Paganelli, executive vice president e Paolo Sito, business developer di Present.

Il metodo agile nella gestione dei nuovi progetti software

I mercati in cui operano le aziende sono oggi sempre meno prevedibili e le capacità di adattare processi, software e servizi sono la chiave per la competitività nel business. Il metodo agile, correttamente utilizzato in alternativa al più tradizionale waterfall, offre vantaggi nella gestione di progetti complessi che hanno requisiti destinati ad evolvere nel tempo. Agile fa questo attraverso una serie di processi formali basati sull’iterazione oltre ai ruoli organizzativi specifici di scrum master, product owner e gli sviluppatori.

Nello sviluppo software, la metodologia agile aiuta ad assegnare le priorità e a concentrare l’attenzione sulle funzionalità sostanziali del progetto, a vantaggio di ciò che può essere rilasciato agli utenti più rapidamente. Questo va a vantaggio del go-to-market dell’applicazione, concentra l’impegno dei team su ciò che ha più valore per il business aziendale. Aiuta inoltre ad ottenere in fase precoce i feedback sui problemi, consentendo ai responsabili del prodotto di prendere decisioni rapide e appropriate.

Agile comprende una molteplicità di framework (tra questi: Extreme Programming, Feature Driven Development, Kanban, Scaled Agile Framework e altri) con le specificità adatte a differenti campi applicativi. Hanno in comune il supporto di un processo decentralizzato di cambiamento che si basa su sprint, ossia su più iterati. Le major release dotate di molte funzionalità possono richiedere, in media, 5-6 sprint per essere completate, mentre ne bastano 1 o 2 per aggiornamenti minori o modifiche che riguardano sistemi d’esecuzione, librerie o correzioni dei bug.

“Purtroppo, agile è una parola inflazionata e spesso fraintesa” commenta Paolo Sito. “Molti project manager sono convinti che lavorare in modo agile significhi non disporre di pianificazioni quando, all’opposto, agile introduce un approccio rigoroso che prevede la pianificazione. Per applicarlo serve una buona conoscenza con almeno uno dei framework disponibili”.

Aumentare la produttività dell’IT con il DevOps

Una delle sfide per le aziende che sviluppano software e creano in proprio servizi digitali per gli utenti interni o loro clienti è ridisegnare le software factory e le operation IT per aumentare l’automazione e i livelli di produttività. La metodologia DevOps (o DevSecOps quando integra la security) è concepita per industrializzare la catena di produzione del software attraverso un migliore collegamento tra lo sviluppo e le operation IT, sia sul fronte dei tool utilizzati per le varie fasi, sia dei team che le realizzano.

Per implementare DevOps serve integrare le piattaforme di sviluppo, di rilascio, di monitoraggio e gestione in uso presso i diversi reparti IT. Serve completare o implementare cicli completi di continuous integration e continuous deploy (CI/CD) per rendere rapidi i rilasci. Dal lato delle operation, servono infrastrutture IT flessibili capaci di rendere disponibili risorse d’elaborazione, rete e storage virtualizzate facilmente gestibili nelle modalità software defined, sia che si tratti di risorse on-premise sia di servizi in cloud.

La capacità di sfruttare software containerizzato e orchestratori come Kubernetes consente l’esecuzione dei job applicativi su infrastrutture diverse, evitando i lock-in nei confronti dei sistemi o dei servizi di terze parti. L’automazione dei processi CI/CD si accompagna con quelli di test, dei controlli di sicurezza (nel DevSecOps) dei rilasci e deploy in staging e produzione.

Chi ha dimestichezza con l’ambiente di sviluppo delle grandi imprese può immaginare le difficoltà nell’implementare nel modo completo le pratiche DevOps. “L’adozione di DevOps va vista come un lungo viaggio alla ricerca delle aree d’intervento e di miglioramento” spiega Sito. “Per questo è fondamentale stabilire il livello dei differenti processi e delle competenze, identificare l’area dove avviare iniziative pilota”. In molte realtà possono essere ottenuti grandi miglioramenti di produttività lavorando sul delivery del software o delle infrastrutture.

L’impatto di agile e DevOps su competenze e organizzazione

Agile e DevOps insieme cambiano il modo di progettare, sviluppare e mettere in produzione le applicazioni. L’adozione di questi metodi richiede l’acquisizione di nuove competenze e cambiamenti culturali a livello delle persone. I team di sviluppo e di operation (sicurezza nel caso del DevSecOps) devono essere in grado di cooperare con l’unico obiettivo di raggiungere gli scopi di business o la soddisfazione degli utenti finali. Lavorare assieme richiede necessariamente la condivisione di alcune competenze, per esempio, di creazione, delivery e gestione del nuovo software a microservizi, progettato per ambienti cloud e ibridi.

L’automazione introdotta da DevOps evita le interruzioni tra i processi di rilascio, test e produzione abolendo passaggi manuali di documenti, spesso anche cartacei, tra i team responsabili delle varie fasi di lavoro. DevOps favorisce le codifiche formali delle procedure di controllo, di test e di dettaglio dei requisiti operativi, permettendo una più facile gestione di versioni e aggiornamenti. Il risultato è la riduzione degli errori umani, software e servizi di più alta qualità nei tempi funzionali al time-to-market.

La formazione degli sviluppatori resta un aspetto chiave. “Introdurre metodologia DevOps richiede un percorso di crescita – spiega Paolo Paganelli, executive vice president di Present -. C’è la necessità di coniugare le competenze di sviluppo con quelle sui sistemi middleware, sugli orchestratori (come Kubernetes – ndr) e sulle piattaforme di cloud. In questi contesti riscontriamo le maggiori lacune”. Per questo servono percorsi formativi su misura e superare l’idea del programmatore factotum che scrive, esegue i suoi test e rilascia il pezzo di codice. “Serve oggi una figura diversa che ha visione più alta e l’attitudine (grazie alla condivisione del metodo – ndr) a calarsi rapidamente nel contesto dei progetti, all’interno di un lavoro in team”.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4