Nelle moderne software factory aziendali, è fondamentale riuscire ad affrontare con rapido time-to-market e in modo efficace la gestione dei rilasci applicativi, compito che l’agile release management assolve in buon accordo con le moderne pratiche agili per la gestione dei progetti.

Il release management e, quindi, l’agile release management servono a gestire il flusso di modifiche al software, effettuate attraverso i vari ambienti di pre-produzione, che culminano nei rilasci necessari per il deploy di applicazioni sempre aggiornate nell’ambiente di produzione. Il rilascio è un insieme di modifiche, che sono raggruppate attraverso un processo di selezione e di autorizzazione da parte di chi ha la responsabilità (di solito il release manager). Le attività di rilascio includono quindi la pianificazione, la progettazione e la configurazione delle modifiche al software.

Il release management è dunque il processo che consente cambiamenti al software più proattivi e prevedibili attraverso fasi strutturate di pianificazione, implementazione, test e distribuzione delle modifiche. Nell’agile release management, questi step seguono il metodo agile, oggi adottato in molti progetti di sviluppo ed essenziale per gestire il volume di richieste di aggiornamenti sollecitati dalle situazioni di mercato, da esigenze di sicurezza, di compliance normativa, nuove necessità delle line of business o dei Clienti.


Ripensare in modo agile il release management

La gestione dei rilasci software è un processo intrinsecamente agile poiché si concretizza in una serie di miglioramenti incrementali, realizzati con cadenze periodiche su un’applicazione software che è già operativa presso gli utilizzatori. Man mano che i mercati in cui operano le aziende diventano meno prevedibili e le capacità di cambiamento possono fare la differenza sul piano del business, diventa importante adottare un framework agile nella gestione dei progetti.

Il metodo agile consente di gestire requisiti che evolvono nel tempo attraverso più cicli di iterazione. Agile stesso include una molteplicità di framework d’implementazione tra cui vogliamo citare Scaled Agile Framework (SAFe), Extreme Programming (XP), Feature Driven Development (FDD), Kanban e molti altri, ciascuno con peculiarità e campi d’applicazione ideali.

Nella metodologia agile, il ruolo chiave del change advisory board (il CAB nelle realtà che hanno adottato ITIL negli ambiti del service management) è sostituito da un processo di gestione del cambiamento decentralizzato, in grado di adattare, sprint dopo sprint, i requisiti. Di concerto viene influenzato il modo con cui si progettano i rilasci, in quanto attività di pianificazione e, come tali, soggetti ad un elevato grado d’incertezza, in particolare, quando si proiettano su lunghi orizzonti temporali.


Le best practice per implementare l’agile release management

La modalità agile nel release management si avvantaggia della migliore definizione delle priorità, e quindi con lo sviluppo, per prime, delle funzionalità importanti, a vantaggio della capacità di rispettare la data di rilascio assegnata con le feature più richieste. L’approccio agile al release management aiuta la pianificazione, concentrando l’impegno su ciò che ha maggior valore, identificando e risolvendo i problemi con anticipo, dando ai responsabili del prodotto la facoltà di prendere decisioni con un più breve preavviso.

Nell’adozione dell’agile release management, gli esperti suggeriscono alcuni consigli. Il primo è fissare la frequenza dei cambiamenti in linea con esigenze del business e degli utenti. Il software che dev’essere usato da consumatori finali è soggetto a modifiche e a nuove release più frequentemente rispetto alle applicazioni destinate al B2B. Nel secondo caso, cambiamenti funzionali e di processo che accompagnano il software possono richiedere lunghi tempi di prova e di formazione degli utenti di cui occorre tenere conto. Il secondo aspetto riguarda la valutazione d’impatto sugli utenti e sul piano tecnico della release. Major release con tante nuove funzionalità possono richiedere 3-6 sprint, a differenza di release con modifiche minori, per cui possono bastarne solo 1 o 2. Nel caso di modifiche che riguardino i sistemi o le librerie software, ma senza modifiche funzionali, va previsto uno sprint per testare l’aggiornamento e il tempo per risolvere i problemi evidenziati.

Pianificare un rilascio software è un’attività diversa dal pianificare la messa in produzione di un’applicazione. Va fatto prima d’ogni sviluppo definendo gli scopi, il tipo di rilascio e, per sommi capi, le attività di business che devono precedere e seguire il rilascio. Solo a questo punto, si possono ipotizzare date precise. Con un team ben preparato e affiancati da un partner con esperienza consolidata, si può prevedere una strategia di rilasci, stabilendo di quante major release, minor release e di semplici aggiornamenti ci potrà essere bisogno per tenere il software aggiornato.