Ridurre il Tempo Soggettivo - Bruce Tognazzini

[Traduzione di Slashing Subjective Time - Maggio 2007 - di Bruce Tognazzini, a cura di Marco Catani]
[Sempre di Bruce Tognazzini: Principi base di interaction design]

La tipica esperienza sul web è una serie di passi lenti e traballanti, interrotta da momenti di totale noia. Possiamo fare di meglio, e possiamo farlo senza il bisogno di processori, server o network più veloci. Come? Diminuendo il tempo soggettivo.

Il tempo: Oggettivo vs. Soggettivo

Il tempo oggettivo può essere misurato con un cronometro. “Ci vogliono 3 minuti e 4,78 secondi affinché l’acqua bolla”. Il tempo soggettivo è diverso. L’essere umano ha una capacità di misurare il tempo piuttosto scarsa. Il tempo e le esperienze piacevoli passano come un lampo, mentre quelle spiacevoli e noiose sembrano non finire mai. Un esempio classico di questo fenomeno è l’impressione comune che il tempo che l’acqua ci mette a bollire sia dipendente dalla nostra attenzione: “La pentola dell’acqua sembra non voler bollire mai quando la si osserva”. Perché? Perché guardare la pentola dell’acqua è un’esperienza piuttosto noiosa. Abbiamo imparato dai nostri genitori che questo fenomeno può essere evitato intraprendendo un’attività parallela che possa occupare le nostre menti facendo passare il tempo più velocemente. (Un’efficace strategia che mi è stata insegnata da piccolo consisteva nel non pensare agli elefanti. ndt.: “don’t think of an elephant”.)

(C’è però un’eccezione alla nostra incapacità di misurare il tempo. Siamo infatti piuttosto bravi con i tempi della musica; si possono sviluppare abilità particolari nel cronometrare il tempo cantando a mente una canzone e vedendo quanto dura un particolare passaggio.)

La nostra imprecisione soggettiva ha cause diverse. Il tempo sembra diventare più veloce quando siamo impegnati e viceversa; soffriamo inoltre di amnesia nell’intervallo di tempo che ci occorre a prendere una decisione, anche piccola, come ad esempio quale sarà il prossimo tasto direzionale (ndt.: le freccine sulla tastiera) da premere. Questo tempo è analogo al tempo che serve per trovare il mouse; le persone ritengono di conseguenza che le freccine siano più veloci del mouse, perché la loro esperienza soggettiva è più immediata, anche se gli esperimenti a cronometro, inclusi quelli fatti da me, dimostrano in modo consistente che le freccine sono più lente, circa del doppio, rispetto al mouse.

Il Web: impostato per essere lento

Siamo tutti consci che il Web sia lento e che così rimarrà per il prossimo futuro. Il problema è che tuttora non abbiamo video a una risoluzione HDTV-plus, o audio e un sacco di multimedia a banda larga. Ogni volta che la velocità media aumenta, i siti si ciucciano questo incremento accrescendo il peso delle proprie pagine. Ma se la velocità media di caricamento di una pagina non migliorerà nel breve periodo, che cosa ci resta da fare per rendere l'esperienza del Web un po’ più piacevole? Possiamo modificare il Tempo Soggettivo.

JetBlue vs. American Airlines

JetBlue è una compagnia che capisce le implicazioni del Tempo Soggettivo. American Airlines no.

The American Way

Prendete ad esempio un volo internazionale con American. Arrivate in aeroporto due ore prima del volo, aprite il vostro portatile e scoprite che dovete pagare 6,50$ per navigare. Due ore a 6,50$ sono l’equivalente di 2.340,00$ al mese. Quello che si dice una tariffa flat! Decidete quindi di leggere il giornale lasciato sul tavolo, del quale il proprietario ha portato via tutto al di fuori della sezione immobiliare.

Noioso!

Una volta a bordo vi sedete su una poltrona del famoso designer spagnolo, Torquemada. Per tutta l’ora seguente non c’è nulla di meglio da fare che comprare prodotti eccessivamente costosi che comunque non userete mai o, in alternativa, leggere “The Wombat problem in Perth” nella rivista patinata della compagnia aerea. A questo punto inizia la parte di “intrattenimento”: malcelate rassegne stampa che spingono all’acquisto di MBA (ndt.: Master in Business Administration), intervallate da pubblicità

Noioso!

Finalmente arriva il film; si tratta di un film che non vorreste mai vedere oppure di un film che vorreste davvero vedere, ma non, come invece accade, su uno schermo da 15 pollici a qualche metro da voi con un audio che vi ricorda vagamente quello delle prime radio. Credo che sia ora di riprendere in mano quell’interessante articolo sull’ascuigacapelli a energia nucleare.

Noioso!

A seguire mostrano quell’episodio di “I love Lucy” (ndt.: il serial televisivo con lo share più alto nella storia della televisione americana, alla fine degli anni ‘50) che ha fatto impazzire tutti agli inizi dell’ottocento, seguito da… niente! Atterreremo tra circa un’ora, quindi è chiaramente arrivato il momento di spegnere il “sistema di intrattenimento”.

Noioso!

Un volo da sei ore con American Airlines sembra come 12 ore di viaggio.

JetBlue: cool

JetBlue al contrario ti dà il benvenuto nella sala d’aspetto offrendo un accesso a Internet gratuito. Siediti e fai esattamente le stesse cose che faresti se fossi comodamente seduto nel salotto di casa tua. Salito sull’aereo sprofondi in una poltrona in pelle da prima classe, anche se ti trovi in economy, infili le cuffie e sei connesso al resto del mondo con DirectTV. Hai 40 canali “live” sul tuo schermo personale disponibili dal momento in cui ti siedi a quello in cui ti alzi perché l’aereo è giunto a destinazione. C’è una cosa divertente riguardo ai 40 canali. Ci vuole circa una mezz’ora di zapping per vederli tutti e anche se non c’è proprio nulla di interessante da vedere, si passa un’altra mezz’ora a riesaminarli tutti - un’esperienza coinvolgente.

Un volo di sei ore con JetBlue sembra durare 3 ore.

(Certo che lo so, JetBlue è famosa per rimanere ferma per ore sulla pista di decollo in caso di maltempo; ma la stessa situazione succede anche alle altre compagnie aeree, l’unica differenza è che preferirei mille volte, in un caso del genere, essere inchiodato di fronte a 40 canali di live TV piuttosto che a un episiodio bonus di “I love Lucy”)

Ridurre il Tempo Soggettivo su Web

Parecchi suggerimenti che dò nel mio corso “Website that Sell” hanno lo scopo di ridurre sia il Tempo Oggettivo che quello Soggettivo; voglio qui concentrarmi sui tre aspetti che ritengo più importanti, in modo particolare sull’ultimo dei tre:

Primo: fate un’analisi del vostro sito e trovate dove gli utenti passano il proprio tempo, e considerate se veramente hanno intenzione di passarlo lì. Nessuno per esempio vuole trovarsi sulla pagina di checkout. Non è divertente. Nessuno, ad eccezione del designer che l’ha fatto e di sua mamma, vuole vedere uno splash screen che laboriosamente disegna un’immagine senza contenuti. Non è divertente. Ridisegnate il flusso della pagina di checkout e abbandonate lo splash screen.

Successivamente cronometrate durante un test quanto un utente impiega a compiere un’azione e alla fine della stessa chiedete quanto tempo è passato (sarebbe auspicabile che non ci fosse un enorme orologio proprio di fronte all’utente durante il test). Verranno indicati come più lunghi i compiti percepiti come più noiosi, quelli interessanti invece sembreranno essersi conclusi in pochi istanti.

Infine analizzate in modo specifico quali sono i “punti di noia” nei quali gli utenti sono rimasti a fissare lo schermo, aspettando che qualcosa accadesse. Questa esperienza è di solito concomitante con la scelta dell’utente di andare in una nuova pagina. A questo punto la vita si ferma e si rimane in attesa che la pentola contenente la nuova pagina inizi a bollire. Perché questo punto è così inevitabilmente noioso? Perché una volta che l’utente preme “continua” il suo lavoro è terminato. Ha effettuato la sua decisione e si trova bloccato nel processo mentale, in attesa che il prossimo compito compaia. Durante questo tempo non c’è tipicamente nessun compito da svolgere per l’utente.

I programmatori, nella loro vita quotidiana, incontrano spesso questo problema quando lanciano una compilazione (ndt.: e che dire poi dei tempi del rendering?). Il problema è risolto brillantemente svolgendo attività estranee alla programmazione come leggere fumetti o giocare al Solitario. Gli utenti non lo possono fare perché non hanno modo di sapere in anticipo quanto ci metteranno le diverse pagine in diverse condizioni della rete a caricare. Quello che fanno invece è stare semplicemente a osservare la pentola.

Per anni le nostre armi contro i punti di noia sono state piuttosto grezze. Possiamo ridurre il Tempo Oggettivo diminuendo il peso delle pagine, così che non ci vogliano un paio di minuti affinché si carichino. Possiamo ridurre il Tempo Soggettivo dando all’utente qualcosa da pensare o da fare mentre aspetta: “Nella prossima pagina avremo bisogno dei dettagli della tua carta di credito”. Un po’ poco, lo so. Alcuni hanno provato a caricare una pagina più leggera per intrattenere le persone mentre aspettavano la pagina più pesante. È una strategia sicuramente interessante: aumentare il tempo Oggettivo, caricando una pagina in più, per diminuire il Tempo Soggettivo. Esperimenti hanno dimostrato che come soluzione non funziona molto, anche se in alcuni casi ha dato buoni risultati. Si tratta in ogni caso ancora di una soluzione non definitiva.

Eliminare i punti di noia

Abbiamo finalmente la tecnologia per ridurre o eliminare molti punti di noia.

Prendete ad esempio il flusso di checkout. Quando l’utente finisce lo step 2 di 4, quale sarà la sua prossima mossa? Mmm… forse lo step 3? Ma allora perché attendiamo inerti che l’utente faccia click per proseguire allo step successivo? Perché abbiamo sempre dovuto fare così.

Ora non più.

Prefetching

Abbiamo finalmente la possibilità di ridurre o eliminare i punti di noia completamente. Che miracolo è questo? Una tecnica che è conosciuta dagli anni sessanta, forse dai cinquanta, ma che finalmente è approdata sul Web. Pre-caricare (pre-fetch) permette di caricare gli elementi della prossima pagina mentre l’utente sta lavorando sulla pagina corrente. Questi elementi sono caricati in background, pronti a saltar fuori non appena l’utente preme il tasto Continua.

Uno penserebbe che questo genere di miracolo venga accolto con entusiasmo da ogni webmaster di questo pianeta. Finalmente un sito Web può sembrare veloce come un’applicazione Web dedicata! Finalmente gli utenti non devono aspettare e ancora aspettare (e talvolta abbandonare il sito) quando chiedono di guardare uno specifico prodotto. Il problema è questo: ogni webmaster impazzisce all’idea di precaricare un contenuto che poi non sarà mai visto da nessuno. C’è un’elevata probabilità che qualcuno, arrivato alla Pagina 2 di un processo di acquisto, vada alla Pagina 3. Ma quali sono le probabilità relative a un utente che sta guardando una pagina con 36 diversi tostapane? Quale sarà la sua prossima mossa? Non si possono di certo precaricare 36 diverse pagine ognuna con 100k di grafica! Metteremmo il server in ginocchio se lo facessimo!

Vedete cosa intendo quando dico che è un problema non avere banda a piacimento nel prossimo futuro?

Per fortuna esiste una soluzione

Innanzitutto alcune delle pagine più critiche, come quelle appartenenti a un processo di checkout, sono facilmente prevedibili e pochi cicli macchina, o forse nessuno, saranno “sprecati” precaricando materiale che in ultima istanza non verrà usato.

In secondo luogo non dobbiamo davvero caricare così tanto contenuto per eliminare la nostra sensazione da “Punti di noia”. Il problema non è che una pagina ci metta tanto per finire di caricare, è piuttosto che ci mette tanto prima di venire visualizzata. Le persone possono iniziare a leggere non appena le prime parole compaiono su una pagina. Quello che si deve precaricare è tipicamente l’HTML e il codice annesso che ne controlla il rendering, presentando il testo in modo che l’utente abbia qualcosa da fare fintanto che attende le immagini. Questo approccio richiede un disegno di layout delle pagine che elimini l’eventualità che la pagina inizi a saltare qua e là, a mano a mano che differenti elementi vengono caricati. Non vogliamo nemmeno caricare il testo per 36 tostapane, almeno fino a che non uscirà Internet2, 100 volte più velocemente di oggi; lo studio delle statistiche di accesso al sito ci permette però di sapere quali sono i tostapane più visitati e di pre-caricare almeno quelli.

Come si fa ad aggiungere questa caratteristica (prefetching)? È molto semplice, le istruzioni si possono trovare alla pagina Mozila Prefetching FAQ. Questa soluzione non vale solo per Firefox: il precaricamento funziona anche per Internet Explorer su XP e Vista se avete installato Google Web Accelerator. (Un giorno il vecchio dinosauro potrà eventualmente fare prefetching autonomamente. Un giorno)

Gli ingegneri vi osteggiano? Presentate loro questo pezzo sul prefetching scritto da un loro collega. Non solo spiega come fare un prefetching che comporti un basso carico per il server, ha anche un’interessante spiegazione di come impedire agli utenti che usano Firefox di utilizzare una scorciatoia per pre-caricare ogni cosa presente sul vostro sito, portando il server a un collasso. Incluso trovate anche un metodo per stimare quanto prefetching automatico e incontrollato stia già avvenendo oggi. Potrebbe addirittura essere che possiate risparmiare cicli macchina andando a chiudere gli accessi non controllati e favorendo una vostra strategia di prefetching controllata (a proposito, Google da parte sua agisce come un caching proxy, diminuendo il carico del vostro server).

Cambiare il nostro modo di fare

Per arrivare ad avere una navigazione istantanea dovremo cambiare il nostro modo di fare. Per esempio, ad oggi, quando un utente finisce la Pagina 2 del checkout, facciamo controlli server-side e in seguito restituiamo all’utente un risultato, che può essere un messaggio di errore o la pagina successiva. Questo modo di fare è time-consuming. Si fa così per abitudine, ma non c’è motivo che si debba procedere in questo modo perché tipicamente le pagine di un checkout non sono tra loro dipendenti (dimenticare un numero di telefono in una pagina non ha nessun impatto sull’inserimento del numero di carta di credito nella successiva). La pratica consigliata è quella di far proseguire l’utente a Pagina 3 e attendere fino alla pagina di conferma per richiedere correzioni o aggiunte. Questo darà tutto il tempo al server per effettuare i suoi controlli mentre l’utente continua con l’inserimento dei dati.

Prima ancora di tutti questi cambiamenti occorre ridurre la possibilità che un utente compia errori, consentendogli, per esempio, di inserire numeri di telefono in un campo di input usando spazi e punteggiatura nel modo che ritiene più opportuno (una riga di codice può provvedere a eliminare tutti gli spazi e la punteggiatura in un secondo momento). Con ogni probabilità, più della metà degli errori degli utenti è causata da form poco fruibili. Questi errori causano inoltre anche un carico sui server, che debbono controllare più volte gli input e caricare più volte le stesse pagine.

Si dovrebbero inoltre esplorare modi per rendere le pagine stesse più dinamiche in modo da ridurre il numero di pagine caricate. Con AJAX (ndt.: vedi tutorial su AJAX) si possono arricchire le pagine Web, portandole a un’interazione utente paragonabile a quella di un’autentica applicazione: “Il server deve semplicemente restituire un pezzo di codice XML che aggiorni una specifica sezione della pagina”.

In Azione

Iniziate passo passo, riducendo/eliminando i punti di noia dove ad oggi gli utenti abbandonano il vostro sito. Assicuratevi in modo particolare che il processo di checkout sia il più fluido possibile. Controllate le statistiche e il carico dei server per vedere, quando iniziate ad aggiungere il prefetching, a quanto ammontino gli eventuali extra “hit” - probabilmente meno di quanto prevedete. Confrontate ora le statistiche di abbandono di quelle pagine.

Ridurre il tempo Soggettivo del 50% è un obiettivo perfettamente ragionevole. Una riflessione di George Costanza sul tempo passato in doccia aspettando che lo shampoo faccia effetto è : ”davvero un lunghissimo minuto”. Un minuto passato ad aspettare che l’applicazione dello shampoo faccia effetto mentre ci si prepara per un appuntamento può sembrare più lungo delle successive tre ore passate con una persona molto speciale. Ridurre/eliminare i punti di noia può far volare il tempo.

Sembra che il mondo inizi a usare il prefetching; e così anche i tuoi competitor. Ci vorrà un po’ di tempo per mettersi in pari. Il momento migliore per iniziare è adesso.

Ringraziamenti

L'articolo è stato da poco tradotto. Se trovate qualche errore scrivete per cortesia a 10people

Ringraziamo per le correzioni: