Corso di Interazione Uomo MacchinaAA 2010-2011Roberto PolilloCorso di laurea in InformaticaUniversità di Milano BicoccaDipartimento di Informatica, Sistemistica e Comunicazione PROGETTARE PER L’ERRORE1Edizione 2010-11R.Polillo - Ottobre 2010
Scopo di questa lezione2	Discutere la nozione di errore umano, e presentare alcune linee guida per il trattamento degli errori nell’interazione uomo-macchinaR.Polillo - Ottobre 2010
ErroreR.Polillo - Ottobre 20103Il 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 casualeJames Reason, Human Error
4AZIONE NON INTENZIONALEEs Urto il tavolo e rovescio un bicchiereNOc’era l’intenzione di agire?c’era intenzionenell’azione?NOAZIONE SPONTANEAEs Mi lanciano una palla di neve e mi proteggoSISIl’azione è proceduta come pianificato?NOAZIONE NONINTENZIONALE(“SLIP” o “LAPSUS”)SIl’azione ha ottenuto lo scopodesiderato?AZIONE INTENZIONALE MA ERRATA(“MISTAKE”)NOSIAZIONE CORRETTAClassificare l’errore umanoDa: J.Reason, Human Error, 1990R.Polillo - Ottobre 2010
Slip (o lapsus)R.Polillo - Ottobre 20105	Letteralmente: “scivolata”	Sostituzione involontaria di una lettera, suono, parola al posto di un’altra e, generalizzando, sostituzione di azioni o comportamenti al posto di altreEsempi: lapsus linguaelapsus calami
ErrorhandlingError diagnosisError recoveryProgettare per l’errore: temiR.Polillo - Ottobre 20106Error detectionError explanationError prevention
Progettare per l’errore: temiR.Polillo - Ottobre 20107
Prevenzione8Degli slip: di solito è abbastanza facileEsempio: “giusta” distanza fra i pulsanti, allontanando pulsanti di uso frequente da pulsanti “pericolosi”Dei mistake: più difficileEsempio: formazione degli utenti, riprogettazione del sistema R.Polillo - Ottobre 2010
Prevenzione degli slip: esempioR.Polillo - Ottobre 20109
Prevenzione dell’errore: alcune indicazioniR.Polillo - Ottobre 201010Diversificare le azioni dell’utenteEvitare comportamenti “modali”Usare “funzioni obbliganti”Imporre input vincolatiNon sovraccaricare la memoria a breve termine dell’utenteRichiedere confermeUsare default inoffensiviFornire alternative sicure
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’utenteSe l’utente non conosce lo stato, non può prevedere come il sistema risponderà alle sue azioniR.Polillo - Ottobre 2010
Comportamento modale: esempio R.Polillo - Ottobre 201012Quando 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 vedeNB: A volte però la clipboard può essere resa visibile Office 2007
213Comportamento modale: esempio (PowerPoint)quale figura sto per disegnare?Quando ho selezionato una figura in (1) PowerPonit è entrato in uno stato che non mi fa vedere13R.Polillo - Ottobre 2010
La forma del cursore indica che sono in modalità “matita”14MacPaint, 1984R.Polillo - Ottobre 2010
15MacPaint, 1984R.Polillo - Ottobre 2010
Il cursore indica che sono in modalità “cammina”16R.Polillo - Ottobre 2010Wrath of the Gods (Luminaria, 1994)
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 erroreR.Polillo - Ottobre 2010
Funzioni obbliganti: esercizio18       In un sistema desktop quale delle seguenti due soluzioni è preferibile?      1. Selezione azione  selezione oggetto      2. Selezione oggetto  selezione azioneR.Polillo - Ottobre 2010
Funzioni obbliganti: esercizio 119       In un sistema desktop quale delle seguenti due soluzioni è preferibile?      1. Selezione azione  selezione oggetto      2. Selezione oggetto  selezione azioneR.Polillo - Ottobre 2010
20Finder Macintosh, 1974R.Polillo - Ottobre 2010
Input vincolatiR.Polillo - Ottobre 201021Permettere all’utente di effettuare solo azioni lecite nel contesto corrente(Generalizza la nozione di funzione obbligante)
Input vincolati: esercizio221)2)3)4)Quale fra le seguenti soluzioni è la migliore per prevenire errori di input?R.Polillo - Ottobre 2010
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 0Ricordare sempre il numero magico 7Non sovraccaricare la memoria a breve termineR.Polillo - Ottobre 201023
Richiedere confermeR.Polillo - Ottobre 201024	Chiedere sempre conferma prima di effettuare azioni irreversibili o pericolose…	…spiegando con chiarezza quali sono le alternative possibili, e le loro conseguenze
Richieste di conferma: esempi da discutereR.Polillo - Ottobre 201025
Richieste di conferma: esempi da discutereR.Polillo - Ottobre 201026Da www.bravenet.comDa: Microsoft Access 95
27R.Polillo - Ottobre 2010Richieste di conferma: esempi da discutereMenuxxxyyyzzzXXXmvcbc bvbnvXXXmvcbc bvbnvEsciEsciSei sicuro di voler uscire?sìno
Usare default inoffensivi: esempioR.Polillo - Ottobre 201028(da Photoshop)
ErrorhandlingError diagnosisError recoveryProgettare per l’errore: temiR.Polillo - Ottobre 201029Error detectionError explanationError prevention
Un buon messaggio di errore deve…301. Allertare“attenzione: qualcosa non va”2. Identificare l’errore“è questo che non va”3. Dirigere l’utente“ora devi fare questo”R.Polillo - Ottobre 2010
Note alert box(Livello 1)Caution alert box(Livello 2)Stop alert box(Livello 3)Livelli di allertaR.Polillo - Ottobre 201031
Messaggi di errore: linee guida32Spiegare esplicitamente che cosa non va…e dare indicazioni costruttive su come risolvere il problema ...nel linguaggio dell’utente …in modo educato, esauriente e precisoR.Polillo - Ottobre 2010
Esempi da discutereR.Polillo - Ottobre 201033
R.Polillo - Ottobre 201034Esempi da discutere
R.Polillo - Ottobre 201035Esempi da discutere
Linee guida per il web36i messaggi di errore siano chiaramente visibili e espressi in un linguaggio chiaro, comprensibile a tuttisi cerchi di preservare per quanto è possibile il lavoro già fatto dall’utentesi cerchi di ridurre al massimo il lavoro necessario per correggere l’erroreR.Polillo - Ottobre 2010
37R.Polillo - Ottobre 2010
38R.Polillo - Ottobre 2010
39R.Polillo - Ottobre 2010
40R.Polillo - Ottobre 2010
R.Polillo - Ottobre 2010
R.Polillo - Ottobre 2010
HTTP 404 - File not foundR.Polillo - Ottobre 201043
44R.Polillo - Ottobre 2010
Esempio dal sito di Jakob Nielsen45R.Polillo - Ottobre 2010
ErrorhandlingError diagnosisError recoveryProgettare per l’errore: temiR.Polillo - Ottobre 201046Error detectionError explanationError prevention
Error toleranceStato inizialeStato finaleAZIONE CORRETTAAZIONE ERRATAFORWARD RECOVERYBACKWARD RECOVERYStato di erroreError recovery (ripristino)47R.Polillo - Ottobre 2010
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 - 10R.Polillo - Ottobre 2010
Esempio49R.Polillo - Ottobre 2010

11. Progettare per l errore

  • 1.
    Corso di InterazioneUomo MacchinaAA 2010-2011Roberto PolilloCorso di laurea in InformaticaUniversità di Milano BicoccaDipartimento di Informatica, Sistemistica e Comunicazione PROGETTARE PER L’ERRORE1Edizione 2010-11R.Polillo - Ottobre 2010
  • 2.
    Scopo di questalezione2 Discutere la nozione di errore umano, e presentare alcune linee guida per il trattamento degli errori nell’interazione uomo-macchinaR.Polillo - Ottobre 2010
  • 3.
    ErroreR.Polillo - Ottobre20103Il 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 casualeJames Reason, Human Error
  • 4.
    4AZIONE NON INTENZIONALEEsUrto il tavolo e rovescio un bicchiereNOc’era l’intenzione di agire?c’era intenzionenell’azione?NOAZIONE SPONTANEAEs Mi lanciano una palla di neve e mi proteggoSISIl’azione è proceduta come pianificato?NOAZIONE NONINTENZIONALE(“SLIP” o “LAPSUS”)SIl’azione ha ottenuto lo scopodesiderato?AZIONE INTENZIONALE MA ERRATA(“MISTAKE”)NOSIAZIONE CORRETTAClassificare l’errore umanoDa: J.Reason, Human Error, 1990R.Polillo - Ottobre 2010
  • 5.
    Slip (o lapsus)R.Polillo- Ottobre 20105 Letteralmente: “scivolata” Sostituzione involontaria di una lettera, suono, parola al posto di un’altra e, generalizzando, sostituzione di azioni o comportamenti al posto di altreEsempi: lapsus linguaelapsus calami
  • 6.
    ErrorhandlingError diagnosisError recoveryProgettareper l’errore: temiR.Polillo - Ottobre 20106Error detectionError explanationError prevention
  • 7.
    Progettare per l’errore:temiR.Polillo - Ottobre 20107
  • 8.
    Prevenzione8Degli slip: disolito è abbastanza facileEsempio: “giusta” distanza fra i pulsanti, allontanando pulsanti di uso frequente da pulsanti “pericolosi”Dei mistake: più difficileEsempio: formazione degli utenti, riprogettazione del sistema R.Polillo - Ottobre 2010
  • 9.
    Prevenzione degli slip:esempioR.Polillo - Ottobre 20109
  • 10.
    Prevenzione dell’errore: alcuneindicazioniR.Polillo - Ottobre 201010Diversificare le azioni dell’utenteEvitare comportamenti “modali”Usare “funzioni obbliganti”Imporre input vincolatiNon sovraccaricare la memoria a breve termine dell’utenteRichiedere confermeUsare default inoffensiviFornire alternative sicure
  • 11.
    Comportamenti modali11 Quando ilsistema si comporta diversamente a seconda dello stato (o modalità) in cui si trova, e questo stato non è facilmente riconoscibile dall’utenteSe l’utente non conosce lo stato, non può prevedere come il sistema risponderà alle sue azioniR.Polillo - Ottobre 2010
  • 12.
    Comportamento modale: esempioR.Polillo - Ottobre 201012Quando 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 vedeNB: A volte però la clipboard può essere resa visibile Office 2007
  • 13.
    213Comportamento modale: esempio(PowerPoint)quale figura sto per disegnare?Quando ho selezionato una figura in (1) PowerPonit è entrato in uno stato che non mi fa vedere13R.Polillo - Ottobre 2010
  • 14.
    La forma delcursore indica che sono in modalità “matita”14MacPaint, 1984R.Polillo - Ottobre 2010
  • 15.
  • 16.
    Il cursore indicache sono in modalità “cammina”16R.Polillo - Ottobre 2010Wrath of the Gods (Luminaria, 1994)
  • 17.
    Funzioni obbliganti 17 Situazioniin 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 erroreR.Polillo - Ottobre 2010
  • 18.
    Funzioni obbliganti: esercizio18 In un sistema desktop quale delle seguenti due soluzioni è preferibile? 1. Selezione azione  selezione oggetto 2. Selezione oggetto  selezione azioneR.Polillo - Ottobre 2010
  • 19.
    Funzioni obbliganti: esercizio119 In un sistema desktop quale delle seguenti due soluzioni è preferibile? 1. Selezione azione  selezione oggetto 2. Selezione oggetto  selezione azioneR.Polillo - Ottobre 2010
  • 20.
  • 21.
    Input vincolatiR.Polillo -Ottobre 201021Permettere all’utente di effettuare solo azioni lecite nel contesto corrente(Generalizza la nozione di funzione obbligante)
  • 22.
    Input vincolati: esercizio221)2)3)4)Qualefra le seguenti soluzioni è la migliore per prevenire errori di input?R.Polillo - Ottobre 2010
  • 23.
    Per informazioni sullenuove 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 0Ricordare sempre il numero magico 7Non sovraccaricare la memoria a breve termineR.Polillo - Ottobre 201023
  • 24.
    Richiedere confermeR.Polillo -Ottobre 201024 Chiedere sempre conferma prima di effettuare azioni irreversibili o pericolose… …spiegando con chiarezza quali sono le alternative possibili, e le loro conseguenze
  • 25.
    Richieste di conferma:esempi da discutereR.Polillo - Ottobre 201025
  • 26.
    Richieste di conferma:esempi da discutereR.Polillo - Ottobre 201026Da www.bravenet.comDa: Microsoft Access 95
  • 27.
    27R.Polillo - Ottobre2010Richieste di conferma: esempi da discutereMenuxxxyyyzzzXXXmvcbc bvbnvXXXmvcbc bvbnvEsciEsciSei sicuro di voler uscire?sìno
  • 28.
    Usare default inoffensivi:esempioR.Polillo - Ottobre 201028(da Photoshop)
  • 29.
    ErrorhandlingError diagnosisError recoveryProgettareper l’errore: temiR.Polillo - Ottobre 201029Error detectionError explanationError prevention
  • 30.
    Un buon messaggiodi errore deve…301. Allertare“attenzione: qualcosa non va”2. Identificare l’errore“è questo che non va”3. Dirigere l’utente“ora devi fare questo”R.Polillo - Ottobre 2010
  • 31.
    Note alert box(Livello1)Caution alert box(Livello 2)Stop alert box(Livello 3)Livelli di allertaR.Polillo - Ottobre 201031
  • 32.
    Messaggi di errore:linee guida32Spiegare esplicitamente che cosa non va…e dare indicazioni costruttive su come risolvere il problema ...nel linguaggio dell’utente …in modo educato, esauriente e precisoR.Polillo - Ottobre 2010
  • 33.
  • 34.
    R.Polillo - Ottobre201034Esempi da discutere
  • 35.
    R.Polillo - Ottobre201035Esempi da discutere
  • 36.
    Linee guida peril web36i messaggi di errore siano chiaramente visibili e espressi in un linguaggio chiaro, comprensibile a tuttisi cerchi di preservare per quanto è possibile il lavoro già fatto dall’utentesi cerchi di ridurre al massimo il lavoro necessario per correggere l’erroreR.Polillo - Ottobre 2010
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
    HTTP 404 -File not foundR.Polillo - Ottobre 201043
  • 44.
  • 45.
    Esempio dal sitodi Jakob Nielsen45R.Polillo - Ottobre 2010
  • 46.
    ErrorhandlingError diagnosisError recoveryProgettareper l’errore: temiR.Polillo - Ottobre 201046Error detectionError explanationError prevention
  • 47.
    Error toleranceStato inizialeStatofinaleAZIONE CORRETTAAZIONE ERRATAFORWARD RECOVERYBACKWARD RECOVERYStato di erroreError recovery (ripristino)47R.Polillo - Ottobre 2010
  • 48.
    Tolleranza verso glierrori48“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 - 10R.Polillo - Ottobre 2010
  • 49.