Interoperabilità Uomo-Macchina: ovvero metterci la (inter)faccia utente… A cura di Giulio Destri.

Giulio Destri

Giulio Destri

Digital Transformation Advisor & Innovation Manager ● Business Coach & Trainer ● Business Analyst & ICT Project Manager.

Il concetto di interfaccia utente

Nell’articolo precedente è stata definita la comunicazione come base per l’Interoperabilità. In questo articolo verrà trattato il tema dell’Interfaccia Uomo-Macchina, attraverso cui interagiamo ogni giorno (e sempre di più) con i molteplici dispositivi che ci circondano e che in queste ultime settimane sono i nostri più frequenti interlocutori nonché aiutanti.

Tornando a noi da un punto di vista squisitamente tecnico, possiamo definire l’interfaccia utente come lo strumento (o l’insieme di strumenti) con cui gli esseri umani interagiscono con le macchine.

Un altro nome con cui viene chiamata di frequente è anche interfaccia uomo-macchina o HMI, dalle iniziali della definizione inglese Human-Machine Interface. Deve rendere possibile una comunicazione bidirezionale fra uomo e macchina.

  1. Il primo scopo della HMI è “tradurre” le intenzioni dell’operatore umano, espresse attraverso gesti (di dita, mani, piedi o altre parti del corpo), espressioni del viso o, più di recente, voce e parole, in comandi, istruzioni e dati da immettere nella macchina cui è connessa. E questa è la funzionalità di ingresso alla macchina o input utente.
  2. Il secondo scopo della HMI è “tradurre” informazioni interne alla macchina e relative a stati fisici (ad esempio, la temperatura della CPU in un PC) oppure a stati logici (ad esempio, il calcolo dell’I.V.A. di un prezzo) in rappresentazioni leggibili dall’apparato sensorio dell’operatore umano (ad esempio, quadranti che indicano temperature, immagini sullo schermo di un PC, voce sintetizzata di un assistente digitale, feedback tattile in un dispositivo per videogame ecc…). E questa è la funzionalità di uscita della macchina o output, che rappresenta anche l’input inviato dalla macchina all’utente.

Da un punto di vista funzionale possiamo definire tre tipologie di interfacce utente:

  • interfacce utente di amministrazione e configurazione, non necessariamente semplici, destinate a amministratori di sistema, configuratori, manutentori, ecc… che rendono possibili configurazioni, manutenzioni, ed operazioni di gestione tecnico-amministrativa delle macchine;
  • interfacce utente di sviluppo, attraverso cui vengono modificate (ad esempio, arricchite, ampliate o ridotte) le funzionalità che un sistema (macchina) programmabile, come, per esempio, un PC o un dispositivo mobile, offrono all’utente finale;
  • interfacce utente di uso, attraverso cui gli utenti finali usano la macchina o il sistema digitale per lo scopo per cui esso è stato creato (ad esempio, videoscrittura, calcoli, gestione fatture, fotoritocco, chat ecc…); in un contesto di PC o dispositivo mobile, nello stesso dispositivo hardware coesistono molti diversi programmi software, ognuno dei quali ha una propria interfaccia utente specifica, legata alla sua funzione; tali interfacce hanno elementi in comune e sono gestite dal sistema operativo (ad esempio, windows, android, ecc…), che ne definisce le caratteristiche comuni (ad esempio, le cornici con i pulsanti “riduci a icona”, “ingrandisci a tutto schermo” e “chiudi” intorno alle finestre con l’interfaccia utente delle applicazioni) e stabilisce se le operazioni delle varie applicazioni possono essere compiute simultaneamente o no (multitasking reale o virtuale).

 

Storia ed evoluzione delle interfacce utente

Le interfacce utente sono presenti da molto tempo nella nostra vita. Prima ancora dell’invenzione del computer, strumenti quali radio, grammofoni, automobili, macchine da scrivere ecc…. avevano già una apposita interfaccia utente, più o meno semplice, che consentiva agli utilizzatori di interagire con esse.

Anche nel comparto industriale, i quadri comando di apparati con quadranti, spie luminose, leve, bottoni e manovelle (input e output…) sono nati molto prima dell’avvento della elettronica.

È però con la nascita e la successiva rapida evoluzione dei primi calcolatori digitali programmabili che il concetto di interfaccia utente diventa qualcosa di distinto dalla macchina di cui fa parte e destinato ad evolversi nella attuale esperienza utente (User eXperience o UX).

Le primissime macchine calcolatici erano strumenti meccanici, come la Pascalina (1642) e la macchina di Babbage (progettata nel 1834 ma realizzata solo in parte), seguite nei primi decenni del XX secolo dai calcolatori elettromeccanici come lo Z3.

I primi calcolatori elettronici furono realizzati con la tecnologia disponibile negli anni ’30 e ’40: circuiti elettrici a relè, valvole, interruttori. L’insieme dei bit al loro interno doveva essere impostato “fisicamente” attraverso interruttori; l’input e l’output avveniva attraverso schede perforate o altri strumenti simili.

È interessante notare che, mentre il lavoro di progettazione di ENIAC (uno dei primi calcolatori programmabili completamente elettronico) era stato fatto da ingegneri maschi, il lavoro di programmazione (quindi, fra l’altro, di azione sugli interruttori) veniva svolto da donne, laureate in matematica o materie simili e reclutate fra il gruppo di “calcolatrici umane” che svolgevano calcoli matematici per conto della Marina degli USA.

Quel gruppo di donne, oggi note come ENIAC Girls, contribuì validamente al perfezionamento ed alla successiva evoluzione della macchina e, soprattutto, all’avvento di caratteristiche oggi basilari nella programmazione e nella correzione dei difetti del software. La tradizione delle “calcolatrici umane” continuò anche durante gli anni delle prime missioni spaziali, come nel caso della matematica Katherine Johnson, poi promossa al rango di ingegnere aerospaziale.

Poi negli anni successivi le schede perforate si confermarono come il mezzo standard per interagire con i computer. Schede per immettere programmi, schede per immettere dati e schede per l’output. Con i computer che eseguivano le elaborazioni sull’input nel suo insieme: di solito, fino all’uscita e alla decodifica dell’output, non era possibile verificare la eventuale presenza di errori.

L’interfaccia utente era quindi formata da macchina perforatrice di schede e interprete delle schede. Anche in questo caso molti degli operatori addetti al trattamento delle schede erano donne.

Nel corso degli anni ’60 la situazione cambiò radicalmente. La nascita dei terminali video, dei minicomputer e dei micro e personal computer (tipologia di dispositivi inaugurata dal modello Programma 101 di Olivetti nel 1962) contribuì alla progressiva diffusione dei computer nel mondo del lavoro. E la nascita, a partire dalla fine degli anni ’50, dei linguaggi di programmazione di alto livello, che separano la rappresentazione linguistico-simbolica delle istruzioni da quella interna al computer, rese possibile una sempre migliore espressione delle istruzioni stesse da parte dei programmatori umani.

Al termine del decennio nacque UNIX, il sistema operativo da cui sono derivati direttamente Linux e MacOS X, nonché Android, Apple iOS e con cui anche Windows ha molte caratteristiche in comune. Ad esempio, multitasking (tanti programmi che agiscono simultaneamente) e multiutenza (vari utenti che possono accedere al computer), caratteristiche che oggi consideriamo naturali per i PC e altri dispositivi.

Mancava solo l’interfaccia grafica.

Per molti anni dopo l’avvento dei sistemi interattivi, l’interfaccia utente dei computer fu la riga comandi (in inglese CLI da Command-Line Interface), ossia uno schermo (di solito) nero, di solo testo, con un cursore lampeggiante che indicava attesa di comandi, espressi come parole o insiemi di parole battute sulla tastiera, da parte dell’utente. Ancor oggi questa interfaccia esiste (e funziona bene) dentro i nostri sistemi operativi (CMD o prompt dei comandi in Windows, shell in Linux e MacOS…). Questa interfaccia è anche, a mio parere, fondamentale, da un punto di vista didattico, per l’addestramento di tutti coloro che devono amministrare sistemi informatici.

L’avvento delle interfacce grafiche (in inglese GUI, da Graphical User Interface) nel corso degli anni’80 contribuì a cambiare per sempre l’esperienza dell’utente con i computer. Anche per persone con poca cultura informatica diventava possibile una interazione facile ed intuitiva. L’informatizzazione di massa anche fuori dal mondo del lavoro era iniziata.

Le interfacce utente oggi

Oggi ci appare naturale interagire con un PC, uno smartphone o un tablet (che, ricordiamolo sempre, sono PC semplificati e non sono elettrodomestici) attraverso una interfaccia touch screen, in cui non dobbiamo preoccuparci di spostare un mouse, ma tocchiamo direttamente lo schermo. I gesti, trasposti dal mondo reale, hanno un significato intuitivo, che consente anche a bambini al di sotto dei due anni di interagire con questi dispositivi.

Quadri sinottici e pannelli operatore rendono possibile un approccio simile nel mondo industriale (HMI per l’automazione). Gli schermi tattili riducono i costi, rispetto ad interfacce “fisiche”, e per questo la loro diffusione continua a crescere, anche in un contesto domestico (per esempio, pensiamo ai mini-pannelli tattili per l’impostazione della temperatura nella casa).

Inoltre l’avvento di sistemi a riconoscimento vocale consente di attivare funzioni semplicemente chiamandole con la voce, ovvero di richiedere compiti ad un dispositivo, come, ad esempio, cercare un luogo o un numero di telefono.

In altri casi l’interfaccia non richiede nemmeno un contatto diretto: strumenti dell’ultimo decennio, come il Kinect, il Wiimote, lo smartphone usato come controller, hanno reso possibile interagire attraverso il corpo ed i suoi movimenti con la macchina. 

Nata principalmente per l’uso nei giochi, questo tipo di interazione ha reso possibili anche nuove modalità espressive artistiche, come, ad esempio, la generazione di suoni con i movimenti del corpo, invertendo quindi il legame fra musica e danza, in evoluzione di quanto si faceva già con strumenti musicali senza contatto come il Theremin. Oppure di muovere un cursore con gli occhi, permettendo anche a persone con gravi disabilità di interagire con la macchina e quindi, ad esempio, di scrivere testi e parlare con la voce sintetizzata.

Al CES 2020 sono state presentate le nuove interfacce basate sulla registrazione delle onde cerebrali da parte di sensori: a prezzi accessibili diventa possibile comunicare con dispositivi elettronici semplicemente usando il pensiero, situazione in precedenza presente solo in pochi laboratori sperimentali.

E robot sempre più antropomorfi, oppure in forma di cuccioli, leggono la nostra mimica facciale e rispondono, sempre tramite una mimica facciale, imitando comunicazioni emotive.

In sostanza le interfacce diventano sempre più “naturali” e sempre più “profonde” nella loro azione. È possibile che in futuro si realizzi la lettura del pensiero e la sua rappresentazione in immagini oppure la trasmissione di sogni o sensazioni tra uomo e macchina e a distanza fra persone, situazioni fino ad oggi solo immaginate in romanzi e film di fantascienza.

 

La produttività delle interfacce utente

Dopo questo excursus sulla storia ed evoluzione delle interfacce uomo-macchina, poniamo l’attenzione al loro uso entro i processi dei luoghi di lavoro.

Come analizzato in questo articolo, i processi sono successioni logiche e temporali di attività orientate ad uno scopo. Ad esempio, elaborazione di dati di vendita per stabilire quale è il prodotto che garantisce migliori guadagni, gestione di una richiesta di acquisto, registrazione contabile di una fattura ricevuta, fabbricazione di un componente meccanico, ecc… Le attività che compongono i processi richiedono tempo per la loro esecuzione. L’adozione degli strumenti informatici viene fatta principalmente per questi motivi:

  • riduzione dei tempi necessari per svolgere le attività (tempi di elaborazione, tempi di recupero di informazioni memorizzate, ecc…);
  • riduzione del tasso di errori legato alle singole operazioni;
  • svolgimento di attività con prestazioni non ottenibili solo con le azioni umane (ad esempio, fabbricazione di prodotti a ciclo continuo sulle 24 ore grazie a robot, scansione di migliaia di pagine al minuto grazie a scanner di nuova generazione, calcoli per simulazioni meteorologiche, ecc…).

E non dobbiamo mai dimenticare che, nella maggior parte dei casi (soprattutto in un contesto amministrativo-gestionale), la macchina offre un supporto ad un lavoro svolto da persone. 

Quindi, dal punto di vista della interazione uomo-macchina che avviene attraverso l’interfaccia utente, le performance di quest’ultima sono legate alla velocità con cui le persone riescono a svolgere, usando lo strumento informatico, le azioni elementari che formano le attività del proprio lavoro. Ad esempio, per un addetto alla contabilità il parametro chiave può essere il numero dei documenti contabili che riesce ad inserire in un sistema informatico nella unità di tempo, tipicamente un’ora.

E questo è un parametro fondamentale da tenere presente durante le trasformazioni digitali con il cambio di strumenti informatici: quando si cambia una interfaccia utente, la velocità di lavoro cala, almeno durante i primi tempi di uso del nuovo strumento. Ad esempio, pensiamo ai sistemi di videoscrittura (cambio di versione di Word o passaggio da Word a Writer…).

Accanto alla funzione primaria di usare la tastiera per scrivere un testo, come si faceva con le antiche macchine da scrivere meccaniche, sono presenti molte combinazioni di tasti (spesso chiamate sequenze di escape) che consentono di svolgere funzioni ausiliarie utili (ad esempio, F1 per l’help in linea, CTRL-C CTRL-V per il copia e incolla ecc…). In molti casi queste sequenze sono tipiche di un programma, così come la posizione del menu con cui ottenere la stessa funzione. Anche se nel tempo c’è stato un processo di standardizzazione, ancora oggi fra programmi che svolgono compiti simili possono esistere molte differenze nella interfaccia.

Pertanto, quando l’interfaccia cambia, il tempo che impieghiamo a fare le operazioni cresce, dobbiamo pensare ad azioni che svolgevamo in modo automatico con il vecchio programma, questo non ci consente di stare al passo con i ritmi spesso frenetici richiesti dal lavoro quotidiano… e sappiamo bene quali sono gli effetti.

Dal Desktop al Cloud: come (probabilmente) lavoreremo nei prossimi anni

Dagli anni ’90 in poi, l’avvento di sistemi con l’interfaccia grafica ha portato ad una standardizzazione della interfaccia del PC: il Desktop, comune a Windows, a MacOS X e a Linux. Oggi, come proposto da Microsoft ed altri fornitori di servizi cloud, assistiamo al trasporto in cloud di tante funzioni. Anche di quella del PC, visto come una piattaforma per scrivere testi (Word, Writer…), usare il foglio elettronico (Excel, Calc…), preparare presentazioni (PowerPoint, Impress…), comunicare con altri (Email, chat, Calendar…), archiviare e condividere file (cartelle personali e condivise…), oltre che per fungere da client di altre applicazioni.

La convergenza verso il browser, che passa da semplice strumento di navigazione a contenitore di interfacce web di programmi e, contemporaneamente, la capacità di realizzare applicazioni che possono operare entro un browser o, con pochissime modifiche, come applicazioni native sul Desktop di un PC o di un tablet, sta creando un nuovo modo di operare.

Il Desktop punta sul Cloud: posso vedere tutto dentro il mio browser con servizi come Office/Microsoft365, Google Docs ecc… ed accedervi non solo dal mio PC, ma anche dal mio tablet mentre viaggio, comunicando in modo rapido grazie alle reti 4G e 5G. Oppure posso usare ancora programmi nativi, ma salvando i miei file in rete ed accedendovi da molti dispositivi (ogni licenza di Office365, ad esempio, consente di usare office da 5 dispositivi diversi). I produttori credono molto a questa trasformazione (da prodotto a servizio software) e stanno tutti spingendo in questa direzione. Lo scenario che si apre è molto ampio, comporta nuove opportunità e nuovi rischi, va affrontato secondo quello che è: una grande trasformazione digitale.

Nel prossimo articolo analizzeremo cosa c’è “dietro” il cloud e tanti altri sistemi: come sistemi digitali distinti comunicano fra loro, ovvero le interfacce macchina-macchina.

 


CREDITS IMMAGINI

Immagine di copertina (rielaborata):
ID Immagine: 60013217. Diritto d'autore: Sergey Nivens  
ID Immagine: 30206033. Diritto d'autore: glebstock
Immagine nell'articolo: 
ID Immagine: 83536632. Diritto d'autore: scyther5