Millennium Bug e friends, i Software disasters più famosi
Anche se il software è virtuale per definizione, errori nella sua progettazione possono aver conseguenze ben reali, che spaziano da perdite economiche a perdite di credibilità. Una lista esaustiva sarebbe ben lunga, eccone alcuni tra i più famosi.
Millennium Bug
Partiamo dal più famoso errore di tutti i tempi. Prima del 2000 molti software segnavano l’anno utilizzando solo due cifre per ragioni di efficienza, ad esempio 98 al posto di 1998. Nel 2000 però lo 00 sarebbe stato interpretato come 1900 e non come 2000. Nonostante numerose previsioni di catastrofi, il Millennium Bug non ha causato alcun danno: è solo costato una montagna di soldi alle non poche aziende interessate. Con buona probabilità non avrebbe comunque creato gravi danni ma, accortisi per tempo del problema, produttori di software ed enti pubblici sono intervenuti evitando complicazioni. Tranne quella di dover investire ingenti somme per correggere un problema dovuto a una progettazione poco lungimirante, diventata il “Bug” per antonomasia.
Mars Climate Orbiter
Nel 1998 la Nasa aveva spedito in orbita attorno a Marte il Mars Climate Orbiter, che avrebbe dovuto studiare l’atmosfera marziana. Inspiegabilmente la sonda si inserì in orbita a una quota troppo bassa, finendo per disintegrarsi. La causa della perdita di un investimento da 125 milioni di dollari? I sistemi informatici della Nasa erano progettati per utilizzare le unità di misura del sistema internazionale, mentre uno dei sottosistemi del Mars Climate Orbiter, progettato dalla Lockheed Martin, utilizzava il sistema imperiale (libbre, miglia, galloni ecc.). Incomunicabilità questa tra i sistemi che ha causato l’errore nel calcolo della traiettoria con la conseguente perdita della sonda. Un errore costato alla Nasa un satellite e non poca reputazione.
Ariane 5
Non solo la Nasa è incappara in gravi software disasters, due anni prima l’Esa, l’agenzia spaziale europea, aveva perso un razzo Ariane 5 con quattro satelliti a bordo. Meno di un minuto dopo la partenza, questo era stato distrutto dal meccanismo di auto-distruzione per evitare danni in seguito a un cambio inaspettato di traiettoria. Il sistema di guida aveva tentato di convertire in maniera impropria una variabile a 64 bit in una a 16 bit: un po’ come tentare di far entrare un elefante in una 500. Andato in errore il sistema principale, il controllo era passato allora al sistema di backup. Purtroppo questo usava lo stesso software del sistema principale e mandò il razzo decisamente fuori rotta, attivando il sistema di autodistruzione. L’errore nella conversione non era l’unico problema del software: la variabile che aveva scatenato l’errore era legata ad un sistema che in volo sarebbe dovuto essere stato spento, dato che serviva solamente prima del lancio. Solo che i progettisti avevano deciso di mantenerlo acceso per la prima parte del volo, per facilitare un eventuale riavvio del sistema informatico del vettore.
Millennium bug, alcuni libri
[amazon_link asins=’1986942031,0895263734,9041197761,0421660503,0760308187,1511781408′ template=’ProductCarousel’ store=’eroifenu-21′ marketplace=’IT’ link_id=’43c7b40d-7219-11e8-a55f-a7911c585cab’]