Du er en idiot

Det forekommer mig, at en del fejlbeskeder simpelthen kunne erstattes af dette blogindlægs overskrift... Ofte tilføjer de ikke noget brugbar information om, hvad der er sket, eller hvad man kan gøre for at komme videre, og antyder tit, at det må være brugeren, der har kvajet sig (igen). Se blog følgende autentiske fejlbesked fra installationen af Suns JDK: 

Illustration: Privatfoto

Vi har for nylig haft fornøjelsen af at få en technical writer ind i vores udviklingsafdeling. Hun har bl.a. lavet guidelines for, hvordan man skriver fejlmeddelelser, og jeg tror, at det er sundt for os udviklere, at der kommer nogen og kigger os over skulderen. En af de vigtige punkter i vores guideline er, at man beskriver, hvad brugeren kan gøre for at rette op på situationen.
 
Hvad skulle der i dette tilfælde have stået? "Hvis du ikke har noget S-drev, så map noget tilfældigt til drev S. Derefter kan installationen fortsætte. Bare rolig, vi lægger ikke nogen filer på drev S alligevel." En udvikler, der havde været tvunget til at beskrive en sådan workaround, var forhåbentlig begyndt at overveje, om man ikke skulle have gjort noget andet i det konkrete tilfælde end at vise en fejl til brugeren...
 
Kan vi gøre det til et fælles nytårsforsæt at holde op med at skrive håbløse fejlbeskeder? Jeg lover i hvert fald, at jeg vil prøve...

Kommentarer (16)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Dennis Krøger

Jeg har altid haft lyst til at lege lidt med localization filerne til en compiler, og give nogle lidt mere... Ubehagelige fejlbeskeder.

"Hey SPASSER, du kan IKKE plante kode efter return!"
"Den variabel findes ikke... Har du nu glemt at erklære den IGEN? NAR!"
"Dit bras compilede ikke. Nu er jeg snart træt af dig og dine elendige fejl."

  • 0
  • 0
Henrik Eiriksson

De mest fantastiske fejlbeskeder jeg har set er kommet af tankeløs localization.

For eksempel, i en hedengangen version af Oracle:
"SQL fejl: Bord eller Udsigt findes ikke"

Jeg ville elske hvis min compiler svinede mig til på kreative måder :-) Hmm, måske the-next-big-thing indenfor AI?

  • 0
  • 0
Jens Lund

Jeg er næsten overrasket over at jeg skal være den første der nævner heuristisk evaluering og/eller brugertests.

Hvem afgør hvad en håbløs fejlbesked er for brugeren?

Det er fint at ansætte en technical writer. Prøv også at køre et par brugertests og jeg vil næsten væde med, at i får uvurderlig feed back, som selv en technical writer ikke vil kunne give.

  • 0
  • 0
Jens Madsen

Ovenstående fejl er ikke den værste. De fleste har kendskab til drevbogstaverne på deres pc, og kan regne ud det måske er noget med drev S:.

Det værste er at ikke angive nogen fejlbesked, eller fejl som "impossible error", "internal error", "program halted", "execution error in module ¨aé´¨f#.dll" osv.

Mange alvorlige fejl, er uden fejlbesked. Teksten slettes uden kommentar. Pludsligt tom indtastningsfelt osv.

Det er også alvorligere at ikke behandle fejlmeldingen korrekt (f.eks. slette alt tekst, uden at give brugeren mulighed for at gemme først. En dårlig fejlmelding kan klares ved at prøve sig frem - slettes alt tekst uden at give mulighed for at gemme, går mange timer tabt.

Det vigtige ved brugergrænseflader er hvor hurtigt de er at bruge. En fejlmelding giver anledning til bekymring, men sker forhåbentligt sjælden. Der kan ringes til hotline, support, eller kontaktes en teknikker hvis virksomheden har en ansat "ekspert". Derimod dårlig brugervenlighed, som fører til det tager længere tid at bruge programmet end nødvendig, er en dødssynd forever. Hvis det tastes forkert, skal være nemt at opdage det, og nemt at rette det.

Min opfattelse er, at programmører kan meget lidt om brugervenlighed i dag. Tages eksempelvis mobiltelefoner, er deres brugervenlighed meget lav, uanset hvad fabrikanterne påstår. I stedet for at bruge en ekspert i brugervenlighed, skulle de have samlet et hold af analfabeter, blinde, hørehæmmede, svagtseende, idioter med dårlig hukommelse, parkinsons sygdom, dem med 7 tommelfingre, rynker osv. Et sådant hold vil kunne have skabt mere brugervenlig grænseflade. Nutidens brugervenlighed er elendig, og i nogle tilfælde alarmerende. Som eksempel skal man idag se på displayet, for at skrue op og ned for lyden. I "gamle dage", var en rulleknap på røret, så det kunne ske meddens man talte. Denne var trinløs, så der ikke pludseligt kom for kraftig lyd. Min mobiltelefon brændte nærmest hørelsen af på det ene øre, fordi jeg vil justere lyden, og så satte den højttaler på. I min alder, betyder det dårlig hørelse for bestandig.

Brugergrænseflader må gerne laves, så de kan læres udenad - og at der ikke kræves interaktivitet med et display. Displayet er svært at se for svagtseende, og telefoner kan laves til at fungere uden. Tasterne kan mærkes med knubber, så man kan føle hvor hænderne er. Det var selv E76 apparatet. Dengang blev tænkt på tingene.

Programmører tænker ikke på, at største delen af vores hjerne er uden syn, og hørelse. Det tager længere tid, og er mere besværlig, hvis arbejdsgangen skal indbefatte en "læs og forstå" af en tekst. Det bedste er ikke interaktiv arbejdsgang, som virker ens, og kan læres på rygmarven. Akustiske lyde, følelse på tastater (knubber eller feedback), lamper mv. kan give vished for at indtastningen er korrekt, og en følelse af det fungerer. At skulle læse lange tekster, gør det indviklet, kompliceret, og besværligt.

Men for alt i verden, må man ikke bare vælge at så droppe beskederne, så udstyret går ned, fordi der ikke kom fejlbesked. Fejlbeskeder er en meget lille del af brugergrænsefladen og det vigtigste er, at support, eller en ekspert kan hjælpe.

Hvis det er muligt at indstruere brugeren på en simpel måde - f.eks. "indsæt CD med "resources.dll" i drev S:", og vise et billede med udseendet af CD'en, så kan teknikkeren der har behov for at vide det er "resources.dll" der efterspørgs også bruge beskeden, hvilket er det mest vigtige, men også den ukyndige som kun vil vide hvilken CD der normalt skal isættes, kan bruge den i de normale tilfælde ved at tage efter billed.

  • 0
  • 0
Anne-Sofie Nielsen

Jeg ved ikke, om brugertests er den mest velegnede måde at få efterset sine fejlbeskeder på. Ofte kommer man jo i en brugertest kun igennem de mest typiske use cases og ikke nødvendigvis rundt i alle hjørner, hvor fejl kan opstå.

Selvfølgelig kan det ved brugertest ske, at man opdager en fejlbesked, som man troede var god nok, men alligevel ikke giver tilstrækkelig mening for brugeren, men forud for dette bør vel gå en grundig ekspertgennemgang (heuristisk evaluering) af alle forekommende fejl.

  • 0
  • 0
Jakob Veje Hansen

Håbløse fejlmeddelelser er go' underholdning. Jeg har hørt om følgende fra en DVD afspiller: "Svagelige indtræden". Efter laang tid gik det op for brugeren, at det nok betød "invalid input" :)

Men nu bevæger vi os ud af en tangent. Det Anne Sofie jo ville var, at opfordre til at tænke mere i hjælpsomme fejlmeddelelser, end i blot at beskrive nøgterne (og tekniske) karakteristika ved fejlsituationen. I virkeligheden er det nok ikke sværere end Anne Sofie beskriver: Beskriv hvad brugeren kan gøre for at rette op på situationen.. Hvad ville du selv gøre.

Hmm nu tænker jeg bare højt, men kunne man måske lave et generelt website til mange af de almindelige fejlsituationer, så alle programmer ikke skal bruge kræfter på at beskrive de samme fejl og de samme korrigerende handlinger.

F.eks. program foo melder: "An empty CD was expected in drive E: Please insert one. For more information, visit http://www.explain-me-the-error.net/InsertEmptyCDInDrive"

http://www.explain-me-the-error.net/InsertEmptyCDInDrive:

"The program you are using needs an empty CD medium in the specified optical drive. An empty CD is a CD that has not yet been written data to. Empty CDs are often bought in packs of 10, 50, 100, and sometimes referred to as "Unformatted" or "Blank".
An optical drive is a drive that accepts CD or DVD medias, often referred to as DVD-ROM or CD-ROM drives.
If you have more than one optical drive, you can find out which drive to insert the CD into by doing..."

Eller er det for langt ude?!

  • 0
  • 0
Jens Lund

@Jens Madsen
"Ovenstående fejl er ikke den værste. De fleste har kendskab til drevbogstaverne på deres pc, og kan regne ud det måske er noget med drev S:."

Fejlmeddelelsen var nu håbløs nok til at Anne-Sofie skrev en blogpost om den. :-)

Fejlmeddelelser er ikke noget man skal "regne ud". Ingen andre end brugeren selv ved hvor god brugeren er til at "regne". De skal være selvforklarende.

@Anne-Sofie
"Jeg ved ikke, om brugertests er den mest velegnede måde at få efterset sine fejlbeskeder på. Ofte kommer man jo i en brugertest kun igennem de mest typiske use cases og ikke nødvendigvis rundt i alle hjørner, hvor fejl kan opstå."

Ikke andre end brugerne kan svare på om de forstår beskeden. Det er helt fint, som jeg også skrev, at bruge ekspertvurderinger til at fjerne de værste designmæssige, og åbenlyse problemer.

Naturligvis afhængigt af hvor stort et system vi taler om, kan jeg altså godt forestille mig, at man lader brugere se samtlige fejlmeddelser, der måtte findes i et givent system.

Det er naturligvis både dyrt og tidskrævende.

  • 0
  • 0
Stig Johansen

Min første favorit fra engang i '80 erne, når man havde glemt at sætte keyboard stikket i:
(Husker det ikke ordret men)
Error: a keyboard error ocurred, press F1 to continue.

Og i windows 3.x tiden gik vi altid og spurgte:
Who the hell is this general failure.

På nyere Windows fik jeg engang en 'Error 0:'

Under noget serverprogrammering på Windows fik jeg engang 'Error: a catastrofical error occured' (Det var ADO's fortolkning af manglende rettigheder til databasen).

Med hensyn til 'undersættelser' husker jeg stadig oversættelsen af Wordstars 'Save and reedit' til 'Gem og genret'.

På et tidspunkt havde HP lagt lokaliseringen af deres ERP system i Israel.
Lad os bare sige, at det tog længere tid at rette 'deres' oversættelse, end det ville have taget selv at oversætte fra starten.

I den modsatte boldgade havde HP engang et produkt, Businnes Report Writer.
Hvis der skete en fejl fik man:
En toombstone på en hel 'A4 side'
+
En hel 'A4 side' med forslag til rettelser.
Det duede.

  • 0
  • 0
Torben Mogensen Blogger

Fejlmeddelelsen fra DOS var "Keyboard not found. Press F1 to continue". Meningen var nok "Attack keyboard and press F1 to continue".

Basicfortolkeren på min BBC micro gav generelt gode fejlmeddelelser, men en af dem var blot "Silly".

  • 0
  • 0
Dennis Krøger

Heh, mit Dankort er et af dem man man selv kan dekorere, der har jeg selvfølgelig stående i bunden:

static const char *usblp_messages[] = { "ok", "out of paper", "off-line", "on fire" };

  • fra Linux sourcen ;)

(Man er vel nörd)

  • 0
  • 0
Log ind eller Opret konto for at kommentere