Progettare per l'errore

53
Corso di Interazione Uomo Macchina AA 2013-2014 Roberto Polillo Corso di laurea in Informatica Università di Milano Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione PROGETTARE PER L'ERRORE 1 R.Polillo - Marzo 2014 Edizion e 2013-14

description

Slides del corso di Interazione Uomo Macchina per il corso di laurea in Informatica - Università di Milano Bicocca (prof.R.Polillo)

Transcript of Progettare per l'errore

Page 1: Progettare per l'errore

Corso di Interazione Uomo MacchinaAA 2013-2014

Roberto Polillo

Corso di laurea in InformaticaUniversità di Milano BicoccaDipartimento di Informatica, Sistemistica e Comunicazione

PROGETTARE PER L'ERRORE1

R.Polillo - Marzo 2014 Edizione 2013-14

Page 2: Progettare per l'errore

Queste slides…

… si basano sul libro “Facile da usare”, dell’autore, dove si trovano tutte le necessarie spiegazioni. Vedi www.rpolillo.it

Queste slide sono disponibili con licenza Creative Commons (attribuzione, non commerciale, condividi allo stesso modo) a chiunque desiderasse utilizzarle, per esempio a scopo didattico, senza necessità di preventiva autorizzazione:

http://creativecommons.org/licenses/by-nc-sa/3.0/it/deed.it

La licenza non si estende alle immagini fotografiche e alle screen shots, i cui diritti restano in capo ai rispettivi proprietari, che sono stati indicati, ove possibile, nelle didascalie del libro. L’autore si scusa per eventuali omissioni, e resta a disposizione per correggerle.

R.Polillo - Marzo 2014

2

Page 3: Progettare per l'errore

Scopo di questa lezione3

Discutere la nozione di errore umano, e presentare alcune linee guida per il trattamento degli errori nell’interazione uomo-macchina

R.Polillo - Marzo 2014

Page 4: Progettare per l'errore

Errore

R.Polillo - Marzo 2014

4

Il concetto di errore umano è più complesso di quanto non sembri a prima vista: infatti non esiste una dicotomia semplice fra “errore” e comportamento “corretto”

“Errore” sarà inteso come termine generico per comprendere tutti quei casi in cui una sequenza pianificata di attività fisiche o mentali fallisce il suo scopo, e quando questo fallimento non possa essere attribuito all’intervento di qualche agente casuale

James Reason, Human Error

Page 5: Progettare per l'errore

Classificare l’errore umano5

AZIONE NONINTENZIONALE(“SLIP” o “LAPSUS”)

NO

AZIONE INTENZIONALE MA ERRATA(“MISTAKE”)

NO

c’era l’intenzione

di agire?

l’azione è proceduta come

pianificato?

SI

l’azione ha ottenuto lo scopo

desiderato?

SI

AZIONE CORRETTASI

c’era intenzionenell’azione?

NO

AZIONE NON INTENZIONALEEs Urto il tavolo e rovescio un bicchiere

NO

AZIONE SPONTANEAEs Mi lanciano una palla di neve e mi proteggo

SI

Da: J.Reason, Human Error, 1990

R.Polillo - Marzo 2014

Page 6: Progettare per l'errore

Slip (o lapsus)

R.Polillo - Marzo 2014

6

Letteralmente: “scivolata”Sostituzione involontaria di una lettera, suono, parola al posto di un’altra e, generalizzando, sostituzione di azioni o comportamenti al posto di altre

Esempi: lapsus linguae lapsus calami

Page 7: Progettare per l'errore

Error handling

Error diagnosis

Error recovery

Progettare per l’errore: temi

R.Polillo - Marzo 2014

7

Error prevention

Error detection

Error explanation

Page 8: Progettare per l'errore

Prevenzione8

Degli slip: di solito è abbastanza facile Esempio: “giusta” distanza fra i pulsanti, allontanando pulsanti di uso frequente da pulsanti “pericolosi”

Dei mistake: più difficile

Esempio: formazione degli utenti, riprogettazione del sistema

R.Polillo - Marzo 2014

Page 9: Progettare per l'errore

Prevenzione degli slip: esempio

R.Polillo - Marzo 2014

9

Page 10: Progettare per l'errore

Prevenzione dell’errore: alcune indicazioni

R.Polillo - Marzo 2014

10

Diversificare le azioni dell’utente Evitare comportamenti “modali” Usare “funzioni obbliganti” Imporre input vincolati Non sovraccaricare la memoria a breve termine dell’utente Richiedere conferme Usare default inoffensivi Fornire alternative sicure

Page 11: Progettare per l'errore

Comportamenti modali11

Quando il sistema si comporta diversamente a seconda dello stato (o modalità) in cui si trova, e questo stato non è facilmente riconoscibile dall’utente

Se l’utente non conosce lo stato, non può prevedere come il sistema risponderà alle sue azioni

R.Polillo - Marzo 2014

Page 12: Progettare per l'errore

Comportamento modale: esempio

R.Polillo - Marzo 2014

12

Quando eseguo copy o cut, l’oggetto copiato o tagliato viene inserito nella clipboard, ma non è visibile: il sistema cambia stato ma l’utente non lo vede

NB: A volte però la clipboard può essere resa visibile

Office 2007

Page 13: Progettare per l'errore

Comportamento modale: esempio (PowerPoint)

21

3quale figura sto per disegnare?

Quando ho selezionato una figura in (1) PowerPonit è entrato in uno stato che non mi fa vedere13 R.Polillo - Marzo 2014

Page 14: Progettare per l'errore

La forma del cursore indica che sono in modalità “matita”

MacPaint, 198414 R.Polillo - Marzo 2014

Page 15: Progettare per l'errore

MacPaint, 198415 R.Polillo - Marzo 2014

Page 16: Progettare per l'errore

Il cursore indica che sono in modalità “cammina”

Wrath of the Gods (Luminaria, 1994)16

R.Polillo - Marzo 2014

Page 17: Progettare per l'errore

Funzioni obbliganti 17

Situazioni in cui le azioni sono vincolate in modo tale che la mancata esecuzione di un passaggio impedisca il successivo (D.Norman)

Spesso ci danno noia, ma ci proteggono…

Esempio:L’auto emette un segnale d’allarme quando si apre la porta con la chiave inserita nel cruscotto…… in tal modo è impossibile chiudersi fuori per errore

R.Polillo - Marzo 2014

Page 18: Progettare per l'errore

Funzioni obbliganti: esercizio18

In un sistema desktop quale delle seguenti due soluzioni è preferibile?

1. Selezione azione selezione oggetto 2. Selezione oggetto selezione azione

R.Polillo - Marzo 2014

Page 19: Progettare per l'errore

Funzioni obbliganti: esercizio 119

In un sistema desktop quale delle seguenti due soluzioni è preferibile?

1. Selezione azione selezione oggetto 2. Selezione oggetto selezione azione

R.Polillo - Marzo 2014

Page 20: Progettare per l'errore

Finder Macintosh, 197420 R.Polillo - Marzo 2014

Page 21: Progettare per l'errore

R.Polillo - Marzo 2014

21

Input vincolati

Permettere all’utente di effettuare solo azioni lecite nel contesto corrente

(Generalizza la nozione di funzione obbligante)

Page 22: Progettare per l'errore

Input vincolati: esercizio22

1)

2)

3)

4)

Quale fra le seguenti soluzioni è la migliore per prevenire errori di input?

R.Polillo - Marzo 2014

Page 23: Progettare per l'errore

Per informazioni sulle nuove offerte, premi 1; per informazioni sulle tariffe e bla bla bla, premi 2; se sei interessato a conoscere i nuovi servizi e bla bla, premi 3; se desideri comunicare furto o smarrimento del tuo telefonino o bla bla bla per assitenza specialistica, premi 4; se desideri ricevere informazioni sul credito bla bla premi 5; se desideri parlare con un operatore premi 0

Ricordare sempre il numero magico 7

Non sovraccaricare la memoria a breve termine

R.Polillo - Marzo 2014

23

Page 24: Progettare per l'errore

R.Polillo - Marzo 2014

24

Richiedere conferme

Chiedere sempre conferma prima di effettuare azioni irreversibili o pericolose…

…spiegando con chiarezza quali sono le alternative possibili, e le loro conseguenze

Page 25: Progettare per l'errore

25

Richieste di conferma: esempi da discutere

R.Polillo - Marzo 2014

Page 26: Progettare per l'errore

Richieste di conferma: esempi da discutere

R.Polillo - Marzo 2014

26

Da www.bravenet.com

Da: Microsoft Access 95

Page 27: Progettare per l'errore

27

Menuxxxyyyzzz

R.Polillo - Marzo 2014

Richieste di conferma: esempi da discutere

BackBack

XXXmvcbc bvbnv

Sei sicuro di voler tornare?

sìsì nonoBackBack

XXXmvcbc bvbnv

Page 28: Progettare per l'errore

Usare default inoffensivi: esempio

R.Polillo - Marzo 2014

28

(da Photoshop)

Page 29: Progettare per l'errore

Error handling

Error diagnosis

Error recovery

Progettare per l’errore: temi

R.Polillo - Marzo 2014

29

Error prevention

Error detection

Error explanation

Page 30: Progettare per l'errore

Un buon messaggio di errore deve…30

1. Allertare“attenzione: qualcosa non va”

2. Identificare l’errore“è questo che non va”

3. Dirigere l’utente“ora devi fare questo”

R.Polillo - Marzo 2014

Page 31: Progettare per l'errore

Note alert box(Livello 1)

Caution alert box(Livello 2)

Stop alert box(Livello 3)

Livelli di allerta

R.Polillo - Marzo 2014

31

Page 32: Progettare per l'errore

Messaggi di errore: linee guida32

Spiegare esplicitamente che cosa non va… e dare indicazioni costruttive su come risolvere il

problema ... nel linguaggio dell’utente … in modo educato, esauriente e preciso

R.Polillo - Marzo 2014

Page 33: Progettare per l'errore

33

Esempi da discutere

R.Polillo - Marzo 2014

Page 34: Progettare per l'errore

R.Polillo - Marzo 2014

34

Esempi da discutere

Page 35: Progettare per l'errore

R.Polillo - Marzo 2014

35

Esempi da discutere

Page 36: Progettare per l'errore

Linee guida per il web36

i messaggi di errore siano chiaramente visibili e espressi in un linguaggio chiaro, comprensibile a tutti

si cerchi di preservare per quanto è possibile il lavoro già fatto dall’utente

si cerchi di ridurre al massimo il lavoro necessario per correggere l’errore

R.Polillo - Marzo 2014

Page 37: Progettare per l'errore

37 R.Polillo - Marzo 2014

Page 38: Progettare per l'errore

38 R.Polillo - Marzo 2014

Page 39: Progettare per l'errore

39 R.Polillo - Marzo 2014

Page 40: Progettare per l'errore

40 R.Polillo - Marzo 2014

Page 41: Progettare per l'errore

R.Polillo - Marzo 2014

Page 42: Progettare per l'errore

R.Polillo - Marzo 2014

Page 43: Progettare per l'errore

HTTP 404 - File not found

R.Polillo - Marzo 2014

43

Page 44: Progettare per l'errore

44 R.Polillo - Marzo 2014

Page 45: Progettare per l'errore

Esempio dal sito di Jakob Nielsen

45 R.Polillo - Marzo 2014

Page 46: Progettare per l'errore

Error handling

Error diagnosis

Error recovery

Progettare per l’errore: temi

R.Polillo - Marzo 2014

46

Error prevention

Error detection

Error explanation

Page 47: Progettare per l'errore

AZIONE CORRETTA

AZION

E ERR

ATA

Stato iniziale Stato finale

Stato di errore

FORWARD RECOVERY

BACKWARD RECOVERY

Error recovery (ripristino)47

Error tolerance

R.Polillo - Marzo 2014

Page 48: Progettare per l'errore

Tolleranza verso gli errori48

“Un dialogo è tollerante verso l’errore quando, a dispetto di evidenti errori nell’input, i risultati desiderati possono essere ottenuti senza (o con minime) azioni correttive.”

ISO 9241 - 10

R.Polillo - Marzo 2014

Page 49: Progettare per l'errore

Esempio49

R.Polillo - Marzo 2014

Page 50: Progettare per l'errore

R.Polillo - Marzo 2014

Page 51: Progettare per l'errore

Esempio di backward recovery: undo51

PowerPoint 2007 Photoshop CS3R.Polillo - Marzo 2014

Page 52: Progettare per l'errore

AZIONE CORRETTA

AZION

E ERR

ATA

Stato iniziale Stato finale

Stato di errore

Stato finaleapprossimato

Stato inizialeapprossimato

FORWARD RECOVERY

BACKWARD RECOVERY

Recovery imperfetta52

R.Polillo - Marzo 2014

da Francis Jambon, 1998

Page 53: Progettare per l'errore

Conclusioni53

“Il progettista non deve concepire una semplice dicotomia fra errori e comporta-mento corretto: al contrario, tutta l’interazione uomo-macchina deve essere trattata come una procedura cooperativa fra i due, dove gli equivoci possono nascere da ambo le parti.”

Donald Norman

R.Polillo - Marzo 2014