Il buon vecchio caro zio Jakob Nielsen, di cui riporto la foto
definisce l'usabilità come:
- Facilità di apprendimento
- Efficienza d'uso
- Memorizzabilità
- Frequenza e gravità degli errori
- Soddisfazione soggettiva
L'usabilità è una caratteristica che deve seguire il progetto fin dall'inizio, e può essere agevolata, tra l'altro, dall'uso di prototipi:
- prototipi orizzontali, con interfacce prive di funzionalità implementate
- prototipi verticali, con poche funzionalità implementate completamente
- scenari, con la sola simulazione di un percorso dell'utente
Un sistema progettato bene segue alcune specifiche "euristiche", che trovano corrispondenza nel buon senso:
- Visibilità dello stato del sistema (es. il sistema sta facendo qualcosa? Ci sono barre di progressione?)
- Corrispondenza con il mondo reale (es. un calendario assomiglia al calendario cartaceo che ho in ufficio?)
- Controllo da parte dell'utente e libertà (es. se faccio un errore posso tornare indietro facilmente?)
- Consistenza e standard (es. perché per la stessa funzionalità si usa "elimina" e "cancella"? Usa sempre l'una o l'altra parola)
- Prevenzione degli errori (es. un javascript che avvisi prima che i dati siano inviati al server)
- Riconoscimento anziché ricordo (es. se passo da una schermata di registrazione a quella successiva il sistema dovrebbe ricordarmi quanto ho inserito in quella precedente)
- Flessibilità ed efficienza d'uso (es. personalizzazione dei preferiti, (dis)abilitazione degli shortcuts...)
- Estetica e design minimalisti
- Aiuto nella gestione dell'errore dell'utente (es. messaggi di errore di Access sono NON usabili)
- Aiuto e documentazione (es. popup di spiegazione della funzionalità)