Software legacy: la roadmap per la modernizzazione in 4 step

Software legacy: la roadmap per la modernizzazione in 4 step

In molte realtà aziendali il software legacy gioca ancora un ruolo strategico. Allo stesso tempo, però, pone problemi di obsolescenza, comportando elevati costi di manutenzione infrastrutturale, soprattutto se paragonato alle moderne soluzioni applicative basate su cloud. Oggi, quindi, la modernizzazione del software legacy assume un’importanza vitale.  

 

Cos’è il software legacy 

In informatica, quando si parla di software legacy, di applicazione o sistema legacy, s’intende tutto quel software enterprise (gestionali, ERP, CRM, SCM, BI) su cui un’organizzazione ha investito per anni. Installato e mantenuto su server o mainframe nel data center aziendale, il software legacy è in molti casi ancora perfettamente funzionante e fondamentale per presidiare processi core. Ha però l’inconveniente di essere obsoleto, e può non essere più compatibile con diverse delle ultime tecnologie al momento utilizzate. Ciò perché, in genere, è stato sviluppato con linguaggi di programmazione ormai superati, o perché caratterizzato da un’architettura monolitica: si rivela quindi difficoltoso gestirlo, modificarlo, manutenerlo, in accordo con i moderni standard e requisiti di funzionamento. Per il personale del reparto IT, un software legacy diventa complicato da amministrare, perché, ad esempio, può risultare incompatibile con la nuova versione del sistema operativo che si vuol installare, o perché il software vendor ha ufficialmente concluso il periodo di supporto per quel prodotto, e non fornisce più aggiornamenti o patch di sicurezza.  

WP - modernizzare le applicazioni
 

Software legacy, perché modernizzarlo  

Vi possono essere svariati motivi per cui un’azienda ha necessità di mantenere un software legacy: uno di questi è il fatto che può trattarsi di un software verticalizzato per un particolare settore industriale, dotato di funzionalità specializzate, e sviluppato per rispondere a precisi requisiti di business, anche sotto il profilo della sicurezza e della conformità con le normative di settore. La sfida è dunque far evolvere tale software legacy, tramite tecniche che permettano di migliorarlo sotto vari aspetti. Questi includono la manutenibilità del software stesso, nonché la sua capacità d’integrare nuove funzionalità per soddisfare gli attuali requisiti imprenditoriali.  

 

Requisiti di business 

Oggi il software, da un lato, deve essere aggiornabile velocemente e con elevata frequenza; dall’altro deve fornire livelli di scalabilità e prestazioni adeguati alle richieste dati generate delle moderne applicazioni omnicanale. Per interagire con i loro brand preferiti, i consumatori utilizzano infatti i canali più disparati, come le app mobile, il web, le chat, o i canali social. E tutte queste interazioni, potendo avvenire 24 ore su 24, attraverso piattaforme aperte a un mercato globale, producono volumi di traffico che il software legacy non è stato progettato per gestire in maniera adeguata. Vediamo quindi quali step è consigliabile seguire in un’iniziativa di modernizzazione.  

 

1-Comprendere che non si tratta solo di modernizzare un software 

Il primo passo, prima di iniziare qualunque progetto di modernizzazione del software legacy, è acquisire la consapevolezza che, ‘ringiovanire’ tecnologicamente un software non basta, se poi non si trasforma i processi organizzativi, il modo di lavorare delle persone; e se non si pianifica anche una strategia di change management che faccia avvenire questa trasformazione con meno disagio possibile per l’attività quotidiana dell’azienda e del personale interno.    

 

2-Valutare la criticità del software legacy funzionante 

Quando si tratta di decidere cosa va modernizzato, è utile possedere una panoramica, il più possibile chiara, del software legacy esistente, e di quali processi critici controlla in azienda. Solo così è possibile valutare, considerato il debito tecnico di ciascuna applicazione, se conviene davvero aggiornarla, in virtù dei benefici che potrà fornire una volta potenziata.   

 

3-Software legacy: cambiare l’architettura può essere conveniente  

L’architettura monolitica è un elemento che in genere caratterizza il software legacy. In questa architettura, tutti i componenti del programma (logica di business, database, interfaccia) sono interdipendenti e integrati in un unico blocco di codice. Ogni modifica su un componente è complessa, perché influenza anche gli altri. Inoltre, il software legacy con architettura monolitica presenta anche problemi di scalabilità. In quest’ottica, passare a un’architettura basata su microservizi può aiutare a risolvere entrambi gli inconvenienti.   

 

4-Migrazione sul cloud 

Grazie alle proprietà che la contraddistinguono, la nuvola permette di rispondere a molti problemi di scalabilità e prestazioni nell’erogazione delle risorse IT. Tuttavia, anche quando si decide di far migrare un software legacy sul cloud, occorre sempre scegliere la soluzione più vantaggiosa, che non è necessariamente quella che si presenta inizialmente come la meno dispendiosa in termini di impegno e costi di sviluppo. Ad esempio, la tecnica del rehosting consente di spostare un software legacy monolitico sul cloud senza apportare ad esso modifiche, ma questo metodo di migrazione non consente di sfruttare completamente i vantaggi di scalabilità e affidabilità che il cloud fornisce quando un’applicazione è strutturata su microservizi.  

D’altra parte, una tecnica come il refactoring, che implica una riprogettazione parziale o totale del software legacy, e permette di scomporlo, anche progressivamente, in microservizi, è certamente più costosa del rehosting, ma consente di beneficiare completamente di tutti i vantaggi del paradigma cloud-native.