Questo
capitolo introduce i concetti base dell’ingegneria dell'usabilità, che saranno
approfonditi nei capitoli successivi.
Viene ricordato il tradizionale modello dei processi di progettazione e
sviluppo “a cascata” adottato inizialmente dall’ingegneria del software, e ne
viene motivato il fallimento.
Quindi, dopo avere discusso il cosiddetto ciclo compito-artefatto, si introduce
il modello iterativo di progettazione e sviluppo, e se ne discutono brevemente
vantaggi e svantaggi. Viene quindi descritto più specificamente il modello per
i processi di human-centred design proposto dallo standard ISO 13407. Dopo un
esempio di applicazione di questi concetti nella progettazione e sviluppo di
siti web, si discute brevemente la problematica del rapporto costi-benefici nell’adozione
degli approcci dell'ingegneria dell’usabilità.
Il termine ingegneria può essere definito in molti modi. Per esempio, il WordNet 2.0 Dictionary definisce l’ingegneria,
un po’ sbrigativamente, come “la disciplina che si occupa dell’arte o della
scienza di applicare la conoscenza scientifica a problemi pratici”. Più
specificamente, l’associazione degli ingegneri americani (American Engineer’s
Council for Professional Development), la definisce come
L’applicazione
creativa di principi scientifici alla progettazione o allo sviluppo di
strutture, macchine, apparati o processi di produzione, o di opere che li
utilizzano singolarmente o in combinazione; o alla costruzione o esercizio
degli stessi con piena consapevolezza del loro progetto; o alla previsione del
loro comportamento in specifiche condizioni operative; tutto ciò in relazione a
desiderate funzioni, economie di esercizio e obiettivi di sicurezza verso la vita
o la proprietà.
Queste
definizioni molto generali possono essere declinate in molti modi, in
relazione ai diversi settori di
applicazione. Per esempio, l’ingegneria
del software si occupa dei metodi e delle tecniche per la progettazione e realizzazione
di sistemi software di qualità, senza sprechi. Essa, nata negli Stati Uniti una quarantina di anni fa sulla
spinta dei grandi progetti software di origine militare[1], si è occupata, tradizionalmente, di
sistemi software molto complessi, il cui sviluppo coinvolge diecine di persone
(o più). Pertanto, non stupisce che, all’inizio, questa disciplina abbia
seguito approcci molto strutturati e formali, definendo e studiando processi di
progettazione e sviluppo organizzati in fasi predefinite, con grande enfasi sulle
attività di pianificazione e di specifica. In seguito, questi modelli si sono
profondamente evoluti, verso modelli iterativi di vario tipo, o modelli
relativamente poco strutturati e “agili”.
Più recentemente è entrato nell’uso il
termine ingegneria dell’usabilità (usability engineering), per denotare la
disciplina che studia le tecniche, i metodi e i processi che possono essere
utilizzati per progettare e sviluppare sistemi usabili.
Il termine, entrato
nell’uso soprattutto per merito del libro di Jakob Nielsen Usability Engineering, del 1994, era stato introdotto nel 1986 da
alcuni progettisti della Digital Equipment Corporation, in un’accezione che
enfatizzava fortemente un approccio quantitativo alla definizione degli
obiettivi di usabilità nella progettazione:
L’ingegneria
dell’usabilità è un processo, basato sull’ingegneria classica, che consiste
nello specificare, quantitativamente e in anticipo, quali caratteristiche e in
qual misura il prodotto finale da ingegnerizzare dovrà possedere. Questo processo
è seguito dall’effettiva realizzazione del prodotto, e dalla dimostrazione che
esso effettivamente possiede le caratteristiche pianificate. L’ingegneria non è
il processo di costruire un sistema perfetto con risorse infinite. Piuttosto,
l’ingegneria è il processo di costruire economicamente un sistema funzionante
che soddisfa una necessità. In assenza di specifiche misurabili di
usabilità, non c’è alcun modo di determinare le esigenze di usabilità di un
prodotto, o di misurare se il prodotto soddisfi o meno tali esigenze. Se non
possiamo misurare l’usabilità, non possiamo avere un’ingegneria dell’usabilità. [2]
La
parola ingegneria vuole sottolineare l’approccio pragmatico e basato su
fondamenti scientifici di questa disciplina, che si propone di dare indicazioni
concrete e operative a chi abbia il compito di progettare e sviluppare sistemi
interattivi. Inizialmente, l’ingegneria dell’usabilità si è focalizzata sul
design dell’interfaccia utente dei sistemi software. Oggi, questo termine viene
usato in un’accezione più ampia, che comprende la totalità delle pratiche
utilizzate nel processo di progettazione e sviluppo dei sistemi interattivi, a
partire dalla raccolta e analisi iniziale dei requisiti. Al di là delle specifiche definizioni
ed enfasi date dai diversi autori negli anni, i principi cardine di questa
disciplina possono considerarsi ben consolidati fin dalla metà degli anni 80. In
estrema sintesi, essi si possono riassumere nei seguenti tre punti chiave:
1. Focalizzazione
sull’utente, all’inizio e durante tutto il processo di progettazione;
2. Prove
con l’utente durante l’intero processo di progettazione, con analisi
qualitative e misure quantitative;
3. Modello
di progettazione e sviluppo iterativo, per prototipi successivi[3].
Senza
entrare in appofondimenti non rilevanti in questo contesto, poniamo a confronto
le idee essenziali dell’approccio tradizionale all’ingegneria del software (il
cosiddetto modello “a cascata”), e dell’approccio più moderno, basato su
processi di sviluppo iterativo, per prototipi successivi, adottato
nell’ingegneria dell’usabilità.
Un tempo, quando la disciplina
dell’ingegneria del software era agli esordi, si pensava che per realizzare un
progetto di successo fosse necessario procedere per fasi logiche ben sequenziate,
ognuna delle quali ponesse le basi per la fase successiva. Si partiva dalla
raccolta dei requisiti, poi si definivano le specifiche del sistema da
realizzare. Quindi si progettava l’intero sistema “sulla carta” e lo si
codificava nel linguaggio di programmazione prescelto. Lo si collaudava e
infine lo si rilasciava. Si passava alla fase successiva solo quando la
precedente era completata e i suoi “prodotti” approvati formalmente dal
committente.
Si pensava che in un processo
ordinato, condotto da professionisti e guidato da un capo progetto esperto, non
si dovesse mai retrocedere. Per descrivere questo processo si usa la metafora
della cascata: come in una cascata l’acqua scorre soltanto verso il basso e non
torna mai indietro, così dalla fase iniziale di un progetto si arriva, passo
passo, al rilascio del sistema senza ritornare mai sui passi precedenti (waterfall model, Figura
1).
Figura 1.
Processo
di progettazione e sviluppo "a cascata"
Questa impostazione sembra
molto sensata, quasi ovvia: per costruire qualcosa (una casa, un ponte,
un’automobile, un sito web) bisogna prima decidere che cosa si vuole ottenere e
descriverlo dettagliatamente; poi si passerà alla sua realizzazione, quindi al
collaudo finale e alla consegna al committente. Eppure ci si accorse ben presto
che non funzionava sempre così: nella pratica, in nessun progetto reale, anche
se ben gestito, le cose procedevano in maniera così semplice e lineare. Si
rendeva spesso necessario ritornare sui passi precedenti, per rivedere e
modificare decisioni già prese, anche se erano state ritenute assolutamente
consolidate.
Le cause potevano essere
molteplici: il committente, in fase avanzata di realizzazione, richiedeva delle
varianti che modificavano le specifiche già approvate. Oppure i progettisti
scoprivano difficoltà tecniche inattese, che consigliavano di cambiare
rotta. Oppure, ancora, magari
nella fase di rilascio del sistema, i primi utenti segnalavano delle difficoltà
nell’uso che non erano state previste da nessuno e richiedevano cambiamenti
consistenti. Tutti questi rifacimenti, non previsti nella pianificazione
iniziale, producevano costi aggiuntivi anche considerevoli. I budget
inizialmente assegnati venivano immancabilmente disattesi. Per molto tempo, queste
difficoltà furono imputate a una cattiva conduzione dei progetti. Era compito
di un buon capo progetto, si diceva, tenere a freno le richieste dei
committenti e degli utenti e far loro comprendere l’importanza di controllare
accuratamente le specifiche e di accettare che, una volta approvate, queste
dovessero essere considerate “congelate” fino al rilascio del sistema.
Con la maturazione della
disciplina dell’ingegneria del software, e dopo molti anni e molti fallimenti,
si capì che le cose non funzionavano, perché non possono funzionare
così. Ci si rese conto che nessun sistema complesso può essere realizzato con
il modello della cascata, perché è impossibile specificarne tutti gli aspetti
all’inizio e poi realizzarlo senza modificare nulla. Le ragioni di questa
impossibilità sono sia di carattere pratico, sia teorico-concettuale.
Dal punto di vista pratico, è
molto difficile prevedere “sulla carta” tutti gli aspetti di un sistema
complesso, che non esiste ancora. Possiamo (e dobbiamo) tentare di farlo, ma
inevitabilmente non saremo in grado di anticipare tutti i problemi che
incontreremo durante la realizzazione, per risolvere i quali potremo essere
costretti a cambiare rotta. Queste difficoltà non si verificano soltanto nel
software, ma in progetti di ogni tipo. Pensiamo, per esempio, al progetto di
ristrutturazione di un appartamento. Anche in questo caso inizieremo con una
descrizione “sulla carta” delle opere murarie e degli impianti da realizzare.
Se il modello a cascata funzionasse bene, giunto a questo punto, il committente
potrebbe disinteressarsi del cantiere e affidarlo a un buon direttore dei
lavori, che gli consegnerà alla fine l’appartamento realizzato esattamente come
da specifiche. Chi ha fatto questa esperienza, tuttavia, sa bene che le cose
non funzionano così. Sa che, durante i lavori, s’incontrano difficoltà non
previste e non prevedibili.
Per risolvere queste difficoltà
può essere necessario cambiare le specifiche iniziali e realizzare un
appartamento diverso, per qualche aspetto, da quello progettato inizialmente.
Una soletta si rivela poco resistente e occorre rinforzarla con una putrella.
Questa impedisce il passaggio dei tubi dell’impianto di riscaldamento dove era
previsto: di conseguenza, il calorifero dovrà essere installato in un posto
diverso. Oppure, a lavori avviati, ci accorgiamo che il vicino ha l’abitudine
di ascoltare musica fino a tardi e decidiamo di insonorizzare la parete con uno
strato di materiale isolante. Questo modifica, anche se solo di pochi
centimetri, le misure della stanza e bisogna rivedere alcune decisioni sulla
posizione dei mobili. E così via: le varianti in corso d’opera potrebbero
essere diecine. Non necessariamente dovute a errori di progettazione, ma a
situazioni oggettive che non potevano essere previste e che impongono delle
modifiche senza le quali il risultato non sarebbe accettato dal committente. Il
direttore dei lavori non potrà certo rifiutarsi di realizzarle, appellandosi al
progetto iniziale regolarmente approvato.
C’è anche un motivo più
profondo, di natura teorico-concettuale, che fa sì che il modello a cascata non
possa funzionare. Questo motivo è racchiuso in un principio generale, che abbiamo
già incontrato varie volte (Figura 11, Capitolo 1 e, in altra forma, Figura 33,
Capitolo 4) e che possiamo enunciare nel seguente modo:
Ogni nuovo strumento cambia i
bisogni del suo utilizzatore e genera nuovi bisogni, che suggeriscono modifiche
non previste allo strumento stesso.
In altre parole, per soddisfare
le nostre necessità, produciamo strumenti che, a loro volta, generano nuovi
bisogni. Costruiamo allora nuovi strumenti, o modifichiamo quelli già
disponibili, in un ciclo evolutivo infinito, al quale è stato dato il nome di task-artifact
cycle.[4] Questo principio vale per ogni
strumento, semplice o complesso, dal cacciavite al cruscotto di un jumbo jet, a
un sistema informativo (Figura
2).
Figura 2. Il ciclo compito-artefatto
Quando definiamo i requisiti di
un prodotto che non esiste ancora e che vogliamo realizzare, lo facciamo
tenendo conto di determinati bisogni insoddisfatti. Per ottenere questo
risultato, noi progettiamo il prodotto ipotizzando
degli scenari d’uso che ci sembrano plausibili e realizzando quelle funzioni
che, nelle nostre ipotesi, ci sembrano necessarie. Anche se siamo
degli ottimi progettisti, non potremo mai essere certi di avere immaginato
correttamente come i nostri utenti utilizzeranno effettivamente il sistema
negli specifici contesti d’uso e come questo modificherà i loro bisogni. Per
verificare la correttezza delle nostre ipotesi, dobbiamo prima realizzare il
prodotto, farlo usare agli utenti e osservare come lo utilizzeranno
effettivamente, nelle diverse specifiche situazioni. Ci potremo allora
accorgere che gli scenari immaginati corrispondono quasi, ma non completamente, all’uso effettivo. Ma soprattutto
potrà capitare che l’interazione fra utente e prodotto faccia nascere nuovi
bisogni, in modi imprevisti. Tutto questo ci suggerirà di modificare il
prodotto: senza queste modifiche, i nostri utenti non saranno soddisfatti. Come
scrisse Douglas Engelbart, uno dei pionieri della human-computer interaction,
già più volte ricordato, “non appena viene introdotto un nuovo manufatto,
inizia una co-evoluzione del manufatto e di chi lo usa.”
In sostanza, non è possibile
valutare completamente l’adeguatezza dello strumento ai suoi utenti, prima che
questi lo usino effettivamente. Ecco perché il modello a cascata tradizionale
non può funzionare. Esso prevede che gli utenti siano coinvolti nel processo
solo in due momenti: all’inizio, per contribuire a requisiti e specifiche e
alla fine, dopo il rilascio (o tutt’al più per il collaudo). Tuttavia, nella stesura delle specifiche
iniziali, anche gli utenti, come i progettisti, non possono far altro che ipotizzare le caratteristiche
necessarie. Alla fine, quando la correttezza di queste assunzioni può essere
verificata in concreto, è troppo tardi per intervenire: il sistema è già stato
sviluppato.
Se il modello a cascata è
inadeguato, ci serve un modello diverso, che coinvolga gli utenti fin da
subito, non solo nella stesura di requisiti e specifiche, ma anche, e
soprattutto, per sperimentare l’uso di versioni preliminari del sistema e
aiutarci, con le loro reazioni e le loro indicazioni, a correggere il tiro, in
un processo di prove e aggiustamenti successivi.
L’idea è di procedere con la
realizzazione di una serie di prototipi, via via più vicini al sistema
finale. S’inizia con un prototipo preliminare, realizzabile a costi ridotti, e
lo si sottopone all’utente, che prova a usarlo. Questa prima prova sarà
normalmente limitata, perché il sistema sarà molto semplificato, con funzioni
realizzate solo parzialmente, o addirittura simulate in qualche modo. Tuttavia
ci permetterà di verificare alcune assunzioni di partenza ed eventualmente di
aggiustare il tiro. Un po’ come quando un pittore schizza un bozzetto prima di
dipingere il quadro, per averne un’idea di massima ed eventualmente per farlo
approvare dal committente. Si realizza quindi un nuovo prototipo, sempre
incompleto, ma un po’ più somigliante al sistema finale e lo si sottopone
ancora alla prova degli utenti, e così via, per approssimazioni successive,
fino alla conclusione del progetto. In sostanza, le prove d’uso diventano
parte integrante del processo di progettazione. La Figura
3 mostra
una schematizzazione di questo modo di procedere.
Figura 3.
Processo
di progettazione e sviluppo per prototipi successivi
Ovviamente, nelle varie
iterazioni, le diverse attività mostrate in figura avranno pesi diversi. Per
esempio, al primo giro, dopo avere specificato i requisiti, ci si concentrerà
sulle attività di progettazione, mentre le attività di realizzazione del primo
prototipo richiederanno sforzi limitati. Il primo prototipo sarà infatti piuttosto
rudimentale: in molti casi, soltanto un mock-up
con il quale effettuare un primo confronto con gli utenti e, naturalmente, con
il committente. Questo confronto sarà condotto nella fase di test in figura. Al
giro successivo, sulla base dell’esito del confronto, si apporteranno le
necessarie modifiche ai requisiti e al progetto, e si realizzerà un secondo
prototipo, più evoluto. In questo secondo giro, lo sforzo dedicato ai requisiti
– se non sono stati evidenziati grossi problemi – sarà di solito
piuttosto limitato (serviranno solo alcuni ritocchi), mentre la realizzazione
del secondo prototipo sarà più impegnativa. Anche il test effettuato al secondo
giro, con un prototipo più evoluto, richiederà maggiori sforzi. E così via:
all’avanzare del progetto, in sostanza, lo sforzo complessivo si sposta
progressivamente dalle fasi iniziali del ciclo tradizionale (requisiti e
progettazione) alle fasi finali (test e rilascio).
In pratica, tutte le attività
rappresentate in Figura
3 vengono
portate avanti “in parallelo” per tutta la durata del progetto, ma l’impegno
dedicato a ciascuna di esse cambia nel tempo. L’avanzamento del progetto non è
più scandito dal passaggio da un’attività alla successiva, ma dalla
realizzazione dei diversi prototipi. A ogni iterazione un’attività prevale
sulle altre, ma tutte sono comunque portate avanti, anche solo per apportare le
modifiche rese necessarie dai test con gli utenti.
Questa situazione è visualizzata
nella Figura
4, che
mostra, per un progetto ipotetico, l’andamento nel tempo dell’impegno di
risorse sulle singole attività (per esempio, il numero di persone impegnate).[5]
Figura 4.
Allocazione
delle risorse secondo il modello iterativo
Il
processo di progettazione per prototipi successivi è il
modello concettualmente corretto per la realizzazione di sistemi complessi: il
prodotto si vede (anche se in modo parziale), fin dall’inizio e viene
perfezionato per incrementi successivi; le scelte effettuate possono essere
sperimentate anticipatamente e si possono scartare quelle sbagliate.
A
fronte di questi grandi vantaggi, esiste il rischio che il
processo diverga, a causa delle richieste di modifiche che nascono durante le
attività di valutazione dei vari prototipi. Per evitare queste difficoltà, per ogni progetto sarà
quindi necessario pianificare il processo iterativo di progettazione e sviluppo
in modo che, per così dire, non sfugga di mano. Si tratterò, in sostanza, di
prevedere fin dall’inizio la successione dei diversi prototipi da realizzare,
in funzione degli scopi specifici che con ciascuno di essi si desidera
raggiungere. Ovviamente, questa pianificazione dovrà tenere conto degli
obiettivi e caratteristiche del sistema da realizzare: non è possibile
stabilire un modello di processo generale, valido per tutti i sistemi, poichè
ciascun progetto ha esigenze specifiche. Alla conclusione di questo capitolo
vedremo un esempio di pianificazione dello sviluppo iterativo per i siti web.
Il modello iterativo,
presentato in Figura 3 in modo del tutto generale, può essere
precisato e perfezionato in vari modi, che in questa sede non è possibile
analizzare. Nell’ambito dell’ingegneria dell’usabilità assume una particolare
autorevolezza, la descrizione che ne dà lo standard ISO 13407, dal titolo Human-centred design processes for
interactive systems, che ha proprio lo scopo, come si legge nella sua
introduzione, di “fornire una guida
alle attività di progettazione centrata sull’essere umano lungo il ciclo di
vita dei sistemi interattivi basati su computer”.
In questo standard, il modello iterativo di Figura
3 è
rappresentato, più specificamente,
come in Figura
5.
Figura 5.
Il
processo di progettazione human-centred secondo l’ISO 13407
L’ISO 13407 non descrive una
metodologia specifica (non può essere questo lo scopo di uno standard), ma
fornisce linee guida ampie dettagliate a chi desideri organizzare un processo
di progettazione human-centred. Nel
seguito di questa sezione riassumiamo la descrizione dello schema di Figura
5
contenuta nell’ISO 13407, facendo riferimento alla versione del 1999.[6]
I vari aspetti del processo di progettazione human-centred verranno quindi
ulteriormente approfonditi nei prossimi capitoli di questo libro.
Il contesto in cui il sistema sarà
utilizzato è definito dalle caratteristiche degli utenti, dei compiti e
dell’ambiente fisico e organizzativo. È importante identificare e comprendere i
dettagli di questo contesto, per orientare le decisioni iniziali del progetto,
e per fornire una base per la loro successiva convalida. Tutto ciò, sia che si
debba progettare un sistema nuovo, sia che si debba modificare un sistema
esistente per migliorarlo. In questo secondo caso, potranno essere molto utili
le informazioni sulle reazioni degli utenti provenienti dai rapporti dell’help
desk o da specifiche indagini esplorative.
La descrizione del contesto d’uso
del sistema dovrebbe comprendere i seguenti argomenti:
· Le caratteristiche degli utenti.
Le caratteristiche rilevanti potrebbero essere le competenze, le abilità, le esperienze, la formazione, le caratteristiche fisiche, le abitudini, le preferenze. Spesso sarà necessario classificare gli utenti in diverse categorie, per esempio in funzione dei diversi ruoli nei confronti del sistema o dei differenti livelli di esperienza.
· I compiti che gli utenti dovranno eseguire.
Dovrebbero essere analizzati i compiti che possono influenzare l’usabilità del sistema, per esempio indicandone la frequenza e durata. Si dovranno descrivere eventuali implicazioni riguardanti la salute e alla sicurezza degli utenti.
· L’ambiente nel quale gli utenti utilizzeranno il sistema.
Si descriveranno le caratteristiche rilevanti dell’ambiente fisico e sociale, includendo l’ambiente di lavoro, le tecnologie utilizzate, gli eventuali standard adottati, il contesto normativo (per esempio, le leggi e i regolamenti applicabili), la struttura organizzativa e le procedure di lavoro, le abitudini consolidate, ecc.
Lo standard ricorda esplicitamente che tutte queste descrizioni non potranno essere congelate in un documento immutabile, ma dovranno essere raccolte in un documento di lavoro, che sarà revisionato, corretto e ampliato più volte, in accordo con la natura iterativa del processo di progettazione e sviluppo. Dovranno essere sempre verificate e confermate dagli utenti del sistema, o da chi li rappresenta nel progetto.
Nella maggior parte dei processi di progettazione, esiste una consistente attività per la specifica dei requisiti del prodotto o del sistema. Nella progettazione human-centred, quest’attività dovrebbe essere ampliata, per descrivere i requisiti in relazione al contesto d’uso più sopra specificato.
Si dovrebbero considerare i
seguenti aspetti:
· le prestazioni richieste al nuovo sistema in relazione agli obiettivi operativi ed economici;
· i requisiti normativi e legislativi rilevanti, compresi quelli relativi alla sicurezza e alla salute;
· la comunicazione e la cooperazione fra gli
utenti e gli altri attori coinvolti;
· le attività degli utenti (inclusa la
ripartizione dei compiti, il benessere e la motivazione degli utenti);
· la ripartizione dei compiti fra esseri umani
e sistemi tecnologici;
· le prestazioni dei diversi compiti;
· la progettazione delle procedure di lavoro e
dell’organizzazione;
· la gestione del cambiamento, incluse le
attività di addestramento e il personale coinvolto;
· la fattibilità delle diverse operazioni,
comprese quelle di manutenzione;
· la progettazione dei posti di lavoro e la interfaccia uomo-computer.
I
requisiti e gli obiettivi dovrebbero essere stabiliti, ove necessario, operando
opportuni compromessi fra eventuali requisiti fra loro conflittuali. I
requisiti dovrebbero essere organizzati per livelli di priorità, e formulati in modo da permettere la
loro successiva convalida mediante opportuni test. Dovrebbero essere confermati
o aggiornati lungo tutta la durata del progetto.
In questa fase si individuano
le possibili soluzioni di progetto, basandosi sullo stato dell’arte, sulle
conoscenze ed esperienze dei partecipanti e sui risultati dell’analisi del
contesto d’uso. Lo standard identifica le seguenti attività.
· Utilizzare
le conoscenze disponibili per sviluppare proposte di progetto con un approccio
multi-disciplinare.
Esiste
un vasto corpo di teorie e conoscenze scientifiche nell’ergonomia, nella
psicologia, nelle scienze cognitive,
nelle scienze della progettazione e in altre discipline rilevanti, che
possono suggerire possibili soluzioni di progetto. Molte organizzazioni
dispongono di linee guida per l’interfaccia utente, conoscenze sul prodotto e sul
mercato che possono essere utili nelle fasi iniziali del progetto, soprattutto
quando si progettano prodotti di tipo già noto, per esempio versioni
migliorative di un sistema già in uso. Inoltre, esistono linee guida e standard
per l’ergonomia e i fattori umani, elaborati dagli enti di standardizzazione.
· Rendere le soluzioni di progetto più concrete, utilizzando simulazioni, modelli e prototipi di vario tipo.
L’uso di prototipi permette ai progettisti di comunicare più efficacemente con gli utenti, e riduce la necessità di costosi rifacimenti, che possono essere invece necessari quando il prodotto viene sottoposto a revisione soltanto più tardi nel ciclo di vita – addirittura dopo il rilascio finale agli utenti reali. Dedicheremo a questo argomento l’intero Capitolo 9.
L’attività
di prototipazione può essere compiuta in tutte le fasi del progetto, dalle
prime idee basate sulla descrizione del contesto d’uso (per esempio,
utilizzando scenari d’uso), fino ai prototipi di pre-produzione, virtualmente
completi di ogni dettaglio. Un prototipo può essere semplice quanto uno schizzo
a matita, o complesso come una simulazione su computer, quasi indistinguibile dal
prodotto reale.
· Presentare
le soluzioni di progetto agli utenti, permettendo loro di eseguire i compiti che
il sistema è destinato a supportare (eventualmente in modo simulato).
Gli utenti
possono essere coinvolti molto presto nel progetto, mediante l’uso di modelli
statici realizzati sulla carta. È possibile presentare agli utenti le bozze
delle schermate o una rappresentazione del prodotto, chiedendo loro di provarli
in un contesto realistico. In tal modo si possono valutare rapidamente ed
economicamente aspetti del progetto (per esempio, quanto sia facile navigare
attraverso una gerarchia di menu). Per i prodotti hardware, analoghi benefici
possono essere ottenuti con l’uso di modelli tridimensionali statici, costruiti
con materiali semplici. Nelle fasi iniziali, anche i prototipi più rudimentali
possono risultare preziosi, per esplorare soluzioni alternative. Anche se può
essere utile presentare le soluzioni di progetto nel modo più realistico
possibile, è consigliabile evitare di investire troppo tempo o denaro nella
loro realizzazione, anche perché ciò potrebbe produrre una resistenza alle
modifiche da parte dei progettisti.
In un
approccio human-centred, un prototipo non è semplicemente una demo per mostrare
un’anteprima del prodotto agli utenti. Esso serve a raccogliere le loro
reazioni, per poi utilizzarle nell’orientare le attività di progettazione
successive. Quando non fosse consigliabile mostrare i prototipi agli utenti all’inizio
del processo di progettazione (per esempio, per ragioni di riservatezza), le
valutazioni potranno essere condotte da esperti. Queste possono essere utili e
poco costose, e complementare i test con l’utente. In ogni caso, in un processo
di progettazione human-centred, almeno i test finali dovrebbero essere condotti
con utenti reali.
· Modificare il progetto in conseguenza delle reazioni degli utenti, e ripetere questo processo fino a che gli obiettivi della progettazione non siano raggiunti.
La natura dei prototipi e il numero delle iterazioni variano in funzione di numerosi fattori, fra cui l’importanza attribuita alla qualità del progetto finale. Nello sviluppo di software, si può iniziare presentando sulla carta degli schizzi delle schermate, e proseguire attraverso diverse iterazioni, fino a produrre software interattivo con funzionalità sufficienti a supportare un sottoinsieme dei compiti dell’utente. Nelle fasi avanzate della progettazione, i prototipi potranno essere valutati in contesti più realistici. Per ottenere i massimi benefici, è conveniente effettuare numerose iterazioni con l’utente. In seguito, per decidere se gli obiettivi complessivi sono stati raggiunti, dovrebbero essere condotte delle valutazioni più formali in un contesto realistico, per esempio, senza suggerimenti o interruzioni da parte del valutatore. I commenti dell’utente, o le difficoltà osservate durante l’utilizzo del prototipo, suggeriranno modifiche al progetto, per migliorarne l’usabilità. In qualche caso, questi feedback potranno anche essere di aiuto per raffinare gli obiettivi complessivi del sistema.
· Gestire l’iterazione delle soluzioni di progetto.
Per tenere sotto controllo i progressi della progettazione iterativa, si dovrebbero registrare i risultati delle attività precedenti. Questa documentazione potrà essere esclusivamente descrittiva, o includere i prodotti stessi della progettazione, come i prototipi hardware e software. La documentazione descriverà lo scopo dei vari prototipi, le modalità operative del loro utilizzo e i problemi individuati, con le conseguenti modifiche del progetto.
La valutazione è un passo
essenziale in una progettazione human-centred, e dovrebbe essere compiuta in
tutte le fasi del ciclo di vita del sistema, e non soltanto in fase di
progettazione. All’inizio del progetto, l’obiettivo principale sarà la raccolta
d’indicazioni per orientare le attività di progettazione successive. Nelle fasi
più avanzate, con la disponibilità di prototipi più completi, sarà invece possibile
quantificare il livello di raggiungimento degli obiettivi dell’utente e
dell’organizzazione. Dopo il rilascio del sistema, sarà possibile monitorarne
l’adeguatezza ai nuovi contesti di utilizzo.
Lo standard identifica le
seguenti attività:
· Produrre
il piano di valutazione
Il
processo di valutazione dovrebbe essere pianificato, precisando, tra l’altro,
quali parti del sistema devono essere valutati e come; quali prototipi dovranno
essere realizzati e come deve essere eseguita la valutazione e con quali
risorse; quali dovranno essere le interazioni con gli utenti e come dovrà
essere condotta l’analisi dei risultati. Le tecniche di valutazione variano
secondo i casi. La scelta è determinata dalla natura del sistema, dai vincoli
economici e di tempo, e dalla fase del ciclo di sviluppo in cui si svolge la
valutazione.
· Fornire feedback per la progettazione
Per influenzare la progettazione, la valutazione dovrebbe essere condotta in ogni fase del ciclo di vita del sistema. La valutazione condotta soltanto da esperti, senza il coinvolgimento degli utenti, può essere veloce ed economica, e permettere di identificare i problemi maggiori, ma non basta a garantire il successo di un sistema interattivo. La valutazione basata sul coinvolgimento degli utenti permette di ottenere utili indicazioni in ogni fase della progettazione. Nelle fasi iniziali, gli utenti possono essere coinvolti nella valutazione di scenari d’uso, semplici mock-up cartacei o prototipi parziali. Quando le soluzioni di progetto sono più sviluppate, le valutazioni che coinvolgono l’utente si basano su versioni del sistema progressivamente più complete e concrete. Può anche essere utile una valutazione cooperativa, in cui il valutatore discute con l’utente i problemi rilevati.
· Verificare se gli obiettivi sono stati raggiunti
La valutazione può essere usata per dimostrare che un
particolare progetto soddisfa i requisiti human-centred, oppure per verificare
la conformità a standard internazionali, nazionali, locali, aziendali o legali.
In ogni caso, per ottenere risultati validi, la valutazione dovrebbe utilizzare
metodi appropriate, con un campione rappresentativo di utenti che eseguono
compiti realistici.
· Validazione sul campo
Lo scopo della validazione sul campo è provare il funzionamento del sistema finale durante l’uso effettivo, per assicurare che esso soddisfi i requisiti degli utenti, dei compiti e dell’ambiente. A questo scopo si possono analizzare i dati raccolti dall’help desk, rapporti dal campo, feedback da utenti reali, dati prestazionali, rapporti sull’impatto sulla salute, richieste di miglioramenti e di modifiche da parte degli utenti.
· Monitoraggio di lungo termine
Dovrebbe esistere un processo pianificato per il monitoraggio di lungo termine dell’uso del prodotto o del sistema, che consiste nel raccogliere input dagli utenti, con modalità differenti, lungo un certo periodo di tempo. Infatti, alcuni effetti dell’utilizzo di un sistema interattivo non sono riconoscibili fino a che il sistema non sia stato utilizzato per un certo periodo di tempo, e ci possono essere effetti che derivano da fattori esterni, per esempio da cambiamenti imprevisti nelle modalità lavorative o nel contesto di mercato.
· Documentazione dei risultati
Allo scopo di gestire il processo di progettazione iterativo, i risultati delle valutazioni dovrebbero essere registrati in modo sistematico. In particolare, dovrebbe esistere un’adeguata evidenza che un numero adeguato di utenti abbia partecipato al test e che questi utenti siano rappresentativi delle categorie identificate nei requisiti, che i test effettuati siano adeguati a fornire indicazioni attendibili per i vari casi e contesti d’uso e, infine, che siano stati usati metodi appropriati per il test e la raccolta dei dati.
Come si è già osservato, il modello dell’ISO 13407 è del
tutto generale, e può essere realizzato concretamente in molti modi diversi. In
effetti, sono stati definiti e applicati vari approcci che, pur rientrando
tutti nell’ambito di un’impostazione human-centred, differiscono fra loro nei
dettagli e, soprattutto, nel ruolo che l’utente assume durante il processo
della progettazione. Infatti, a seconda delle scelte organizzative, l’utente
può essere coinvolto secondo modalità diverse nelle varie attività del
processo, indicate con A, B, C e D in Figura 6.
Figura 6. L’utente può essere coinvolto in una o più attività del processo di progettazione human-centred
L’approccio più conosciuto è noto come progettazione centrata sull’utente, o user-centred design (UCD), proposto da Norman e Draper un quarto di
secolo fa.[7] Secondo questa
impostazione, l’utente viene sostanzialmente coinvolto solo nelle fasi A e C
della Figura
6.
Pertanto, ha un ruolo fondamentale nell’acquisizione dei requisiti del
sistema (A) e nell’effettuazione delle prove d’uso dei diversi prototipi prodotti nelle varie iterazioni del
progetto (C). Non è, invece, coinvolto nelle attività di progettazione e
realizzazione dei vari prototipi (B), condotte dai progettisti e dagli
sviluppatori del sistema.
In
altri approcci, il coinvolgimento dell’utente avviene con modalità diverse. Per
esempio, nella progettazione partecipativa (participatory
design, inizialmente chiamato cooperative design), l’utente viene
coinvolto anche nelle attività di progettazione (B), partecipando attivamente,
con modalità e strumenti opportuni, alla realizzazione dei prototipi. Al
contrario, nello usage-centred design,
proposto da Constantine e Lockwood[8], il centro
dell’attenzione è sull’uso – cioè sulle attività effettuate dall’utente e
sui compiti che egli compie – e non sull’utente, che viene coinvolto nel
processo di progettazione in modo molto limitato.
Questo libro adotta un’impostazione pragmatica, basata
sostanzialmente sulla filosofia dello user-centred design, ma interpretato in
modo flessibile. Infatti, se è vero che l’utente costituisce una fonte
importantissima d’informazioni per la stesura dei requisiti e un attore
primario nella convalida dei prototipi via via realizzati, è tuttavia
indispensabile che i suoi desideri e suggerimenti non siano interpretati come dictat
assoluti. L’utente non è un progettista -
non ne ha l’esperienza né la forma mentis. In molti casi, può non essere
in grado di valutare le implicazioni di suggerimenti che, visti fuori dal
contesto del progetto, potrebbero sembrare del tutto corretti. Può capitare
infatti che alcuni suggerimenti, se attuati, producano degli effetti
collaterali indesiderabili. Oppure, semplicemente, che esistano altri modi, più
convenienti, di ottenere gli stessi risultati. Il progettista esperto, invece, è
in grado di valutare le implicazioni delle indicazioni degli utenti, e di
comprenderne le eventuali controindicazioni.
Chiunque abbia avuto un’esperienza, sia pur modesta, di
progettazione in contesti reali, sa che cosa significa dover “lottare” con i
suoi utenti, per correggere indicazioni che sa fondamentalmente sbagliate. Un
aspetto importante da tenere in considerazione è la naturale resistenza al
cambiamento negli utenti. Le persone non amano cambiare abitudini e modalità
operative, e la prospettiva di dover modificare il proprio modo di lavorare
genera spesso delle resistenze. Ciò fa sì che raramente prodotti realmente
innovativi, che modificano radicalmente le abitudini operative consolidate,
siano proposti dai loro futuri
utenti. Questi prodotti nascono più dalle visioni di designer innovativi
che da proposte originate dai futuri utenti.
Lo stesso Donald Norman, autore della filosofia
user-centred, ha sentito la necessità, più recentemente, di correggere il tiro
spostando l’enfasi dall’utente alle sue attività, in un approccio da lui
chiamato activity-centred design:
Una filosofia di base dello human-centred design è ascoltare
gli utenti, e prendere le loro lamentele e le loro critiche sul serio. Sì,
ascoltare i clienti è sempre saggio, ma accettare le loro richieste può
condurre a progetti eccessivamente complessi. Parecchie grandi società di
software, orgogliose della loro filosofia human-centred, soffrono di questo
problema. Il loro software diventa più complicato e meno comprensibile a ogni nuova
revisione. La filosofia activity-centred tende a proteggerci da questo errore
perché si focalizza sulle attività, non sull’essere umano. Ne risulta un
modello di progetto coerente e bene articolato. Se un suggerimento dell’utente
non rientra in questo modello, dovrebbe essere scartato. Ahimè, troppe società,
orgogliose di ascoltare i propri utenti, lo accetterebbero. Qui, ciò che serve
è un progettista forte e autorevole in grado di esaminare i suggerimenti e
valutarli nei termini dei requisiti dell’attività. Quando è necessario, è
essenziale poter ignorare le richieste. Questo per conseguire coerenza e
comprensibilità. Paradossalmente, il modo migliore di soddisfare gli utenti è,
qualche volta, di ignorarli. […]
A volte ciò che serve è un dittatore che dica “ignorate ciò
che dicono gli utenti: io so ciò che è meglio per loro.” Il caso della Apple è
esemplificativo. I prodotti della Apple sono stati a lungo ammirati per la loro
facilità d’uso. Tuttavia, la Apple ha sostituito il suo famoso e rispettato
team di progetto con un unico, autorevole (dittatoriale) leader. L’usabilità ne
ha sofferto? Al contrario: i suoi nuovi prodotti sono considerati esempi di
grande design. “Ascolta i tuoi utenti” produce design incoerenti. “Ignora i
tuoi utenti” può produrre storie di orrore, a meno che la persona alla guida
abbia una chiara visione del prodotto, ciò che ho chiamato “modello
concettuale”. La persona alla guida deve seguire quella visione e non temere di
ignorare i fatti. Sì, ascoltate i clienti, ma non fate sempre quello che
dicono. [9]
E conclude:
Lo human-centred design garantisce buoni prodotti. Può
condurre a netti miglioramenti di prodotti cattivi. Inoltre, lo human-centred
design evita i fallimenti. Assicura che i prodotti funzionano, che la gente li
può usare. Ma è un buon design lo scopo? Molti di noi desiderano un design
grande. Il design grande, io affermo, deriva dalla rottura delle regole,
dall’ignorare le pratiche generalmente accettate, dal procedere con un chiaro
concetto del risultato finale, non importa quale. Questo design egocentrico e
guidato dalla visione conduce a grandi successi o a grandi fallimenti. Se lo volete
grande piuttosto che buono, questo è ciò che dovete fare.
Gli schemi di Figura 3 o Figura
5 sono
ancora troppo astratti per essere realmente utili in un progetto reale. Infatti
nulla ci dicono su come procedere, in pratica, nel caso specifico. Quanti
prototipi (e quindi quante iterazioni) dobbiamo realizzare? Quali obiettivi ci
dobbiamo porre nella realizzazione e nella valutazione di ciascun prototipo? Quali
tecniche di prototipazione dobbiamo utilizzare? Come possiamo realizzarli a
costi ridotti? Come possiamo tenere sotto controllo i costi complessivi del
progetto? A queste domande non è
possibile rispondere in generale, e cioè in modo indipendente dal tipo e dalle
caratteristiche del sistema in oggetto. È, invece, possibile mettere a punto
specifiche strategie per specifiche classi di sistemi.
Per
esempio, è possibile dare indicazioni molto precise su come impostare il
processo di progettazione e sviluppo di un sito Web, specificando quanti
prototipi è conveniente realizzare, in quali fasi, con quali tecnologie e con
quali obiettivi specifici, da valutare attraverso specificate attività di test.
A questo argomento è dedicato un altro libro di chi scrive.[10] Rimandando il lettore interessato a questo libro per
approfondimenti, ci limitiamo qui a indicare che, in questo caso, il processo
iterativo user-centred si può convenientemente sviluppare in sette macrofasi,
con cinque prototipi principali, ciascuno dei quali ha tecniche realizzative e
finalità specifiche (Figura 7).
Figura 7. Processo iterativo per la progettazione e sviluppo di un sito web
In sintesi, dopo la fase di realizzazione del documento dei
requisiti e di avviamento del progetto (il cui documento finale è denominato
Piano di qualità), vengono realizzati i seguenti prototipi:
· Primo prototipo (prototipo di navigazione): ha lo scopo di consolidare l’architettura informativa e di navigazione del sito. Permette all’utente di vedere l’ossatura del sito (ancora privo di grafica e di contenuti informativi, ma dotato delle strutture di navigazione principali, per esempio i menu), e di navigare al suo interno.
· Secondo prototipo (prototipo di comunicazione): ha lo scopo di consolidare l’impostazione grafica del sito e tutti gli aspetti riguardanti la comunicazione. Mancano ancora del tutto i contenuti informativi e le funzioni interattive, ma la cornice grafica è quella finale.
· Terzo prototipo (prototipo funzionale): ha lo scopo di consolidare le funzioni interattive del sito. I contenuti informativi sono ancora assenti, ma il “contenitore” è sostanzialmente pronto, e l’utente può provarne le funzioni interattive, sia pure in un contesto ancora lontano da quello reale.
· Quarto prototipo (prototipo editoriale): ha lo scopo di consolidare i contenuti informativi e la (eventuale) base dati del sito. Il sito è praticamente pronto: i test con l’utente possono svolgersi in un ambiente completo e realistico, anche se su sistemi di sviluppo, e non di produzione.
· Quinto prototipo (prototipo finale): ha lo scopo di permettere di valutare le prestazioni di funzionamento del sito sui sistemi finali di produzione.
Naturalmente,
le prove effettuate su ciascun prototipo potranno suggerire delle iterazioni,
come indicato dalle frecce all’indietro in Figura 7. Normalmente, se il
processo è condotto bene, questi ricicli saranno sostanzialmente confinati
all’interno della macro-fase corrente. Così, per esempio, le prove d’uso del
prototipo di comunicazione produrranno aggiustamenti nella grafica, con
successive iterazioni all’interno della fase 4 in figura, ma solo di rado
richiederanno modifiche alle fasi precedenti (prototipo di navigazione e
requisiti). In questo modo, per così dire, il modello iterativo di Figura 3 o Figura 5 viene, per così dire, sostanzialmente linearizzato, assomigliando, se
tutto va bene, al modello “a cascata”, con notevoli benefici in termini di
controllo dei costi e qualità del risultato finale.
Nel contesto
dei processi dell’ingegneria dell’usabilità, alcune professionalità
specifiche assumono un ruolo
rilevante. Esse possono venire raccolte sotto la generica etichetta di usability professional, come propone
l’associazione internazionale dei professionisti dell’usabilità (UPA, Usability Professional Association),
che, nel suo sito web (www.upassoc.org),
definisce usability professional…
...in
generale, chiunque lavori per la usabilità di un prodotto, o ne sia un promotore. Alcuni si specializzano nel condurre
test o ricerche sugli utenti, mentre altri praticano l’usabilità come parte
delle loro attività di progettazione di prodotti, servizi, applicazioni
software o siti web.
La formazione e il background professionale dei
professionisti dell’usabilità è altrettanto ampia. Aggiunge infatti la UPA, che
“molti hanno qualifiche in campi strettamente correlati, come la interazione
uomo-macchina (HCI), l’information design o la psicologia. Altri hanno usato il
loro background nella computer science, nel project management, nel
giornalismo, nelle arti, nelle scienze bibliotecarie, o nel business come parte
del loro viaggio verso questa professione.”
Lo spettro di attività nelle quali trova impiego un
professionista dell’usabilità è altrettanto ampio. La stessa UPA, nel suo sito
(che fa specifico riferimento al modello di progettazione dell’ISO 13407 sopra
descritto), menziona le seguenti attività, ripartite fra le fasi del progetto:
In fase
di analisi:
· incontrare gli stakeholder[11] per impostare la visione;
· inserire nel piano di progetto le attività relative all’usabilità;
· organizzare un team multidisciplinare per assicurare un’esperienza completa;
· sviluppare gli obbiettivi di usabilità;
· condurre studi sul campo;
· esaminare prodotti concorrenti;
· creare i profili degli utenti;
· sviluppare analisi dei compiti;
· documentare scenari d’uso;
· documentare i requisiti relativi alle prestazioni degli utenti.
In fase di progettazione:
· effettuare brainstorming sui design concept e sulle metafore;
· sviluppare le sequenze di schermate e i modelli di navigazione;
· revisionare i design concept;
· avviare il progetto con carta e matita;
· creare prototipi a bassa fedeltà;
· condurre test di usabilità su prototipi a bassa fedeltà;
· creare il design di dettaglio per i prototipi ad alta fedeltà;
· effettuare ancora i test di usabilità;
· documentare standard e linee guida;
· creare specifiche di progetto.
In fase di realizzazione:
• effettuare valutazioni durante il processo;
• lavorare a stretto contatto con il team di sviluppo per la rifinitura del design;
• condurre test di usabilità quanto prima possibile.
In fase di avviamento:
• utilizzare questionari per ottenere feedback dagli utenti;
• condurre studi sul campo per ottenere informazioni sull’utilizzo effettivo;
• verificare il raggiungimento degli obiettivi per mezzo di test di usabilità.
Considerando la varietà dei temi
trattati, i professionisti dell’usabilità costituiscono una popolazione
piuttosto variegata, in funzione delle specifiche competenze. Le
specializzazioni più diffuse, ancora secondo la UPA, sono:
Altre professioni strettamente
collegate, sempre secondo l’UPA, includono quelle di:
Nei paragrafi precedenti
abbiamo illustrato le attività necessarie per la progettazione e realizzazione
di sistemi usabili. Da quanto detto è evidente che l’usabilità non nasce “per
caso”. Essa va accuratamente pianificata, progettata e monitorata durante tutto
l’arco del progetto, utilizzando risorse e attività specifiche, secondo i metodi
dell’ingegneria dell’usabilità. Tutto questo, ovviamente, ha dei costi. È
naturale, quindi, chiedersi quale sia il rapporto fra i costi e i benefici
ottenibili.
I costi sono essenzialmente di
due tipi. Innanzitutto, ci sono i costi dell’investimento necessario per
trasformare un’organizzazione di progetto tradizionale in un’organizzazione che
utilizza i metodi dell’ingegneria dell’usabilità. Questo richiede attività di
addestramento (per i progettisti e i responsabili di progetto) e reclutamento
di nuove risorse (per esempio, consulenti esperti di usabilità) da inserire in
quei team di progetto multi-disciplinari di cui abbiamo parlato nel Capitolo 3.
Si tratta quindi di gestire un cambiamento organizzativo e culturale, che nel
caso di grandi organizzazioni di progetto potrebbe essere non banale, e
richiedere una prima fase di sperimentazione attraverso progetti pilota. Come
si possono quantificare i ritorni di questi investimenti?
In secondo luogo, supponendo di
considerare un’organizzazione che sappia già fare dell’ingegneria
dell’usabilità, ci sono i costi
delle specifiche attività finalizzate all’usabilità, e che non verrebbero
eseguite in un processo d’ingegneria tradizionale. Come quantificarne il rapporto
costi/benefici? Com’è del tutto evidente, non si tratta di un’operazione
banale. Come osserva Nielsen, il modo più corretto per quantificare il rapporto
costi/benefici sarebbero quello di realizzare due versioni “equivalenti” dello
stesso prodotto, in un caso senza porre in essere alcuna attività specifica
finalizzata all’usabilità, e nell’altro adottando un processo di progettazione
centrato sull’utente, tenendo traccia dei costi complessivi di progettazione in
ciascuna situazione. In seguito, si dovrebbero far utilizzare in contesti
simili entrambi i prodotti per un periodo di tempo sufficientemente lungo e da
parte di un numero significativo di utenti, misurandone l’usabilità, per
esempio definendo opportune metriche di efficacia, efficienza e soddisfazione,
come abbiamo visto nel Capitolo 1, che si possano tradurre in termini
economici. Per esempio, per quanto riguarda l’efficienza, potremmo quantificare
i tempi medi di esecuzione dei vari compiti in entrambi i casi, valorizzando il
tempo sulla base del costo medio del personale utilizzato. Dovremmo,
ovviamente, considerare nei due casi sia i tempi di apprendimento dei prodotti,
sia i tempi richiesti dal loro uso a regime. Per quanto riguarda l’efficacia,
potremmo poi considerare la frequenza degli errori d’uso in un caso e
nell’altro, e tradurre ancora una volta questi dati in termini economici.
Infine, per quanto riguarda la soddisfazione dell’utente, dovremmo compiere
delle indagini attraverso questionari, ed eventualmente formulare delle
ipotesi, da tradurre ancora una volta in termini economici, sul mercato
potenziale di ciascun prodotto sulla base del gradimento medio.
Tutto questo non è
evidentemente realizzabile in pratica e, anche se lo fosse, le variabili
coinvolte nell’esperimento sono così numerose da renderne comunque le
conclusioni piuttosto discutibili. È tuttavia possibile, e relativamente poco
costoso, condurre per così dire degli “esperimenti concettuali”, quantificando,
sotto opportune ipotesi, i potenziali guadagni di una migliorata usabilità. I
risultati saranno ipotetici, certamente opinabili ma, nel caso di prodotti
destinati a un mercato di massa, spesso convincenti, almeno in termini di
benefici “sociali”.
Per esempio, proviamo a
ipotizzare, per un certo prodotto (per esempio un sistema di word
processing), una determinata Riduzione
del Tempo di Apprendimento medio (RTA), dovuta a una migliorata usabilità, e
una determinata Riduzione del Tempo medio di Esecuzione di un certo compito
importante e frequente c (RTMc), dovuta sia a un’interazione più
agevole, sia a una riduzione statistica del numero degli errori effettuati
dall’utente. Se ipotizziamo, anche senza condurre analisi raffinate, che RTA=4h
(mezza giornata lavorativa) e che RTMc = 10 secondi, e se
ipotizziamo che il compito c venga eseguito, in media, 1 volta al giorno, su
una popolazione di 100.000 utenti il risparmio nel primo anno di utilizzo del
prodotto sarebbe:
(4h x
100.000) + (10 sec x 365gg x 100.000) =circa 400.000h + 100.00h = 500.000h.
Questo corrisponde a un
risparmio complessivo, sulla popolazione considerata, di circa 62.500 giornate
lavorative ovvero, considerando 200 giornate lavorative medie annue pro-capite,
un risparmio di tempo di circa il 3 per mille. Poiché le ipotesi fatte sono del
tutto ammissibili anche senza analisi particolarmente raffinate (e con un
atteggiamento di cautela), il risparmio “sociale” è certamente significativo.
Ovviamente, questo dato non è necessariamente d’interesse per il produttore o
il venditore, che considerano in primo luogo costi e benefici in relazione al
suo bilancio.
Certamente, tuttavia, è
possibile effettuare altri esperimenti concettuali, per quantificare benefici
che più direttamente impattano sul conto economico del produttore. Le voci che
potrebbero essere considerate sono numerose, a partire dai benefici ottenibili già in fase di
progettazione fino ai benefici risultanti da una migliore accoglienza del
prodotto da parte del mercato, per esempio:
· Riduzione dei costi complessivi di progettazione e sviluppo, derivanti da minori rifacimenti o modifiche del prodotto nelle fasi finali del progetto, dovuti all’utilizzo di processi di progettazione iterativi, che permettono di anticipare i problemi di usabilità – e le loro soluzioni. È noto, infatti, che i costi delle modifiche di un prodotto sono tanto maggiori quanto più tali modifiche avvengono nelle fasi finali del progetto, o addirittura dopo il suo rilascio agli utilizzatori.
· Riduzione dei costi di manutenzione, per gli stessi motivi.
· Riduzione dei costi di supporto all’utente, in termini di formazione all’uso e documentazione tecnica più semplici e quindi meno costose e, soprattutto, di supporto post-vendita (es. help desk e assistenza tecnica).
· Maggiore soddisfazione dell’utente, con conseguente miglioramento dell’immagine del prodotto e della credibilità del fornitore sul mercato e, di conseguenza, un incremento dei volumi di vendita.
In conclusione, non è difficile
condurre esperimenti concettuali anche piuttosto raffinati nell’ambito di
prodotti specifici, per sostenere la tesi che una buona usabilità, effettivamente,
ripaga. Esistono peraltro, in letteratura, numerose ricerche che, nell’ambito
di specifici prodotti, forniscono dati convincenti a supporto di queste
affermazioni. Tuttavia è convinzione di chi scrive che tali quantificazioni non
colgano il punto essenziale. I benefici dell’usabilità vanno ben oltre i
risparmi strettamente quantificabili sul conto economico delle aziende. In un
contesto che si fa sempre più complesso, come accennato nell’introduzione,
l’usabilità è un attributo importante, che migliora la qualità della vita degli
utenti e riduce l’entità e le conseguenze del digital divide. Perseguire l’usabilità significa cercare di
costruire un mondo a misura d’uomo e non delle macchine, in cui si viva e si
lavori meglio, che minori sprechi di risorse e con più soddisfazione.
1. Spiega
che cosa s’intende per ingegneria dell’usabilità.
2. Spiega
quali sono, a tuo parere, i rapporti fra l’ingegneria del software e
l’ingegneria dell’usabilità.
3. Quali
sono i vantaggi e gli svantaggi del modello tradizionale di progettazione e
sviluppo “a cascata”?
4. Quali
sono i vantaggi e gli svantaggi del modello di progettazione e sviluppo per
prototipi successivi?
5. Spiega
che cosa s’intende con “ciclo
compito-artefatto”.
6. Quali
sono le principali caratteristiche del modello di progettazione human-centred
proposto dall’ISO 13407?
7. Che
cosa s’intende per user-centred design?
8. Analizza l’interfaccia utente di Facebook, e
identifica qualche semplice miglioramento auspicabile, quantificandone, in modo
approssimato, il rapporto costi/benefici di tale intervento.
1. Per approfondire i modelli dei processi di progettazione e sviluppo definiti nell’ambito dell’ingegneria del software puoi consultare uno dei molti libri introduttivi all’argomento, per esempio il classico testo di I.Sommerville, Ingegneria del software (Ottava edizione), Pearson Addison-Wesley, 2007.
2. Lo standard ISO 13407 si trova in rete in http://www.iso.org. Purtroppo è accessibile soltanto a pagamento.
3. Leggi la nota di Norman su Human-Centred Design Considered Harmful,
citata nel presente capitolo (disponibile in rete, in htto://www.jnd.org).
4.
La letteratura disponibile sull’analisi dei costi e
benefici dell’usabilità è vasta, a partire dall’importante libro a cura di R.Bias e D.J.Mayhew, Cost Justifying Usability (Morgan Kaufmann,
1994, seconda edizione nel 2005). Anche in rete esiste abbondante
materiale. Puoi approfondire l’argomento, per esempio, partendo dal sito della
UPA http://www.upassoc.org, oppure da
http://www.usabilityfirst.com dove ci
sono sezioni dedicate all’argomento, oppure cercando in rete “usability ROI”,
dove ROI sta per “Return Of Investment”. Nel sito di Jakob Nielsen http://www.useit.com ci sono interessanti note
sull’argomento, in relazione all’usabilità dei siti web. Tieni comunque
presente che molto materiale presente in rete ha scopo promozionale, e che
spesso le metodologie utilizzate nell’analisi costi/benefici sono approssimate.
Può essere utile leggere le considerazioni di buon senso nell’articolo di Daniel Rosenberg, The miths of usability ROI, in ACM
Interactions, vol.5, 11 (settembre-ottobre 2004).
5.
Puoi divertirti a condurre esperimenti concettuali sul
ritorno degli investimenti sulla usabilità di siti web di e-commerce
utilizzando lo “usability ROI calculator” disponibile online in http://www.usereffect.com/topic/new-tool-usability-roi-calculator.
[1] Il termine software engineering è stato usato per la prima volta nella storica
NATO Software Engineering Conference,
tenutasi a Garmish, in Germania,
nell’ottobre 1968
[2] M.Good, T.M.Spine, J.Whiteside, P.George, User-derived impact analysis as a Tool for
Usability Engineering, in Proceedings CHI 1986
[3] Questi principi sono stati per la
prima volta proposta nel 1985 da J.Gould e C.Lewis, Designing for Usability: Key principles and what designers think,
in Communications of the ACM, 28(3), e parzialmente riformulati in successivi
articoli degli autori. Per una analisi storica e critica dei tre principi,
nell’ottica odierna, si veda G.Cockton, Revisiting
Usability’s Three Key Principles, in Proceedings CHI 2008.
[4] Cfr. J.M.Carroll,
W.A.Kellogg, M.B.Rosson, The Task-Artifact Cycle, in J.M.Carroll (ed.), Designing
Interaction – Psychology at the Human computer Interface, Cambridge
University Press, 1991.
[5] Cfr. I.Jacobson, G.Booch, J.Rumbaugh, The Unified Software Development Process, Addison-Wesley, 1999
[6] La presente sezione contiene
una sintesi di alcune pagine dello standard. Il suo fine è puramente didattico
e introduttivo, e non dovrebbe essere utilizzato in sostituzione del documento
originale, per esempio per valutare la conformità allo standard delle procedure
in atto presso una certa organizzazione.
[7] D.A.Norman, S.W.Draper, User Centred
System Design, in New Perspectives on
Human-Computer Interaction, L.Erlbaum Associates Inc., 1986.
[9] Nostra
traduzione da D.A.Norman, Human-Centred
Design Considered Harmful, in Interactions,
12,4 (luglio-agosto 2005). Disponibile anche in rete, sul sito di Norman http://www.jnd.org.
[10]
Questa impostazione è analiticamente descritta nel libro: R.Polillo, Plasmare
il Web – Road map per siti di qualità (Apogeo, 2006), nel quale viene
dettagliata una completa “road-map”
in sette fasi per la progettazione e sviluppo di siti di medie
dimensioni.
[11] Gli stakeholder sono tutti coloro
che hanno interesse nel progetto, se ne parlerà nel Capitolo 7.