Release management, le leve per ridurre tempi di test e rilascio

Release management, le leve per ridurre tempi di test e rilascio

All’interno di un’organizzazione IT, le pratiche di release management hanno l’obiettivo di controllare e presidiare tutte le fasi di lavorazione del codice che portano al rilascio finale di una data versione del software. Questa fasi, nell’ambito del ciclo di sviluppo software (SDLC – software development lifecycle), includono la progettazione, quindi la pianificazione delle funzionalità e degli aggiornamenti che dovranno caratterizzare il rilascio software, e le fasi di sviluppo, testing, deployment e manutenzione della software release. Il processo di release management coordina le attività di sviluppo del codice con le operation IT per far in modo che, al momento del rilascio di un software in produzione, o della distribuzione di una app agli utenti finali, il codice risulti stabile, il più possibile privo di bug e difetti, e sappia rispondere ai requisiti definiti in funzione delle priorità e obiettivi di business.  

modern-application-development

Trasformazione digitale: servono pratiche di release management più agili 

La digital transformation, attraverso l’affermazione di paradigmi IT come il cloud, ha cambiato nel profondo il modo di operare delle imprese sul mercato, al punto che oggi il software occupa ormai un ruolo cruciale in qualunque attività di business. Non solo, ma la pressione competitiva impone oggi a ciascuna azienda di differenziare i propri prodotti e servizi, migliorando di continuo la qualità, le funzionalità e la user experience delle applicazioni che dipendenti, clienti, consumatori utilizzano quotidianamente per interagire con il brand attraverso vari canali e touchpoint (negozi fisici, web, mobile, reti sociali, e-mail). Di conseguenza, oggi, per soddisfare le esigenze di tali utenti, occorre rilasciare il software con maggior rapidità e frequenza, accelerando necessariamente il processo di release management.  

Come velocizzare il release management con il DevOps  

Nonostante la crescente complessità raggiunta da applicazioni e servizi digitali e la necessità di accelerare il processo di release management, è fondamentale, come ricordato, mantenere elevata anche la qualità del software. Ciò però finisce per diventare insostenibile per quelle organizzazioni IT che ancora gestiscono il release management attraverso un approccio tradizionale e sequenziale, come quello ‘waterfall’. Quest’ultimo risulta troppo lento e, soprattutto, non possiede meccanismi di feedback e correzione degli errori tra una fase e l’altra (analisi dei requisiti, design, implementazione, integrazione e testing, deployment, manutenzione) del SDLC, prevedendo il testing solo al termine del processo di sviluppo.  

In tali contesti, una metodologia come il DevOps è in grado di generare automazione e agilità nel processo di release management, rispondendo alle moderne esigenze di sviluppo e distribuzione del software.  

Paradigma DevOps: i vantaggi di CI/CD nel release management 

Quando correttamente implementato in un’organizzazione, il modello DevOps permette di automatizzare le fasi di build, test e deployment del codice, riducendo tempi e costi di rilascio, e accelerando la velocità e frequenza di distribuzione delle nuove versioni, senza per questo incidere negativamente sulla qualità e l’affidabilità del software che è stato sviluppato.   

Al cuore del processo di release management che DevOps rende possibile c’è la pratica di sviluppo e distribuzione CI/CD (continuous integration/continuous delivery/continuous deployment), che, in sostanza, ha la funzione di superare i tipici problemi d’integrazione (“integration hell”) a cui si va incontro applicando approcci classici come quello waterfall.  

Come funziona CI/CD 

Nella pratica CI/CD, ciascuno sviluppatore, una volta creato il proprio codice, lo deposita in un repository comune, dove viene integrato in automatico (CI) con le porzioni di codice (feature branch) sviluppate dagli altri membri del team, tramite la creazione di una build, che contiene tutte le modifiche, e viene subito sottoposta a test automatizzato, per l’identificazione immediata di eventuali bug e difetti di funzionamento. Quando tale automazione viene estesa, dall’ambiente di sviluppo e test, anche a quello di produzione, si parla anche di distribuzione continua e deployment continuo (CD), e della implementazione di una completa pipeline CI/CD 

Un approccio fondamentale per la tutela finale di tempi, costi, qualità e dell’intero processo di business.