i dolori da software



     
il manifesto - 05 Gennaio 2003 
 
Tutti quei dolori da software 
Decine di milioni di istruzioni e righe di codice per ottenere un sistema
(Windows, per esempio) che si blocca più volte al giorno. Dopo venti anni
di concorrenza sfrenata e promesse miracolose, l'«industria della
programmazione» non riesce ancora a produrre un software senza «bachi»
FRANCO CARLINI
Nello scorso luglio il mensile Tecnology Review, edito dal Massachusetts
Institute of Technology, il famoso Mit, pubblicava un polemico articolo la
cui eco non si è ancora spenta. La firma era quella di un noto giornalista
e scrittore americano, esperto di tecnologie, Charles C. Mann e il titolo
suonava così: «Perché il software è così scadente?». In stile giornalistico
cominciava con una famosa barzelletta, dove Bill Gates spiega che «se
l'industria dell'auto avesse tenuto i ritmi di quella del software, oggi
una macchina costerebbe solo 25 dollari e farebbe mille miglia con un
gallone di benzina». Al che si leva uno dal pubblico e dice: «Sì, ma se le
auto fossero come il software, si romperebbero due volte al giorno senza
alcuna ragione e chiamando il meccanico questo vi direbbe che dovete
reinstallare il motore». Secondo le peggiori tradizioni relative al
copyright la versione originale di questo articolo è leggibile solo a
pagamento, per 4 dollari e cinquanta, ma secondo le migliori possibilità
offerte dall'Internet e dai motori di ricerca, una copia completa e
gratuita di può trovare sul sito del politecnico statale della (California
Polytechnic State University:
http://www.csc.calpoly.edu/~jdalbey/SWE/Papers/BadSoftwareArticle.html).

Copyright a parte, l'articolo era interessante anche se non nuovo come
tema: da che il software esiste infatti, gli studiosi, le aziende e i
consumatori si rompono la testa su come sia possibile realizzare, e poi
vendere e acquistare, dei programmi di qualità, ovvero senza errori.
Software che non facciano cadere i razzi Ariane (come capitò il 4 giugno
del 1996) o che non blocchino l'intera rete telefonica degli Stati Uniti
(15 gennaio 1990). Oppure, più banalmente, che non ti piantino a metà
strada oscurando il monitor e perdendo i materiali in lavorazione prima che
tu possa salvarli. Non sembrerebbe una pretesa eccessiva, tanto più se
rivolto a aziende dell'eccellenza e dell'alta tecnologia che sono nel ramo
da una trentina d'anni e che dovrebbero avere imparato a costruire
programmi sani e robusti.

Della cosa del resto è assolutamente consapevole la stessa Microsoft: nei
mesi scorsi è stato proprio Bill Gates a lanciare l'allarme, cui sono
seguite delle conseguenze operative: i clienti si aspettano da noi una
maggiore qualità e perciò sarà il caso di frenare eventualmente la corsa a
sviluppare sempre nuovi prodotti e procedere a una seria revisione del
nostro modo di lavorare e di fabbricare il software. Tanto più che, dopo
l'11 settembre, tutti i clienti sono più preoccupati di prima riguardo alla
sicurezza delle loro reti di computer.

I bachi e gli errori che affliggono molti software sembrano far parte della
normalità e non da oggi: in pratica un prodotto viene scritto in versione
alfa (preliminare), poi si comincia a diffonderne la «beta», considerata
più stabile, e si raccolgono le critiche e le osservazioni di coloro a cui
è stata fornita in prova, si sistemano le cose e si rilascia la famosa
versione 1.0, ma tutti i consumatori avvertiti non acquistano ma la prima:
preferiscono di solito aspettare alcuni mesi, perché si può essere sicuri
al cento per cento che anch'essa contiene molte imperfezioni. Infatti dopo
la 1.0 compaiono una serie di aggiornamenti, detti patch, che ben si
possono tradurre in «pezze».

La presenza di Internet fa sì che facilmente i titolari di una licenza
software possano collegarsi al sito della casa madre e scaricare
gratuitamente tali «rattoppi». Ma sempre di difetti si tratta, per i quali,
a differenza che per le automobili e per i frigoriferi, non esiste alcuna
garanzia per i consumatori: le norme contrattuali scritte in piccolo nelle
licenze di utilizzo del software (di tutti i software) esentano il
produttore da ogni obbligo e lo mettono al riparo da ogni richiesta di
danni. In altre parole può, volendolo, venderci merce avariata, e peggio
per noi.

Che si tratti di una situazione anomala e incivile pochi ne dubitano,
eppure sembra che (quasi) nessuno possa porvi rimedio. E, ciò che è più
grave, le cose non stanno migliorando mentre un numero sempre maggiore di
attività della vita quotidiana dipendono dal software: vai allo sportello
delle Ferrovie o dell'aeroporto e allargano le braccia perché il computer è
giù; chiami il Call center di Tin-Virgilio e ti dicono che il sistema è
fermo. Errori software hanno ritardato il funzionamento della gestione
bagagli di Malpensa, e prima ancora di Denver, hanno bruciato un razzo
Ariane e simili piacevolezze.

Come è possibile? Le cause sono diverse, ma la loro sommatoria è
distruttiva. A monte ci sono difficoltà intrinseche, legate alla
complessità dei programmi; a differenza di un teorema matematico la
correttezza di un software non può essere dimostrata a priori, ma solo
verificata sul campo, ma la verifica richiederebbe un tempo infinito,
perché si tratterebbe di controllarne il buon funzionamento con tutti i
parametri possibili, ossia in una infinito di stati. Il secondo livello
dove gli errori prendono corpo è una certa cultura artigianale e non
ingegneristica delle produzione: è vero infatti che dei progressi si sono
fatti in questo campo, spingendo sempre di più verso soluzioni modulari (a
oggetti), dove ogni piccolo blocco possa essere facilmente verificato, ma
questa non è sempre la regola, specialmente quando i produttori si facciano
prendere da una tentazione assai comune, l'impacchettamento.

Si prenda il caso del software forse più famoso di tutti, ovvero il sistema
operativo più recente di Microsoft, chiamato Windows XP; esso consiste di
circa 45 milioni di righe di programma (ogni riga un'istruzione),
inevitabilmente aggrovigliate tra di loro? Un momento: davvero era
inevitabile? No, ma lo è diventato perché l'interesse commerciale di
Microsoft è di fornire una piattaforma in cui siano presenti tutti i
programmi applicativi di uso più comune, per esempio il sistema di posta
(Outlook) e quello per navigare in rete (Internet Explorer).

Di per sé non era una scelta tecnicamente obbligata, come è stato
dimostrato ampiamente nel corso della causa antitrust e come alla fine la
stessa Microsoft ha finito per ammettere. Ma è una scelta voluta per far sì
che i clienti di Microsoft,l avendo già tutto da lei, non sentano alcun
bisogno di utilizzare i programmi applicativi della concorrenza: se il
lettore di musica e di filmati (Windows media Player) è già presenta nel
computer che io compro, perché dovrei scaricare e installare quello di
RealNetworks o il QuickTime di Apple? Un terzo motivo è anch'esso legato
alle strategie commerciali delle aziende: sia nel caso di pacchetti
preconfezionati e di uso generale che nel caso di software personalizzati
per un certo cliente (per esempio una banca), la fretta è d'obbligo e con
la fretta cadono le precauzioni, le verifiche e i test.

Alla Oracle, premiata azienda di software d'archiviazione (database) erano
famosi per promettere ai clienti delle prestazioni che erano appena nello
stadio iniziale di sviluppo; il poderoso sistema editoriale per la gestione
di siti web, Vignette, può costare 100mila euro all'anno di licenze d'uso,
ma resta il più rigido software in circolazione esistente e per di più in
parte sconosciuto ai suoi stessi softwaristi: un importante settimanale
italiano restò con il sito fermo per una settimana in attesa che un
programmatore indiano, appositamente arrivato da Londra, ci capisse
qualcosa. E in quel caso furono persino fortunati: altre aziende di
software dopo avere strappato contratti milionari, lasciano tutto nelle
mani di programmatori e analisti junior che si stanno facendo le ossa, a
spese del cliente.