Il software fatelo fare al programmatore professionista!
Con l’avvento della mobilità elettrica e connessa, l’auto è sempre di più, un oggetto, che viene scelto soprattutto, in base all’infotainment e alle caratteristiche del software di bordo. Lo sa bene il sig. Franco Fellicò, che spesso ci invia interessanti spunti di riflessione, dettati dalle sue passioni, ovvero l’auto e l’informatica. Quest’ultima, è stato il suo lavoro per tanti anni. Questo articolo che ci ha inviato, puntuale e critico, è un monito che possiamo riassumere così: “ad ognuno il suo mestiere!” Queste le sue parole, buona lettura!
“Forse partirò da lontano, ma se avete la pazienza di leggere tutto quanto segue, vi renderete conto che il mio discorso, segue un percorso logico che giustifica le conclusioni.
Sono un informatico e non da ieri, ma dal 1960. Ho iniziato questo interessante lavoro con i grandi mainframe IBM in una grande Banca. All’inizio ero un semplice programmatore e dopo 32 anni ero diventato un dirigente responsabile di tutto lo sviluppo hardware e software dell’Istituto. E’ stata più una grande passione che un lavoro, e ancora oggi a 89 anni mi piace programmare, anche se ora utilizzo linguaggi moderni. E sono convinto anche che sono sveglio quasi come quando avevo 20 anni, esclusivamente perché non ho mai smesso di programmare, cosa che ha mantenuto sempre in esercizio la mia materia grigia”.
Perché il software è così interessante?
Ho vissuto quindi quasi tutta l’evoluzione che hanno avuto i computer e il software, e ritengo quest’ultimo uno strumento particolarmente interessante, perché è l’unico prodotto al mondo che con il passare del tempo, non solo non invecchia, ma è in grado di migliorare sempre.
Tutti i dispositivi realizzati dall’uomo sono soggetti a guastarsi, tanto è vero che è stato definito un parametro con la sigla MTBO (Mean Time Between Outages) che in rete potete trovare così definito: “il tempo medio tra i guasti delle apparecchiature che comportano la perdita di continuità del sistema o un degrado inaccettabile”. L’MTBO per il software invece non esiste perché il suo tempo di vita è infinito e se si riscontra un’anomalia (dovuta in genere ad un errore di programmazione), una volta corretta, esso diventa perfetto e non presenterà MAI PIU’ lo stesso errore. Diverso invece è il caso di un dispositivo hardware, che anche se viene riparato (cosa che ha inoltre un costo certamente molto maggiore che non una correzione di software) può invece guastarsi nuovamente.
Quindi il software, specie se manutenuto opportunamente, più vecchio è, più è sicuro e più è performante. Oltre al fatto che con degli aggiornamenti successivi può fornire anche nuove funzioni che nel progetto iniziale non erano state previste.
L’hardware cede il passo al software
Tutti i dispositivi realizzati dall’uomo che nel passato erano costituiti da solo hardware, si sono arricchiti di molto software, che ha sostituito buona parte delle funzionalità realizzate inizialmente in hardware.
Ma c’è un’altra caratteristica importantissima che ha il software ed è che esso è trasferibile, perché basta copiarlo, per averlo disponibile su altri dispositivi. Prendiamo ad esempio le lavatrici nelle quali è sempre stato necessario disporre di un TIMER che si deve occupare di gestire le varie fasi del lavaggio. Nel passato questo timer era meccanico (era un grosso bussolotto) e doveva essere costruito per ogni lavatrice con ovviamente un suo costo. Oggi il timer meccanico (quindi l’hardware) è stato sostituito da un software che una volta realizzato, può essere copiato in ogni nuova lavatrice a costo ZERO e in più, mentre i vecchi timer di tanto in tanto si guastavano e dovevano essere sostituiti pagando il nuovo pezzo e il lavoro del tecnico che lo sostituiva, il timer in software NON SI GUASTA MAI.
E per essere completi visto che ho detto che un software può presentare qualche anomalia per errori di programmazione, cosa che di solito può avvenire nei primi tempi di uso, è perfino possibile, una volta corretto il difetto, distribuire la correzione a tutti i dispositivi interessati anche già venduti e in molti casi questo può essere fatto via rete, per cui in un battibaleno tutte le apparecchiature possono acquisire le modifiche gratuitamente. Questo avviene oggi regolarmente per i computer, per gli smartphone, per gli smartwatch, per i televisori, ecc. ecc.
I limiti dell’hardware
E vi prego di notare che questo sarebbe assolutamente impossibile a realizzarsi con un hardware che ha un difetto di progettazione se non realizzando tantissimi dispositivi riprogettati da far installare uno per uno al posto di quelli difettosi nelle apparecchiature già vendute.
E’ infine c’è anche da considerare che se il produttore del dispositivo pensa che possa essere utile una nuova funzione, quando la si realizza con il software, la può aggiungere tranquillamente e distribuirla a tutti i clienti sempre senza costi.
Quindi i vantaggi derivanti dall’uso di software risultano evidentissimi sia per le aziende produttrici delle apparecchiature sia per gli utenti. Se ci pensate un momento, vi accorgerete che oggi non esiste più alcun dispositivo realizzato dall’uomo che non sia un insieme di hardware e software e ogni progetto tende ovviamente a minimizzare l’hardware e massimizzare il software visto che quest’ultimo offre notevoli vantaggi rispetto all’altro.
Il software nelle automobili
Era ovvio allora già da molto tempo che anche l’automobile dovesse subire questa trasformazione e che molte parti, che erano state realizzate nel passato con apposito hardware, venissero sostituite da funzioni software.
Ho fatto l’esempio della lavatrice, ma nel caso dell’automobile è facile vedere che tutta la strumentazione: contachilometri, contagiri, orologio e altri strumenti presenti sul cruscotto delle auto del passato, vengono oggi sostituiti da un’unica parte hardware e cioè da un piccolo computer dotato di un semplice display come monitor.
Tutti gli strumenti costosi del cruscotto sono oggi realizzati da un software che li disegna sul display più o meno grande di corredo dell’auto. MAI NESSUNO di quegli strumenti disegnati si guasterà richiedendo una costosa sostituzione e/o riparazione.
Costi giù grazie all’uso massiccio di software
È facile capire quando grande è stato il vantaggio economico ottenuto dalle case produttrici di auto. Basta pensare che oggi in luogo di tante parti da costruire per ciascuna auto, occorre solo un piccolo computer, che oltre tutto può essere lo stesso da installare su tutte le auto: dalla piccola economica alla grande lussuosa. Poi sarà il software che, come ho detto, costa solo una volta per la realizzazione e va solo copiato sulle varie auto SENZA COSTI, a rendere diversi i vari modelli. Basterà che nelle auto più lussuose vengano mostrate sul display più funzioni per renderle diverse dalle vetture piccole ed economiche.
I costi di produzione dei cruscotti sia per le piccole che per le grandi auto è quindi fortemente ridotto rispetto al passato perché spesso si tratta solo di copiare del codice; quindi non più produzione di pezzi da montare su ogni singola auto, ma una sola produzione (pure molto meno costosa) da utilizzare su TUTTE le auto prodotte.
Un altro grosso vantaggio, sempre per le case produttrici, è che gli errori di progetto di quelle parti possono essere risolti senza più eseguire COSTOSI RICHIAMI e senza dover produrre i pezzi difettosi tante volte per quante vetture sono state già vendute. In più, VOLENDO, le case costruttrici possono regalare ai clienti delle nuove funzioni che possono essere pensate anche in tempi successivi alla vendita di una serie di auto.
Quindi i vantaggi dell’introduzione del software sono moltissimi e per la maggior parte sono utili alle case produttrici, ma se queste ultime lo vogliono, possono anche interessare i clienti.
Prima di acquistare un’auto, informatevi sulla politica aziendale…
Ma ora che penso sia chiaro un po’ di più a tutti di cosa stiamo parlando è giunto il momento di pensare a come dovrebbe comportarsi di fronte a questa novità un’automobilista di oggi.
Chi acquista oggi una vettura deve sapere che molte delle parti che la costituiscono, e proprio quelle con cui avrà a che fare per il suo utilizzo, sono realizzate in software ed allora è bene informarsi per tempo sulla posizione che ha il fornitore a tale riguardo.
Ci sono infatti, case costruttrici di auto che aggiornano frequentemente il software delle proprie auto, mantenendo all’ultima versione anche quello presente su quelle già vendute e che magari vi aggiungono anche altre funzioni, fornendole gratuitamente a tutti. E altre aziende che invece approfittano della flessibilità del software ad esclusivo proprio vantaggio, limitandosi soltanto a correggere qualche difetto di programmazione su quelle già vendute e riservando le nuove funzioni solo alle nuove serie di auto da loro prodotte.
Di solito queste ultime lo fanno anche in maniera subdola per cui difficilmente faranno capire apertamente il loro comportamento Ad esempio c’è chi ha deciso di lucrare ulteriormente con il proprio software offrendo alcune funzioni utili a pagamento (anzi a noleggio mensile) e per non farlo notare all’utente all’acquisto, offre quelle funzioni gratuitamente per tre anni. Passato quel tempo il malcapitato o non potrà più utilizzare quelle funzioni perché disattivate dal fornitore, oppure dovrà noleggiarle. È dunque opportuno indagare sull’argomento, consultando altri utenti che invece sicuramente sapranno bene per esperienza diretta come si comporta quel dato produttore.
In pratica, è bene acquistare da quelle aziende che utilizzano la flessibilità del software non solo a proprio vantaggio, ma anche a vantaggio del cliente.
Ad ognuno il suo mestiere!
Detto questo a tutti gli automobilisti, vorrei valutare da informatico, come in generale si stia diffondendo l’uso del software sulle auto.
Io noto che i settori informatici delle varie case costruttrici di auto (settori giovani perché nati da poco) sono molto diversi tra loro e sono anche mediamente poco capaci. C’è da dire che forse, anche giustamente, chi costruisce auto predilige l’hardware anche perché da anni si è interessato solo ad esso e considera il software uno strumento aggiuntivo a cui non ha saputo dare il giusto valore.
I risultati, dipendono ovviamente, molto dai brand, ma sono però più spesso deludenti che interessanti. Ripeto che ci sono molte differenze, ma come ho già anticipato direi che mediamente TUTTI sono molto meno capaci in software che non nel loro vecchio lavoro.
Io credo per la verità che anche un’azienda che fosse specializzata nella realizzazione di software avrebbe difficoltà a realizzare un’auto con tutte le parti hardware che le sono necessarie. In quel caso i tecnici sarebbero bravissimi nel software e però abbastanza scarsi nell’hardware.
E allora la domanda è: come si potrebbero produrre delle auto che fossero quanto di meglio oggi si possa avere in quel campo, ma corredate da un software che fosse di vera alta qualità? Al solito si potrebbe rispondere che sarebbe bene che ognuno possa fare il suo mestiere. I tecnici e gli ingegneri della meccanica dovrebbero occuparsi della progettazione e realizzazione delle parti hardware dell’auto (che non sono per niente poche) mentre per il software dovrebbero rivolgersi ai veri esperti di quel campo e affidare a loro quella parte del lavoro.
Io penso quindi che tutti i produttori di auto dovrebbero continuare a occuparsi della progettazione e realizzazione delle parti meccaniche e dovrebbero affidare a degli esperti informatici la realizzazione del software.
I costruttori dovrebbero però anche capire che non possono proporre ciascuno un certo modo di operare pensando di essere i più bravi, perché gli utenti non gradiscono che ogni volta che acquistano una nuova auto debbano imparare ad interagire con un software che risulta diverso da costruttore a costruttore.
È necessario standardizzare
Tutti noi saremmo disorientati se ad ogni cambio di una nuova auto dovessimo adattarci a sistemi di guida diversa. Non ci piacerebbe certamente trovare nella nuova auto il pedale del freno in un posto diverso dal solito o il volante sostituito da una cloche o l’acceleratore non più a pedale ma da azionare a mano. Quando cambiamo l’auto, apprezziamo qualche novità ma vogliamo comunque che certi standard siano rispettati.
E poiché il software è in pratica il mezzo attraverso il quale l’utente colloquia con l’autovettura è ovvio che analogamente al freno, al volante e all’acceleratore, il modo con cui colloquiarvi debba essere abbastanza standard.
Sta accadendo invece la stessa idiozia che ho sempre criticato parlando dei gestori delle colonnine di ricarica, dove ognuno ha inventato una propria applicazione necessaria per ricaricare, cosa che fa solo impazzire gli utenti.
Le auto non si cambiano così frequentemente come si va a ricaricare, ma certamente è molto scomodo per gli utenti dover imparare ad usare un software completamente diverso quando acquistano una nuova auto che non sia dello stesso costruttore di quella vecchia. E’ quindi un problema di standard che non esiste ma che dovrebbe esistere. E allora ora provo a dimostrarvi quanto è vero quello che ho affermato.
Pensiamo al sistema operativo dei nostri computers
Tutti noi usiamo certamente un computer e l’abbiamo cambiato anche più volte ma se fino a ieri abbiamo avuto un computer con un sistema operativo Windows è quasi certo che non ne acquisteremo uno col sistema operativo OSX di Apple né uno con Linux.
Questo perché per molto tempo abbiamo interagito con il computer attraverso un sistema operativo che ci è diventato familiare. E allora anche se cambiamo computer, che sia più potente più capiente o meno ingombrante, comunque vorremmo continuare ad interagirvi allo stesso modo.
Quello che accade invece con le auto, da quando il software è presente su di esse, è che cambiando auto si deve ricominciare ad imparare come si possono attivare le tante funzioni, che pur essendo in buona parte le stesse su tutte le auto, vengono messe a disposizione degli utenti in modi completamente diversi, visto che ogni costruttore ha progettato il proprio sistema di interfaccia con l’utente.
E allora non sarebbe utile e ben fatto che anche per le auto esistessero uno o due sistemi operativi ben fatti, progettati e realizzati da chi questo lavoro lo fa da decenni?
Certamente sia Apple che Microsoft sarebbero in grado di realizzare due diversi ma entrambi eccellenti sistemi operativi per auto, e se lo facessero loro, entrambi vi integrerebbero le altre apparecchiature informatiche esistenti (PC, telefoni, orologi, ecc) e lo farebbero ad arte e rispettando le forme a cui gli utenti sono abituati da anni.
Apple Car Play e Android Auto
Quello che dico non è una eresia perché tutti sappiamo che esiste uno standard “de facto” (Apple Car Play e Android auto) realizzato dalle grandi case di software che consente di integrare gli Smart Phone con il software dell’auto di qualunque marca. Infatti, ormai tutti i produttori di auto consentono l’uso di questa integrazione anche se qualche brand poco corretto la fornisce a pagamento. Chi utilizza questa integrazione, e sono moltissimi, molto spesso finisce per preferire le funzioni disponibili nell’integrazione in luogo di quelle offerte dall’auto, perché esse sono realizzate in maniera già molto nota all’utente dato che ricalcano i metodi usati sui telefonini.
Accade quindi spesso che non si utilizza più il navigatore fornito dal software dell’auto, ma un navigatore più performante, più aggiornato e gratuito e anche a cui si è abituati da tempo. Si utilizza la radio e la telefonia offerta dall’integratore e si abbandona quasi tutto il resto del software dell’auto.
I costruttori di auto hanno creato i propri navigatori che sono sempre peggiori di quelli gratuiti disponibili con Apple Car Play o Android Auto e che richiedono aggiornamenti spesso anche molto costosi, mentre quelli come Apple Maps o Google Maps sono gratuiti, sempre aggiornatissimi e tengono conto del traffico.
I costruttori di auto, quasi tutti, offrono un’interfaccia vocale che il più delle volte è assolutamente ridicola se raffrontata con Siri o con Alexa o con l’assistente vocale di Google. Insomma questa è la dimostrazione che non è facile improvvisarsi informatici e che sarebbe molto più saggio affidarsi a chi progetta e realizza sistemi operativi da decenni.
Il risultato sarebbe anche una standardizzazione dei sistemi operativi anche nelle auto che assomiglierebbero certamente a quelli che da anni noi siamo abituati ad usare.
Conclusioni
Sarebbe bello nel futuro poter acquistare un auto di qualunque marca e poi scegliere di farsela consegnare con il software Windows o quello Apple o quello Linux, giusto per poter continuare a interagire con essa alla maniera a cui ciascuno di noi è avvezzo.
Questa soluzione, renderebbe anche più indipendenti, gli utenti, dalle manovre poco corrette dei produttori di auto e consentirebbe a ciascuno di scegliersi il software che più gli piace e che offre la migliore assistenza.
Se ci saranno, solo pochi sistemi operativi, chi ne avrà scelto uno lo continuerà ad usare anche con la nuova auto. Forse troverà nella nuova auto qualche funzione non presente nella vecchia, ma il modo con cui la funzione sarà messa a disposizione non differirà dalle altre già note. Se sulla vecchia auto avrà installata qualche applicazione a lui comoda, potrà trasferirla certamente sul sistema operativo della nuova auto, senza dovervi rinunziare.
Franco Fellicò