Progettare l'interazione tra utenti e prodotto è una materia complicata e spesso anche dispendiosa, perché ci costringe a fare molti test utente. Esiste però un modo, molto utilizzato in User Experience Design, per andare a ridurre al minimo possibile questi test utente: la valutazione euristica.
In informatica - senza andare troppo nel tecnico - un'euristica è una tecnica progettata per risolvere un problema nella maniera più rapida e semplice possibile, che di solito significa prevenire i problemi e non aspettare che si verifichino. Esistono diversi sistemi di euristiche, in complessivo sono centinaia di euristiche possibili, ma quello che ci interessa trattare in questo articolo è il sistema euristico più famoso e più utilizzato in ambito UXD, e cioè le 10 euristiche ideate da Jakob Nielsen nel 1993.
Nonostante sia ormai passato qualche anno dal '93, le Euristiche di Nielsen sono rimaste impareggiate in quanto ad adozione.
Ma andiamo ad analizzarle una per una.
1 – Visibilità dello stato del sistema
Il sistema deve sempre tenere informato l’utente su cosa sta facendo, fornendo un adeguato feedback in un tempo ragionevole.
Sapere se un oggetto è un link e dove porta
Icona o testo sottointensificato significa che la funzione non è disponibile
Presenza di un segnale di attività in corso (clessidra, barra di caricamento, messaggio testuale, etc.)
Nel momento in cui un utente si trova ad interagire con un sistema, è importante che ne possa conoscere lo status in qualsiasi momento. In pratica bisogna sempre fare in modo che le persone sappiano dove si trovano, cosa sta accadendo, e cosa potranno fare dal punto in cui si trovano. Ad esempio l'utente che visita un sito deve poter capire rapidamente se un oggetto o un testo sono collegamenti ipertestuali, e nel caso lo siano, dove possono portare. Oppure, se in un programma ci sono delle funzioni che in quel momento non si possono utilizzare è importante che il loro colore sia sottointensificato.
Ancora, bisogna sapere se c'è un attività in corso. A questo proposito possiamo fare riferimento alle barre di caricamento, che ci fanno sapere che sta succedendo qualcosa e ci danno un'idea del tempo che bisognerà attendere; oppure il classico cerchietto che vediamo quando non si carica velocemente una pagina web, che ci comunica che la macchina sta lavorando.
2 – Corrispondenza tra sistema e mondo reale
Il sistema deve parlare il linguaggio dell’utente, con parole, frasi e concetti a lui familiari.
Uso di messaggi testuali, icone, azioni dal significato condiviso da tutti ("salva con nome", icona "cestino", azione "copia e incolla"
Garantire l’associazione tra oggetti e informazione
Se per salvare un file abbiamo sempre usato "salva con nome", non è il caso di andare ad inventare un nuovo nome per quella funzione, perché magari ci sembra più accattivante o maggiormente aderente al nostro Tone of Voice. Salva con nome deve rimanere salva con nome, stampa deve rimanere stampa, e così via, perché altrimenti creeremo confusione e rallenteremo, peggiorandola, l'interazione tra l'utente e il nostro sistema.
3 – Controllo e libertà
L’utente deve avere il controllo del contenuto informativo e muoversi liberamente tra i vari argomenti.
Evitare procedure costrittive troppo lunghe (iscrizioni)
Evitare percorsi predefiniti senza possibili scorciatoie
Evitare azioni non volute dall’utente (apertura automatica di pagine non richieste)
L'utente deve avere il controllo informativo, cioè deve potersi muovere liberamente tra i vari argomenti all'interno del nostro prodotto, con procedure rapide, che non lo costringano a procedere in lunghi percorsi prima di arrivare a qualcosa.
Facendo un esempio concreto , che facilmente troverete familiare, i percorsi di acquisto di molti e-commerce costringono l'utente all'iscrizione, con procedure talvolta anche molto lunghe. L'utente ha bisogno di operazioni veloci. Quindi dove possibile è meglio non costringere l'utente all'iscrizione, permettere all'utente di acquistare velocemente ed iscriversi soltanto se vuole magari accedere a vantaggi ulteriori, sconti, etc.
Inoltre bisognerebbe inserire delle scorciatoie quando possibile: se un percorso può essere in parte saltato bisogna dare all'utente la possibilità di capirlo ed approfittarne. Infine bisogna evitare assolutamente azioni non volute dall'utente. Non succede più così spesso ma sicuramente ricorderete l'epoca dei pop-up compulsivi, queste finestre che si aprivano, a decine, su qualunque sito si provasse ad andare, ecco, dover chiudere 10 finestre per poter vedere il sito che voglio visitare, è un'azione certamente non voluta, oltre ad essere una pessima esperienza utente.
4 – Consistenza e standard
L’utente deve aspettarsi che le convenzioni del sistema siano valide per tutta l’interfaccia.
Riportare in ogni pagina alcuni elementi di riconoscimento (logo, stile grafico, etc.)
Dare la sensazione di essere sempre nello stesso ambiente.
Nelle varie interazioni con un prodotto, l'utente dovrebbe avere la sensazione di essere sempre nello stesso ambiente. Perché questo avvenga, è necessario che le convenzioni presenti nel mio sistema vengano mantenute per tutto il suo utilizzo. Se ad esempio un software ha un logo in alto a sinistra, è bene che resti in quella posizione in ogni schermata del prodotto, senza modificare posizione o forma nel tempo.
Allo stesso modo i menu dovrebbero rimanere pressoché uguali mentre si naviga in un sistema e così qualunque altro punto di riferimento. Se un sito rispetta un layout - tranne eccezioni particolari - bisogna cercare di mantenere lo stesso layout per tutta l'esperienza utente.
5 – Prevenzione dell’errore
Evitare di porre l’utente in situazione ambigue, critiche e che possono portare all’errore.
Dare la possibilità di tornare indietro
Evitare che la non comprensione induca in errore
Gli utenti sbagliano, è una cosa inevitabile, ma conoscendo almeno una parte degli errori che possono fare, possiamo innanzitutto cercare di prevenirli. Sapendo che è però impossibile prevenire qualunque errore, allora è importante dare la possibilità di riparare ai propri sbagli. Se l'utente si trova in una procedura magari anche abbastanza lunga, deve sempre avere la possibilità di tornare indietro: magari compilando una form di cinque pagine, potrebbe rendersi solo a fine procedura di aver scritto qualcosa di errato a pagina 2. In questo caso è importante avere la possibilità di tornare indietro e modificare quell'informazione non corretta.
Per fortuna questa è una pratica molto usata negli e-commerce, che prima della finalizzazione dell'acquisto, stampano a schermo un ultimo messaggio: "stai acquistando questo prodotto per questo prezzo, vuoi confermare?" In questo caso se l'utente ha sbagliato ad esempio prodotto, colore, quantità, può tornare indietro e modificare il suo errore. Un cliente soddisfatto è più importante del "cash" subito senza se e senza ma.
6 – Riconoscimento anziché ricordo
Le istruzioni per l’uso del sistema devono essere ben visibili e facilmente recuperabili.
Produrre layout semplici e schematici
Non contare sulla capacità dell’utente di ricordare il posizionamento degli oggetti che caratterizzano le pagine
Evitare che l’utente riscopra ogni volta l’interfaccia
Le istruzioni per l’uso del sistema devono essere ben visibili e facilmente recuperabili. Evitare che l’utente riscopra ogni volta l’interfaccia.
Il cervello umano è fatto in modo che il riconoscimento, il vedere un oggetto e capire di cosa si tratta, è un processo cognitivo molto più rapido rispetto al ricordo. I processi legati alla memoria di rievocazione sono processi più lenti rispetto ad altri processi cognitivi, di conseguenza quando un utente accede ad un sistema, deve subito capire come si utilizza, senza aver bisogno ad ogni accesso di dover ricordare quali sono le procedure. Non dobbiamo mai costringere l'utente a dover ricordare.
Quando si progetta un'interfaccia bisogna pensare ad ogni utilizzo come se fosse il primo accesso al prodotto, senza mai contare sulla capacità dell'utente di ricordare come si fa una cosa.
7 – Flessibilità d’uso
Offrire all’utente la possibilità di un uso differenziale (a seconda della sua esperienza) dell’interfaccia.
Offrire una navigazione gerarchica per i meno esperti
Offrire delle scorciatoie per i più esperti
Dobbiamo dare all'utente la possibilità, a seconda della sua esperienza con il nostro sistema, di farne utilizzi differenti.
Un utente base farà un utilizzo diverso da un utente esperto, quindi, è bene pensare a sviluppare delle "procedure esperte" all'interno del sistema, quali possono essere ad esempio le hotkey: un utente di windows più avanzato probabilmente premerà WIN + E per aprire una cartella, mentre un utente base andrà sulla barra di avvio e farà click col mouse su "Esplora File" Sulla cartella che c'è nella barra di avvio e
Quindi, interfaccia semplice, didascalica e gerarchica per permettere agli utenti meno esperti di utilizzare il sistema senza difficoltà, e procedure più veloci per chi già ha imparato il sistema e quindi può prendere delle scorciatoie.
8 – Design e estetica minimalista
Dare maggior importanza al contenuto che all’estetica.
Evitare di accentuare oggetti irrilevanti o raramente necessari (immagini grandi, etc.)
Evitare che il contenuto informativo della pagina sia messo in secondo piano
Evitare che l’utente si distragga o si confonda.
In questo caso non è una questione di stile, non è una questione di come ci piace o come non ci piace.
È importante dare al contenuto l'attenzione.
Questo non significa "facciamo sistemi brutti", assolutamente. Significa però che l'estetica deve essere in funzione del contenuto e mai il contrario.
Questa è una cosa che non dirò mai abbastanza perché è una cosa di cui spesso non si ha contezza. Ci si dedica tantissimo a fare dei prodotti magari bellissimi, pieni di effetti, animazioni, cose fantastiche, e si tende a dimenticare che quello che interessa all'utente è il contenuto, non la forma.
9 – Aiuto all’utente
Aiutare l’utente a riconoscere, diagnosticare e recuperare l’errore.
I messaggi di errore devono essere espressi in linguaggio comprensibile (senza codici)
I messaggi di errore devono indicare in modo preciso il problema e suggerire una soluzione
Chiedere conferma per un’azione importante
In questo caso ci riferiamo principalmente a quando succede qualcosa che non va.
Quando abbiamo ad esempio un messaggio di errore è bene dire all'utente cosa sta succedendo.
Tutti, quando navighiamo in internet, ci troviamo davanti qualche bel codice errore: 403, 404 pagina non trovata, errori 500. Ogni errore ha un suo codice in informatica, ma è importante nel momento in cui un utente finale deve utilizzare il prodotto, il non aspettarci che lui capisca dal codice d'errore cosa sta succedendo, ma dobbiamo dirgli - nel modo più didascalico possibile - che è successo, perché si è verificato questo errore, e consigliargli alcune possibilità per andare a risolvere questo errore.
Similmente a ciò che abbiamo detto prima, bisogna chiedere conferma quando un'azione è molto importante.
Quindi se sta facendo qualche procedura irreversibile, se sta acquistando qualcosa e quindi spendendo i suoi soldi, è molto importante chiedere conferma all'utente prima che questo accada.
10 - Documentazione
Anche se il sistema dovrebbe essere usabile senza documentazione è preferibile che essa sia disponibile.
Deve essere facile da reperire
Focalizzata sul compito dell’utente
Strutturata in un insieme di passi comprensibili
Ora, mi ripeterò, è una cosa che ho detto già quando parlavo in generale di Usabilità: ogni prodotto deve avere una documentazione, ogni prodotto deve avere il suo manuale d'uso.
Nel caso di un software per esempio, non è necessario avere il classico libretto cartaceo, può essere un pdf, ma può anche essere - e faccio l'esempio di moltissime Web App che utilizzano questa modalità - un tutorial durante l'uso, quindi quei classici tooltip, quei fumetti che mi comunicano cosa sto facendo, e come posso farlo. Quindi un piccolo tutorial, che non disturba più di tanto, mi permette di utilizzare il prodotto e nel frattempo di impararlo.
E sì, abbiamo sempre detto che c'è bisogno di sistemi che non hanno bisogno di istruzioni. È verissimo, ma non possiamo dare per scontato che gli utenti capiscono sempre tutto. Quindi progettiamo i prodotti pensando che non abbiano bisogno di istruzioni e poi diamo le istruzioni per utilizzarli meglio.
Concludendo
Utilizzare queste euristiche è un modo per velocizzare la progettazione.
Creare un prodotto utilizzando questo sistema di euristiche, ci farà risparmiare tempo e risorse in quelli che saranno i test utente futuri, perché avremo anticipato ed evitato una serie di problemi.
Le euristiche di Nielsen sono soltanto 10, ma sono state scritte analizzando 249 problemi di usabilità. Quindi immaginate che vantaggio vi può dare semplicemente progettare tenendole presente.