Da Yahoo! pattern e librerie per il web 2.0

Yahoo! ha deciso di rendere pubblici alcuni pattern utilizzati dai propri designer per costruire interfacce che sfruttino Ajax e simili (cosa siano i pattern ho già avuto modo di dirlo recensendo l’ottimo testo The Design of Sites).

E quella di Yahoo! è una bella idea, perché il tipo di interattività reso possibile da questa tipologia di interfacce (rich client) ha cambiato le regole a disposizione di chi si occupa di progettare le applicazioni web.

Alcuni dei pattern illustrati sono molto Yahoo!-centrici, e forse non li utilizzerete mai (recensire un prodotto, votare un oggetto), altri invece si prestano bene a illustrare come un’interfaccia “web 2.0” si avvicini (ancora però con diversi limiti), a quella di un’applicazione “desktop” (come ad esempio il drag&drop).

Ma quelli di Yahoo! hanno anche deciso di fornire il codice sorgente di alcune librerie da loro impiegate. Stupisce, oltre alla varietà degli esempi (animazioni, calendari, treeview, slider, ecc.) l’ordine con il quale è stata organizzata la documentazione che li accompagna.

E se tutto questo non vi basta è anche possibile leggere un nuovo blog, sempre di Yahoo!, dedicato alle problematiche di interfaccia utente e dove potrete trovare i prossimi aggiornamenti per le librerie e i pattern.

Al di là dell’interesse nei pattern e nelle librerie, vedere come Google organizza il proprio codice e i propri pattern aiuta anche a capire che – come per molti lavori – anche per lo sviluppo web (inteso nell’accezione più ampia) è fondamentale essere ordinati e dotarsi di propri standard, indipendentemente dalla dimensione del team di lavoro. Per condividere i successi, ma anche gli errori più comuni.

The Design of Sites

The Design of Sites è un libro che comprende 90 problemi e relative soluzioni (chiamati pattern) con i quali il progettista di un sito web si imbatte durante il proprio lavoro.

Il concetto di pattern non è nuovo, ma arriva dal mondo della programmazione e ancor prima da quello dell’architettura (a coniare il termine pattern è stato infatti l’architetto Christopher Alexander, nel libro dal titolo “A Pattern Language: Towns, Buildings, Construction” del 1977).

I pattern proposti in The Design of Sites non sono né regole scritte nella pietra, né la parola finale e definitiva per le problematiche di progettazione web. Gli autori hanno invece analizzato l’evoluzione del web design riscontrando come i progettisti abbiano realizzato nel corso degli anni soluzioni che sono presto diventate degli standard de facto (come la barra di navigazione in alto e a sinistra, il logo in alto a sinistra, ecc.).

Il libro è così una raccolta di queste soluzioni, suddivise in categorie (tipologia di sito, navigazione, home page, contenuto, credibilità, e-commerce, layout di pagina, ecc.). Ad ogni pattern sono affiancate diverse immagini descrittive, una presentazione del problema e una dettagliata spiegazione della o delle soluzioni possibili. Ogni pattern non è isolato dagli altri, ma frequenti riferimenti lo pongono in relazione con quelli correlati.

Questo manuale non è sicuramente la soluzione a tutti i mali: il vostro progetto non sarà migliore impiegando ciecamente quello che gli autori presentano nel testo. Diciamo piuttosto che è un comodissimo riferimento per evitare di inventare ogni volta “l’acqua calda”: prima di cominciare lo sviluppo del sito date un’occhiata ai pattern che si avvicinano alla vostra realtà, così da valutare se ce ne sono di applicabili, e quali influenze possono avere per il vostro lavoro. Ottima, davvero ottima, la lista di risorse di approfondimento e ragionate presentata in appendice al testo e riproposta sul sito web del manuale.

Contattati da Fucinaweb, gli autori hanno accettato di rispondere a qualche domanda sul futuro dei pattern nel web design.

  1. Il titolo del vostro libro è “The Design of Sites” e a prima vista sembra solo un altro testo che insegna come realizzare siti web. In che senso è diverso e come avete deciso di organizzarlo? A che pubblico si rivolge? [Risposta 1]
  2. Cosa sono i pattern e in che modo è possibile applicarli alla realtà web? Potete darci un esempio tratto dal libro? [Risposta 2]
  3. Non è troppo presto per analizzare i siti web o organizzare una lista di buone abitudini come pattern? [Risposta 3]
  4. Il libro e i pattern sono basati sullo “User Centered Design“. Ma cos’è precisamente e come si collega al campo della “User Experience“? [Risposta 4]
  5. Non pensate che sarebbe stato utile per i lettori disporre di una versione elettronica del testo, così da permettergli di organizzare i pattern secondo le proprie esigenze? [Risposta 5]

Il titolo del vostro libro è “The Design of Sites” e a prima vista sembra solo un altro testo che insegna come realizzare siti web. In che senso è diverso e come avete deciso di organizzarlo? A che pubblico si rivolge?

Gli scaffali sono pieni di libri che descrivono come NON realizzare i siti e che elencano i più diffusi errori di usabilità. Molti di questi sono estremamente divertenti da leggere, ma in realtà non aiutano a costruire dei buoni siti.

Il nostro libro si concentra invece sulle regole, i processi e i modelli (principles, processes, patterns) che consentono di realizare siti web efficaci. Per regole si intendono i concetti di alto livello che guidano l’intero processo di progettazione. Un esempio è capire le necessità e le capacità degli utenti prima di realizzare qualsiasi cosa. Un altro è imparare le basi delle disabilità visive legate ai colori, così da evitare combinazioni di colore che possono creare difficoltà alle persone interessate da queste problematiche.

Per processo intendiamo invece il modo con cui le regole sono messe in pratica. Questa categoria include i passi principali e le pietre miliari nella costruzione di un sito e si preoccupa anche di come valutare un sito e come condurre un test di usabilità.

La parte principale del libro è però dedicata ai web design pattern (modelli per la progettazione web) . Abbiamo pensato e organizzato 90 pattern in diverse aree: navigazione, home page, gestione dei contenuti, layout di pagina.

Cosa sono i pattern e in che modo è possibile applicarli alla realtà web? Potete darci un esempio tratto dal libro?

I design pattern rappresentano un modo per comunicare tipici problemi che affrontiamo nella progettazione di un sito, insieme alla soluzioni per risolverli. Posti di fronte ad una pagina web, ad esempio, non sempre è chiaro quali immagini possono essere cliccate. Per risolvere questo problema i web designer realizzano queste immagini in modo da farle sembrare dei bottoni che è possibile cliccare. Un altro esempio: quando ci troviamo in un sito spesso non è facile capire come possiamo muoverci al suo interno. In questo caso i designer costruiscono barre di navigazione che sono disposte coerentemente in alto e a sinistra delle pagine del sito.

Lo scopo di un design pattern è catturare l’essenza di un problema insieme alla sua soluzione, descrivere quali sono gli obiettivi e i limiti, e far capire cosa funziona e cosa non funziona. Invece che reinventare continuamente la ruota, il pattern fornisce un modello e diversi esempi da utilizzare.

Sul nostro sito abbiamo caricato un pattern di esempio che descrive il Process Funnel [Pdf, 260 Kbyte] (lett. “processo di incanalamento”). In questo tipo di processo l’utente segue una serie di passi ben definiti per compiere un’operazione, come ad esempio creare un nuovo account o procedere a un pagamento.

I pattern, considerati nella loro individualità, sono in realtà solo marginalmente utili. Quello che è realmente importante è il linguaggio dei pattern, che descrive come i diversi pattern sono in relazione gli uni agli altri. Tornando all’esempio del Process Funnel, questo pattern può far parte di un sito di e-commerce o di una intranet, cioè due pattern che si trovano ad un livello più alto. Inoltre, nel progettare con il pattern Process Funnel è importante considerare anche altri elementi, come un sistema di help che dipenda dal contesto (Context-Sensitive Help), l’importanza di visualizzare gli elementi più importanti senza scorrere la pagina (Above
the Fold
) e prevenire gli errori (Preventing Errors). Questi 3 sono invece pattern che si posizionano ad un livello più basso.

Non è troppo presto per analizzare i siti web o organizzare una lista di buone abitudini come pattern?

E’ sicuramente vero che il web sta evolvendo constantemente, ma le cose hanno cominciato a stabilizzarsi. Non assistiamo a nuovi design al ritmo di qualche tempo fa, e questo è positivo, perché vuol dire che i designer sono più interesatti al web come strumento per soddisfare gli obiettivi, piuttosto che come ambiente in cui divertirsi a sperimentare.

I pattern di questo libro offrono una serie di progettazioni che sono pensate per soddisfare le aspettative degli utenti. Il dipartimento di psicologia di Wichita ha condotto un interessante studio, che consiste nel consegnare alle persone un foglio bianco, a rappresentare una home page. A questo punto è stato chiesto alle persone di disporre sulla pagina, come ritenevano più opportuno, le barre di navigazione, la casella di ricerca, i banner, ecc. Come potete immaginare, quasi tutti hanno disegnato la barra di navigazione in alto e a sinistra, la casella di ricerca in alto a destra e i banner in cima alla pagina.

Quello che è interessante notare è che siamo di fronte ad una co-evoluzione dei pattern e delle aspettative degli utenti. I pattern si basano sulle aspettative degli utenti e queste sono a loro volta basate sui pattern usati per costruire i siti. È una conversazione in continuo divenire.

Il libro e i pattern sono basati sullo “User Centered Design“. Ma cos’è precisamente e come si collega al campo della “User Experience“?

L’idea principale che sta alla base dello User Centered Design è quella di progettare il sito tenendo sempre in considerazione le esigenze degli utenti, in modo da avere continui riscontri sull’utilità e usabilità del sito in costruzione. Il modo migliore di farlo è di cominciare la progettazione e rielabolarla ogni volta che si ricevono nuove importanti indicazioni dagli utenti.

Non si tratta quindi di un approccio monolitico, dove si parla agli utenti all’inizio del progetto, si spendono alcuni mesi per realizzarlo e poi si lancia il sito, solo per scoprire che non funziona come dovrebbe. L’idea dello User Centered Design è quella di compiere un elevato numero di piccoli passi, invece che un solo grande passo.

C’è da fare un’importante distinzione tra utente e cliente (customer and client). Per utente (customer) intendiamo ogni persona che userà il sito che stiamo progettando, mentre per cliente (client) intendiamo le persone per le quali stiamo facendo il lavoro, in poche parole le persone che pagano. Nel costruire una intranet, ad esempio, i clienti potrebbero essere i dirigenti, mentre gli utenti sono le persone che usano il sito web. Questo ci aiuta ad enfatizzare il fatto che è estremamente importante ricevere dei riscontri dagli utenti perché sono queste persone, e non i clienti, che possono decretare il successo o il fallimento del progetto.

Si sente spesso parlare di User Experience. Questa disciplina riguarda fondamentalmente la percenzione che si ha di un sito, il fatto che sia divertente e facile da usare, piuttosto che un tormento. Lo User Centered Design è uno dei modi che favoriscono una User Experience soddisfacente, in quando si propone di capire le necessità e le capacità degli utenti e di costruire un sito web che soddisfi i loro obiettivi.

Non pensate che sarebbe stato utile per i lettori disporre di una versione elettronica del testo, così da permettergli di organizzare i pattern secondo le proprie esigenze?

Una delle idee originarie del libro era di organizzare i pattern in un quaderno ad anelli, in modo che i progettisti potessero organizzarli secondo quelli più rilevanti per il loro lavoro. Questa idea non è stata possibile per diverse ragioni, ma abbiamo appena finito di realizzare delle versioni a singola pagina di tutti i pattern che, per un periodo limitato, sono disponibili gratuitamente a chi acquista il libro su Amazon. I lettori di Fucinaweb hanno però la possibilità di scaricarne due in esclusiva: Multiple Ways to Navigate [Pdf, 890 Kbyte] e Preventing Errors [Pdf, 300 Kbyte]

Douglas van Duyne è presidente e amministratore di NetRaker Corporation, un’agenzia che pronone soluzioni basate sulla customer user experience
James Landayè docente di informatica all’Universtità della California a Berkeley.
Jason Hong è ricercatore di Hci presso l’Università della California a Berkeley.

The Design of Sites – Patterns, principles and processes for crafting a customer-centered web experience * di Douglas K. Van Duyne, James A. Landay, Jason I. Hong * pagine 760 * prezzo 54.99 dollari * edito da Addison Wesley * pubblicato nel 2002