Saturday, June 7, 2008

Kom lige med ind ved siden af ...

Et vindue på computerskærmen kan lidt opfattes som et rum - når man er i Word-rummet skriver man dokumenter, når man er i Firefox-rummet surfer man på nettet, når man er i Messenger-rummet chatter man. Ganske som man sover i soveværelset, laver mad i køkkenet og bader i badeværelset, så har de forskellige rum forskellige funktioner.

Jeg nævnte tre forskellige programmer, og selvfølgelig har de forskellige funktioner, men vinduer i samme program opfattes også som forskellige rum. Et gennemgående eksempel er "Indstillinger"-vinduet der findes i næsten alle programmer. Det er en slags bryggers - et baglokale, hvor man kan indstille hvordan man ønsker at bruge programmet. På samme måde kan man gå ud i sit bryggers og skrue lidt op for vandvarmeren, og på den måde få varmere vand i alle vandhaner i huset.

Så nogle gange giver det god mening med et ekstra rum - men det kan også være til stor ulempe - forestil dig f.eks. at du kun kunne justere vandets temperatur på vandvarmeren ude i bryggerset, så når du er i brusebad og vil have vandet varmere eller koldere, så skal du ud af badet, hen til bryggerset, skrue på vandvarmeren, tilbage i badet, mærke om det er okay nu, og måske gentage ... Det ville blive et forfærdeligt rend, og det ville være helt umuligt at koncentrere sig om det man laver (nemlig bader).

Dialogbokse

I alt for mange programmer skal man åbne en "dialogboks" hvis man laver noget der er bare en smule anderledes end det programmet er beregnet til. Hvis man for eksempel indsætter et billede i et tekstbehandlingsprogram, og ønsker at ændre hvordan teksten flyder rundt om billedet - så foregår de ændringer som regel i et andet lille vindue, en såkaldt dialogboks. Og vel at bemærke en "modal" dialogboks, som spærrer adgangen til resten af programmet, indtil man lukker den.

Det svarer lidt til at man er i gang med sit arbejde, og beder en kollega om hjælp - men han insisterer på at man forlader sin arbejdsplads, og følger med ham ind på et andet kontor, hvor man først får mulighed for at komme tilbage til sit arbejde, når han er færdig med at hjælpe en.

Hvis man skal ind i et andet rum for at lave ændringer på noget i det første rum, så bliver det straks lidt akavet. Det absolut værste eksempel er Søg/Erstat dialogen i Microsoft Word (som i øvrigt er kopieret fuldstændig i Open Office) - det er en dialogboks, den er ganske vist ikke modal, så man kan arbejde videre imens den er åben. Men den fylder en hel del, ligger oftest oven på teksten (omend den nogle gang hopper lidt rundt, for at undgå at ligge lige oven på den tekst den har fundet), og den giver mulighed for at redigere direkte i teksten inde i det første rum - det hænger slet ikke sammen - jeg tænker altid: "Hvorfor skal jeg gå uden for døren for at erstatte ord inde i rummet? Jeg går da ikke ud i entreen for at flytte tallerkenerne i mit køkken!"

Hvornår skal man så forlade rummet?

Det førnævnte "Indstillinger"-vindue er et ideelt eksempel på hvornår man både må og bør forlade rummet - det er et sted hvor man ændrer programmets funktionalitet, og ikke hvor man bearbejder det aktive dokument.

Vinduer med hjælpetekster er også tit okay at have uden for rummet - omend det tit vil være en fordel at kunne se hjælpeteksten imens man gør det den beskriver, altså have den ved siden af dokumentet.

Oprydning og administration kan det faktisk være en fordel at flytte ud af rummet - programmer der bruger skabeloner og design-opsætninger bør adskille den slags fra redigering af selve dokumentet. Noget tidligere udgaver af Word faktisk havde problemer med - man vidste aldrig helt om man redigerede i sit dokument, eller den designskabelon (normal.dot) der lå til grund for dokumentet.

Alternativer til at forlade rummet

Heldigvis er der en del programmer der er ved at indse problemet med at forlade rummet, og derfor har fundet nogle alternativer. De fleste tekstbehandlingsprogrammer har "kontekst-menuer" (som kommer frem når man højreklikker på f.eks. et billede) og "aktive toolbars" der opfatter hvor man befinder sig i dokumentet og hvad man har markeret, og så tilpasser de viste værktøjer, så man får et hurtigt overblik over hvad der er muligt at udføre i dette øjeblik.

Firefox har en fantastisk søge-funktion, der lægger sig i bunden af vinduet, og derfor mere er en toolbar end en dialogboks - og ikke om jeg begriber hvorfor den nye version ikke har integreret søgefunktionen direkte i sit " ribbon", som jeg ellers synes er en ganske fantastisk ide:

Microsoft Office 2007 indførte et "ribbon" som en ekstrem udgave af en aktiv toolbar, og det virker ganske fortrinligt. Selvfølgelig klager erfarne brugere af tidligere office-udgaver, for deres værktøjer er ikke hvor de plejer at være, men for os andre er det en fantastisk nyskabelse, især fordi ribbon'et laver automatisk preview - man behøver blot at røre ved en knap for at se hvad den vil gøre ved ens dokument - altså man undgår en masse 'trial and error'.

"In-place editing" bliver efterhånden brugt en del på websider - når man skal indtaste en dato, så kan man klikke på en knap ved siden af datofeltet, og få en kalender frem - ikke noget med et dialogvindue til at vælge dato. Når man vil ændre en overskrift eller en kommentar er det tit nok at klikke på den, så gør den sig selv redigerbar - ligesom filnavne i Windows Stifinder, man klikker bare på dem, så kan man ændre i navnet.

"Direct manipulation" er min absolutte favorit - hvor man f.eks. tager fat i hjørnet på et billede, og strækker det større eller mindre, i stedet for at vælge i en dialogboks hvor stort det skal være. Det er et større emne som jeg vil vende tilbage til i en senere post.

Altså

Undgå så vidt muligt at tvinge brugerne til at forlade rummet - lad så meget arbejde som muligt foregå direkte i det dokument der arbejdes på. Medmindre det er ændringer direkte i programmets opførsel, eller opsætninger eller andet der ikke har med selve dokumentet at gøre, så flyt det ind i en dialogboks.

Friday, May 30, 2008

Brugervenlighed

Lad det være sagt med det samme: Jeg går meget op i brugervenlighed! Faktisk så meget at jeg er uenig med de fleste eksperter om hvad brugervenlighed egentlig er.
Jeg har prøvet at finde nogle danske blogs om bruger-venlighed, men google finder stort set kun links til firmaer der reklamerer for at netop de kan levere det brugervenlige blog-system. Pudsigt nok er stort set alle systemer til hjemmesider også super brugervenlige - i hvert fald når producenten selv skal sige det. Det virker tit som om et program bliver brugervenligt, blot af at man sætter et stempel på kassen der siger "brugervenlig!".

Et særlig grelt eksempel var et system der solgte sig som enormt brugervenligt, for eksempel kunne man indsætte en header (et sidehoved) på sin hjemmeside, blot ved at tilføje følgende:
<?php include("header.inc"); ?>
Og det er altså ikke brugervenligt - snarere programmørvenligt.

De fleste programmørerer er så dybt optaget af hvordan computeren fungerer indvendigt, at de næsten ikke kan se programmerne fra brugerens synspunkt. De fleste brugere opfatter bare ikke andet end det der er på skærmen; de tænker f.eks. ikke på at Excel bruger mange flere decimaler i sine beregninger end der bliver vist, de tænker ikke på at der er et væld af programmer og services der sørger for at deres formularer bliver udfyldt når de er på nettet, de tænker slet ikke på client-server arkitektur, cascading style sheets, validerende xml, javascript-versioner eller nogle af alle de andre ting som vi programmører elsker!

Falsk brugervenlighed


Mange har en tendens til at kalde programmer for brugervenlige, så snart de er mulige at bruge, uden at man selv skal ind og rette i programkoden. I min opfattelse grænser det til at omtale et spisested, hvor tjenerne overfuser en hvis man ikke kan udtale retterne korrekt, som "havende en venlig betjening", for trods alt skulle man jo ikke lave maden selv.
En del computerbrugere, især de såkaldte powerusers, synes at lide af en art Stockholmssyndrom, for de bruger enhver lejlighed til at forsvare de umulige programmer - det er som om de tænker "Jeg har haft vildt svært ved at lære det her program at kende, så skal de andre sgu ikke have det for nemt." På den måde minder de lidt om drengene på kostskolen der tæver de nye elever, fordi da de selv var nye, blev de også tævet af de gamle ... Og den dårlige vane føres videre.

En ting er at programmer skal være konsistente, de skal bruge de samme ord overalt i brugerfladen, de skal helst have de samme genvejstaster fra version til version, de skal helst bruge ikoner der er ikonografiske, og ikke ligner små rebusser ... En del af de brugervenlighedseksperter jeg har mødt, har talt meget om hvordan knapper og felter i brugerfladen skal være logisk grupperet, og pænt og ordentligt organiseret. De siger at ord skal være stavet rigtigt, og at farvevalget skal følge computerens standard. Men det opfatter jeg sådan set ikke som brugervenlighed, det opfatter jeg som "overhovedet brugbare". For eksempel finder jeg det umådeligt svært at bruge programmer til komprimering af videofiler, fordi brugerfladen sådan set bare er en grafisk gengivelse af alle de faktorer og parametre man kan indstille i komprimeringsprogrammet selv - det er ikke brugervenligt!

Ægte brugervenlighed

Brugervenligt i min opfattelse, er når programmet hjælper en - ikke nødvendigvis i form af en animeret papirklips der kommer med råd og forslag, men med små subtile hints, for eksempel at disable knapper hvis man ikke kan bruge deres funktioner i øjeblikket, ved aktivt at vise at inputfelter ikke indeholder lovlige værdier, ved at foreslå standardindstillinger, ved at give previews af hvad der vil ske når man vælger en given funktion, og så videre og så videre.
Jeg kan godt lide ideen i "Don't make me think"-filosofien - selvfølgelig skal vi som brugere tænke, men når jeg skriver et dokument så vil jeg hellere tænke over det jeg skriver, end over hvordan i alverden jeg får linjeafstanden mellem afsnit til at blive en anden ...

Og det er dét denne blog kommer til at handle om - de steder hvor jeg ser noget godt, et program der er hjælpsomt, og de steder hvor jeg ser noget forfærdeligt, nemlig et program der er direkte fjendtlig indstillet over for sin bruger (og dem er der stadig alt for mange af).