Tema centrale nell’ambito disciplinare del software engineering, il software configuration management (SCM) assume oggi una crescente rilevanza man mano che aumenta il numero delle componenti software che l’IT deve gestire e diventano centrali le esigenze di velocità e time-to-market del business.

Il software configuration management serve infatti per gestire, organizzare e controllare i cambiamenti che coinvolgono le applicazioni, un compito reso più complesso dall’adozione delle moderne architetture a microservizi, che di fatto moltiplicano le componenti funzionali delle singole applicazioni, e dal dinamismo che accompagna le richieste degli utenti e del business.


Software configuration management: che cosa fa e a cosa serve

Nei moderni ecosistemi IT le applicazioni monolitiche vengono rimpiazzate con insiemi di microservizi che permettono una maggiore rapidità d’aggiornamento, scalabilità e riutilizzo delle componenti. Questo comporta l’inevitabile aumento degli oggetti software da gestire e, di conseguenza, la necessità di sostituire operazioni di configurazione manuali, basate sull’esperienza del team IT, spesso di singole persone specializzate, con procedure standardizzate, il più possibile automatizzate e veloci.

Se il deploy di una modifica o di un altro aggiornamento non dovesse andare come previsto, il software configuration management permette di tracciare quali cambiamenti ne sono stati la causa, quale team ne è responsabile e quindi aiutare il più rapido ripristino dello stato funzionale precedente. Nel caso migliore, ossia se la configurazione dovesse funzionare come nelle aspettative, il software configuration management rende molto più facile replicarla alla pari su altri sistemi, evitando grazie all’automazione un inutile lavoro ripetitivo per il team IT.


Cosa fanno i tool per il software configuration management

Gli strumenti di software configuration management hanno i compiti di gestire tutte le configurazioni riguardanti gli elementi costitutivi delle applicazioni a partire dagli attributi iniziali descrittivi di un software, le baseline, da cui tracciare le modifiche che intervengono nel corso del tempo. I tool di software configuration management prendono in carico il controllo dei cambiamenti attraverso una serie di strumenti che permettono di raccogliere, approvare o rifiutare le richieste di modifica rispetto alle baseline. Come? Attraverso la registrazione delle informazioni sullo stato del processo di sviluppo; attraverso capacità di auditing delle configurazioni, assicurando che siano in linea con i requisiti o altri documenti di specifica. Possono quindi gestire i tool comunemente usati per i rilasci in produzione assicurando la coerenza con il processo di sviluppo. Gli strumenti per il software configuration management possono essere integrati per estendere le capacità anche dell’hardware (o servizi cloud) sul quale devono girare le applicazioni.


I vantaggi per il business delle imprese

Il software configuration management aiuta la modernizzazione dei processi IT, favorendo il più rapido delivery dei servizi a vantaggio del dinamismo che viene richiesto dal moderno business digitale.

Le funzionalità di controllo e automazione che gli strumenti per il software configuration management mettono a disposizione aiutano i team IT a ridurre le operazioni manuali, tracciando e abolendo gli errori umani che vi sono associati. Il software configuration management facilita il lavoro degli sviluppatori nell’istanziare le risorse virtualizzate di cui hanno bisogno e sono funzionali alle moderne organizzazioni IT dove sviluppo e operation sono fuse insieme secondo la metodologia DevOps.

In questi contesti, il software configuration management, integrato con le capacità di sviluppo e di deploy nell’ambito della catena di produzione e controllo del software, facilita l’interazione tra i team che realizzano i differenti processi aiutando il tracciamento dei difetti e delle cause dei problemi non più soltanto a livello software, ma del servizio completo, erogato agli utenti finali. Un beneficio che si traduce in maggiore agilità dell’IT, e qualità dei servizi erogati, a vantaggio della competitività delle imprese che realizzano business digitale e dell’efficienza e flessibilità per quelle più tradizionali.