Articoli di approfondimento
Informatica
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.