Di Scott Berkun, Nov 1999
“Una sciocca coerenza è il folletto delle piccole menti” – Emerson
La gente non ama imparare le cose. Se si prendono il tempo di imparare qualcosa, si aspettano di poter applicare quella conoscenza in molti posti. Ne consegue che i buoni designer conservano il numero di cose che gli utenti devono imparare per fare le cose. Le strade delle città americane sono buoni esempi di conservazione della conoscenza. Ovunque in America, i segnali di resa e di stop sono esattamente gli stessi. I semafori usano il rosso, il giallo e il verde per significare esattamente le stesse cose, indipendentemente dalla strada o dalla città. Le cassette della posta agli angoli delle strade usano gli stessi colori e le stesse icone, quindi sono chiaramente identificabili ovunque. Diventa difficile per le persone quando la loro conoscenza delle cose viene meno. Un guidatore di un paese con segnali stradali diversi che visita l’America farà degli errori fino a quando non imparerà i nuovi segnali. Anche sottili variazioni come la differenza di velocità di due diversi semafori gialli possono far commettere errori ai guidatori americani.
Le regole della strada si applicano al web design e a tutte le forme di design dell’interfaccia. Se un’applicazione chiama un pezzo di funzionalità “stampa”, gli utenti si aspettano che il significato di “stampa” sia lo stesso in tutta l’applicazione. Su un sito web, se l’utente vede l’icona del carrello della spesa nell’angolo in alto a destra, si aspetterà di vederla nello stesso posto, con lo stesso aspetto, in ogni pagina di quel sito web, se non in tutti i siti web che visita. Non solo la coerenza giova all’utente, ma anche ai designer e agli sviluppatori. Una volta che il comando “print” è stato nominato dal designer, lo sviluppatore non deve più perdere tempo a pensare a come nominarlo. Se c’è del codice per il loro comando di stampa, può essere riutilizzato ovunque all’interno dell’applicazione. La coerenza è meravigliosa quando è usata in modo appropriato perché migliora l’esperienza sia per gli sviluppatori che per i loro utenti.
Quando la coerenza è un male?
In rari casi, la coerenza può diventare un mostro auto-perpetuante: Deve essere usata per uno scopo. Una coerenza stupida è quella che non serve all’utente finale. Fare in modo che le cose abbiano lo stesso aspetto e funzionino allo stesso modo è inutile se l’utente non può più svolgere i suoi compiti. Classifica il rendere le cose utili al di sopra del renderle coerenti. Un esempio sono le interfacce per i videogiochi. Immaginate che la vostra azienda stia sviluppando due videogiochi, un gioco di guida e uno di Pac-Man. La migliore UI per il gioco di guida sarebbe un volante, ma il gioco Pac-Man funzionerebbe meglio con un joystick e alcuni pulsanti. Cercare di progettare una UI da usare per entrambi questi giochi sarebbe un disastro. Nel migliore dei casi si raggiungerebbe una via di mezzo che non va bene per niente. La coerenza applicata a certi compiti dell’utente può rendere l’esperienza dell’utente peggiore, non migliore. La coerenza non garantisce l’usabilità. Generalmente aiuta un’interfaccia utente, ma non ci sono garanzie nel design dell’interfaccia. In questo esempio di videogioco si dovrebbe scegliere tra il costo per l’utente di imparare due diverse UI specializzate contro l’apprendimento di una UI che potrebbe riapplicare ma che non è adatta a nessuno dei compiti che vuole fare.
Nell’esempio del semaforo, il tempo della luce gialla in un incrocio a quattro vie potrebbe essere cambiato dagli ingegneri per compensare i modelli di traffico specifici di un incrocio. Una luce gialla più lunga in una direzione può dare alla strada più trafficata più tempo per far passare le auto rispetto all’altra strada con meno traffico. È un compromesso di un’ottimizzazione locale invece di una semplificazione globale. Risolvere un grave problema locale può valere la pena di creare un problema globale minore. Avere buoni dati sull’uso delle cose, come i dati sul traffico dell’incrocio, è la chiave per prendere queste decisioni. Devi essere chiaro sui pro e i contro di ogni estremità del trade-off, e prendere le migliori decisioni per la caratteristica in relazione all’intero prodotto. A volte la coerenza globale è la scelta giusta. A volte la cosa migliore è ottimizzare localmente.
Quando la coerenza è buona sul web?
La coerenza è ottima perché alle persone piacciono le cose prevedibili. Si sentiranno a loro agio quando potranno contare su diverse parti del vostro prodotto per fare esattamente quello che pensano che farà. Un errore comune nella progettazione di siti web è prendere un elemento UI esistente da HTML e ottimizzarlo per un sito web. Un esempio è la casella dell’elenco a discesa fornita dall’HTML per scegliere da un elenco di scelte. Il comportamento standard è che l’utente deve scegliere un elemento dalla lista, e poi cliccare un pulsante OK per confermare la scelta. Alcuni siti web usano Javascript per far sì che l’elenco a discesa confermi automaticamente la scelta, risparmiando all’utente il click extra di premere OK. Indipendentemente da tutte le altre cose, questo design potrebbe funzionare bene. Ma poiché questo controllo modificato sembra simile a quello predefinito usato sul web, gli utenti Windows e Macintosh non sanno mai cosa aspettarsi e probabilmente commettono errori. La lezione qui è che se una modifica ad un controllo normalmente coerente causa costi di riapprendimento ed errori, probabilmente non ne vale la pena, specialmente se fa risparmiare all’utente un solo clic. Il Web è un brutto posto per ottimizzazioni come questa perché sappiamo che gli utenti visitano molti siti Web durante una sessione, e la maggior parte di essi non avrà il vostro nuovo design.
Ho avuto discussioni con designer di siti Web che sentono che la coerenza è una cosa del passato, e che il design dei siti Web è una nuova frontiera dove la coerenza conta meno. È una logica tenue. Il modo in cui gli esseri umani interagiscono con il mondo non cambia quando lo fa la tecnologia, sarà sempre basato sul vedere, toccare e sentire le cose, e usare il nostro cervello per interpretare il significato di queste cose. Gli esseri umani tenderanno naturalmente a riapplicare le conoscenze apprese, e i buoni designer useranno questo per fare progetti migliori. La creatività è grande se il risultato è qualcosa di più utile per gli utenti, ma se l’unico risultato è che i designer/sviluppatori sono più felici con il loro portfolio, allora stanno progettando per loro stessi, non per i loro utenti.
La questione chiave è se una specifica applicazione della coerenza è utile e non stupida. Quando penso alle interfacce sul Web, ripenso ai primi giorni delle interfacce GUI. Una delle migliori caratteristiche dei sistemi operativi Windows e Macintosh era l’uso di una barra di menu standard per tutte le applicazioni. Può aver ridotto parte della creatività delle applicazioni nei modi in cui presentavano i comandi, ma ha reso la vita degli sviluppatori e degli utenti molto più facile perché potevano riutilizzare le cose che avevano già imparato. In questo caso, la vittoria globale di un modo coerente di presentare i comandi agli utenti superava qualsiasi possibile valore di un’applicazione che faceva qualcosa di meraviglioso, ma che non era condiviso da altre applicazioni. È sempre un compromesso, e questo significa che i designer devono sempre considerare gli effetti della ricerca della coerenza.
La linea di fondo: Regole empiriche per la coerenza
Queste sono alcune linee guida per pensare alla coerenza nelle interfacce utente:
- Partite riutilizzando i controlli o i concetti esistenti nei vostri schizzi e prototipi, a meno che i vostri obiettivi non includano il cambiamento di una specifica attività o comportamento dell’utente, iniziate con quanta più coerenza possibile. Riutilizzare i concetti di lavoro è un bene. Le guide di stile sono di grande valore qui nell’aiutarvi a riutilizzare quante più conoscenze esistenti e buon lavoro di progettazione possibile.
- Se i vostri schizzi e prototipi non stanno funzionando negli studi utente o in altre valutazioni a causa del fallimento dei concetti esistenti, provate a far crescere un concetto esistente per coprire la nuova situazione che avete. Se cambiate il comportamento di un controllo, applicate quel cambiamento ovunque il controllo sia usato. Se cambiate un concetto, applicate coerentemente quel cambiamento.
- Se non potete estendere ciò che avete per risolvere il problema, andate a progettare un nuovo widget o concetto per risolvere il vostro problema.
- Se dovete usare casi speciali (ottimizzazione locale di un widget che non è usato ovunque), assicuratevi che sia il miglior compromesso che avete.
- Assicuratevi sempre che il successo dell’utente nei compiti abbia la precedenza sulla coerenza astratta del design.
Queste linee guida dovrebbero aiutarvi ad essere il più coerente possibile, senza essere sciocchi. Dovrebbero anche aiutarvi a mantenere le vostre interfacce semplici. Al centro di ogni pensiero progettuale c’è una serie di compromessi: velocità contro affidabilità, facilità di apprendimento contro competenza di esperti, coerenza globale contro ottimizzazione locale. Come disse una volta Ron Fein, “Il design è scegliere come fallire”, il che significa che ottimizzare per una cosa significa sempre fallire in un’altra. La chiave per un buon design è sapere quali caratteristiche del vostro sito web o prodotto sono le più importanti, e su quali siete disposti a cedere. Se avete chiari gli obiettivi, il successo verrà sempre dal pianificare abbastanza tempo nel vostro programma per pensare attraverso i compromessi di una vasta serie di alternative. La coerenza è un potenziale mezzo per il successo, ma non il successo stesso.