Legacy
e software gestionale
In informatica spesso si sente parlare di legacy, anche se molte volte non si ha ben chiaro il significato di questo termine. Un sistema legacy non è altro che un software, un componente hardware o comunque un sistema informatico tecnologicamente obsoleto, che continua tuttavia ad essere utilizzato.
Molti si chiederanno perché proprio in informatica, ossia in un settore dove la novità diventa vecchia a tempo di record, continuino a venire utilizzati software e sistemi obsoleti.
La risposta è semplicemente che i proprietari e gli utilizzatori di questi software preferiscono continuare ad utilizzare le soluzioni esistenti, peraltro collaudate da anni, piuttosto che investire per creare nuovi software e nuovi sistemi ex novo.
Quando si parla di legacy, si parla soprattutto di software gestionale.
Capisco che qualcuno sgrani gli occhi a leggere queste righe, ma è proprio così. Allora sorge spontanea la domanda: davvero ci sono in giro software e sistemi gestionali, su cui magari transitano dati bancari, dati sanitari, dati pubblici, che sono a tutti gli effetti obsoleti? La risposta è: sí. E qual'è indicativamente la percentuale di sistemi legacy nei software gestionali? Mediamente il 70%, con le percentuali maggiori nelle grandi aziende, nelle banche, negli enti pubblici.
Lasciato perdere lo sgomento, cerchiamo di capire il perché. Tutto ha inizio con una parola magica: COBOL.
Il COBOL è stato (permettetemi il passato) un linguaggio di programmazione straordinario, pensato appositamente per l'ambito gestionale. Ha rappresentato un'autentica rivoluzione. L'unica cosa è che risale al 1959, anche se ufficialmente è stato rilasciato nel 1961. Non proprio l'altro giorno. Erano i tempi delle schede perforate, tanto per intenderci. Sì, certo, si è evoluto, è stato aggiornato, ma l'impostazione di base è rimasta quella, e dopo oltre sessant'anni permettetemi di dire che forse sarebbe anche il tempo per una meritata pensione.
Ma qual'è in concreto il limite di questi sistemi legacy, se alle fine funzionano?
Il limite è semplicemente quello che non sono in grado di stare al passo con la tecnologia attuale.
È vero che il software COBOL funziona, nel senso tecnico del termine, ossia svolge correttamente i suoi compiti, esattamente come li svolgeva correttamente trenta, quaranta o cinquanta anni fa.
I software scritti in COBOL sono anche molto stabili. Nulla da eccepire su questo. Ma il punto è che nonostante gli ammodernamenti apportati in tutti questi anni, il COBOL è rimasto, per impostazione e struttura, un linguaggio di un'epoca ormai molto remota.
Il COBOL risente quindi in tutto e per tutto del peso non degli anni, ma dei decenni che porta, pur dignitosamente, con se'.
È datato, non si può negare. L'informatica si è evoluta in maniera esponenziale negli ultimi decenni, il COBOL non è stato in grado di tenere il passo. O, per certi versi, l'ha tenuto meglio di altri software, come il FORTRAN, nato nel 1957, ma morto e sepolto ormai da tempo.
Va infatti riconosciuto che se oggi gira ancora tanto software in COBOL è perché comunque per l'epoca in cui è stato creato era veramente all'avanguardia.
I problemi dei software scritti in COBOL sono quelli dei software concepiti, a livello di impostazione, decenni addietro, in pratica una sorta di "tuffo all'indietro" nella storia dell'informatica.
Cercando di semplificare un po' le cose, dal punto di vista dell'utente finale, le principali problematiche che si pongono oggi con software in COBOL sono essenzialmente tre.
La prima è la più evidente, ossia l'interfaccia utente: avete presente gli schermi a diodi verdi, senza mouse, che si vedono ancora in tanti ambiti di lavoro, banche incluse? A volte i caratteri non sono verdi, ma bianchi su fondo nero, ma è la stessa cosa.
Ecco, questo è il COBOL: in poche parole interfaccia testuale e non grafica. Dimenticate il mouse, dimenticate i campi interattivi, dimenticate la possibilità di avere in un'unica finestra una visione di insieme di tutti i dati che vi servono, dimenticate di spostarvi tra le finestre. La risoluzione è quella che è, quindi le schermate possono contenere solo pochi dati alla volta. Poi con una serie di tasti funzione o combinazioni di tasti si attivano le varie funzionalità.
Dimenticate anche la possibilità di navigare tra più finestre, l'Alt+Tab in COBOL semplicemente non esiste.
Dimenticate naturalmente anche le griglie dati un po' evolute, dimenticate la possibilità di fare doppio click su un campo (il mouse non funziona...), dimenticate di accedere alle proprietà con il click destro del mouse, in poche parole dimenticate tutto quello che usate abitualmente tutti i giorni con i software moderni.
Le schermate sono un po' come dei tabulati a caratteri verdi o bianchi su sfondo generalmente nero.
L'impostazione è quella che c'era fino agli anni Ottanta e che riguardava, allora, un po' tutti i software sviluppati con i principali linguaggi di programmazione del tempo: Clipper, Quick Basic, Pascal, solo per citarne alcuni, erano tutti così, senza interfaccia grafica, perché erano gli anni del DOS, che di grafico non aveva semplicemente nulla.
Poi però le cose sono cambiate, prima con i primi pc grafici quali Apple(Mac), Atari, Amiga, poi negli anni Novanta un po' per tutti con l'avvento generalizzato di Windows. Ecco allora che i software sono stati riscritti nei nuovi linguaggi, con la programmazione ad eventi che il nuovo ambiente grafico richiedeva: Visual Basic, Visual C++, Delphi (Pascal in ambiente grafico), Java... solo per citare alcuni dei nuovi ambienti di sviluppo.
Tutto è cambiato ed è stato aggiornato, tranne... i software scritti in COBOL. Vuoi perché i software in ambito gestionale sono complessi e riscriverli da zero è un lavoro immane, vuoi perché sono testati ed una necessità dell'ambito gestionale è quello di potere disporre di software affidabile, vuoi perché soprattutto le grandi realtà non erano (e non sono tuttora) affatto propense a mettere mano al portafoglio. In poche parole si è cercato di rimandare il momento dell'aggiornamento tecnologico, pur nella consapevolezza che prima o poi andrà fatto.
Così, un po' come nella fiaba di Dornröschen (la bella addormentata nel bosco) il mondo del software gestionale è rimasto in gran parte così com'era.
Qualcuno può pensare che alla fine l'interfaccia un po' datata non sia un grande problema. Devo essere sincera, io non la penso così. Semplicemente perché è con l'interaccia che l'utente lavora quotidianamente, e con cui trascorre 8 o più ore al giorno.
A parte il maggiore affaticamento visivo, va evidenziato che la mancanza di immediatezza, dovuta dal fatto di non avere in un'unica schermata tutti i dati necessari (che a causa della bassa risoluzione deve essere divisa tra più schermate attivabili di volta in volta con specifici tasti funzione), favorisce inevitabilmente la possibilità di commettere errori.
I campi visualizzati non interattivi (scordatevi il doppio click su un dato per visualizzare il dettaglio) e l'estrema macchinosità di questi software rendono ulteriormente più complesso il controllo dei dati.
Inoltre diventa via via più difficile trovare personale abituato a lavorare con interfacce di questo genere. Soprattutto i più giovani, che non hanno mai utilizzato software del genere nel loro percorso formativo.
Per ovviare in parte a questi problemi a volte sono stati approntati dei sistemi diciamo misti, in cui l'interfaccia grafica è moderna, mentre in background tutto lavora ancora in COBOL. È già un importante miglioramento, anche se non è, per ovvi motivi, la situazione ideale (v. oltre).
Un secondo problema, che può sembrare banale, ma non lo è affatto, è un po' una conseguenza del primo: la stampa. Il COBOL era progettato per gestire le stampanti dell'epoca, ad aghi, che venivano pilotate tramite porta parallela LPT1. Forse qualcuno si ricorda la carta in modulo continuo per le stampanti ad aghi, con i margini con i buchi per potere essere agganciata alla stampante.
Il COBOL non è infatti in grado di creare stampe di tipo grafico, ma solo tabulati, men che meno può gestire stampe in formato PDF.
Per bypassare questo problema, anche qui si ricorre a software più moderni per gestire le stampe, che magari il programma in COBOL provvede ad avviare in background.
In alcuni casi ci sono addirittura software in COBOL che si appoggiano a software di terze parti, che l'utente deve pagare a parte, per potere gestire gli aspetti relativi alle stampe in formato PDF. Incredibile, ma vero.
Il terzo problema è rappresentato dalla manutenzione del software ed è il più importante di tutti, da considerare attentamente. Essendo un linguaggio obsoleto, quasi nessuno oggi studia più il COBOL. Si fatica quindi a trovare programmatori in grado di aggiornare e mantenere i software esistenti, si fatica ancora di più a trovare sviluppatori esperti.
Più passa il tempo, più la situazione chiaramente peggiora, considerato che molti sviluppatori COBOL "senior" hanno ormai un'età non più giovanissima, per cui interviene prima o poi il pensionamento.
E chi, oggi, si mette a studiare un linguaggio di programmazione vecchio di oltre 60 anni? La struttura del codice COBOL è tra l'altro completamente diversa rispetto a tutti gli altri linguaggi come Java, Pacal, C, C++, Python solo per citarne alcuni.
E questo sta diventando un problema sempre maggiore. Negli USA è recentemente intervenuto anche il governo federale per finanziare corsi di programmazione in COBOL per cercare nuovi sviluppatori. Che non si trovano.
Del resto gli studenti più capaci non hanno certo bisogno di studiare il COBOL per trovare un lavoro, ed i meno bravi magari hanno anche difficoltà ad entrare in quel mondo un po' tutto suo che il COBOL rappresenta. Si stima che in tutti gli USA siano poche decine i programmatori COBOL esperti, in grado di mettere le mani sui software degli enti governativi.
Per spiegare la gravità del problema, durante il lockdown, sempre negli Stati Uniti, era stato proposto di concedere un indennizzo di disoccupazione correlato al reddito, ma l'ipotesi è stata stralciata a favore di un indennizzo forfetario uguale per tutti, proprio per la difficoltà di aggiornare i sistemi, scritti in COBOL, per cui sarebbero stati necessari diversi mesi di lavoro.
In poche parole il COBOL ha fatto, pur dignitosamente ed efficientemente, la sua storia.
Del resto nessuno oggi si metterebbe a scrivere da zero un nuovo software in COBOL, pertanto allo stesso modo occorrerebbe iniziare a pensare di convertire il "parco software" COBOL oggi ancora circolante, investendo in nuovi sistemi al passo con i tempi, visto che comunque prima o poi questa operazione andrà necessariamente fatta, considerato che non si può pensare che il COBOL sia eterno, e più passa il tempo, più diventa difficile mantenere i software esistenti.
Occorre tra l'altro tenere presente che un nuovo software, una volta sviluppato, va poi testato, controllato, verificato e corretto negli inevitabili bug, prima di potere arrivare ad una versione utilizzabile in ambito aziendale. L'aggiornamento dei sistemi è quindi un processo assai lungo, per cui è fondamentale prendersi per tempo.
Infine un piccolo consiglio: ci sono diverse software house che vendono ancora oggi i loro (vecchi) software scritti in COBOL, più o meno rapezzati nel tempo, fate quindi attenzione. Voglio dire che una cosa è cercare di mantenere aggiornato il software COBOL già esistente in azienda, in attesa di una conversione che come detto richiede tempo ed investimenti; altra cosa è acquistare ex novo un software tecnologicamente obsoleto, in questo caso il mio consiglio è di starci alla larga.
Quindi se vi trovate a dovere scegliere un nuovo software gestionale e vi propongono qualcosa a "diodi verdi" (o bianchi), ossia con interfacce testuali e non grafiche, vi consiglio di lasciare perdere. Se invece l'interfaccia sembra moderna vi consiglio comunque di chiedere in che linguaggio è sviluppato, per evitare di trovarvi ad acquistare un software "misto" con interfaccia moderna, ma background che opera ancora in COBOL e che quindi risente dei problemi di obsolescenza sopra esposti.
Questo per evitare di acquistare un software tecnologicamente già vecchio fin dall'inizio e dunque con un orizzonte temporale di vita necessariamente limitato.
Anche se a livello mondiale il COBOL rappresenta ancora il 70% del mercato dei sistemi gestionali soprattutto delle grandi realtà e degli enti pubblici, ci sono Paesi che invece hanno capito l'importanza di rinnovare il parco software, mi piace sottolineare l'esempio dell'Estonia, che è stato tra i primi a puntare sull'aggiornamento tecnologico, togliendo il supporto economico a tutti i sistemi legacy. Una scelta coraggiosa, che si spera che altri Paesi possano seguire.
Il COBOL è e rimarrà per sempre un mito, solamente che i tempi sono cambiati e le esigenze delle imprese anche.