Brugervenlige interfaces?

Tags:    programmering

Brugervenlige interfaces?

Hvad er et brugervenligt programinterface? De fleste vil mene at det er grafisk, mange vil ydermere mene at det skal være pænt (at skønhed er en yderst subjektiv ting skænkes ofte ikke en tanke) og slutteligt er det også vigtigt at det er let at finde rundt i - at det er logisk opbygget, at knapper gør det man tror de gør (hvis krydset i højre hjørne pludselig sætter vinduet til always-on-top skal der nok være nogle der brokker sig). Det sidste virker måske umiddelbart som det vigtigste - moderne programinterfaces er ikke nødvendigvis synderligt idéelle, men hvis man er vant til dem, ser man ikke fejlene. Ligesom med det imperielle målesystem - dem der bruger det er vant til dets klodsethed, men vi der er forvænte med SI-enheder finder det unødigt kryptisk og ulogisk.

Desværre resulterer disse forhold ofte i at interfaces bliver meget simplificerede, de bruger så meget tid/RAM på at være flotte og visuelle at de er langsomme og ineffektive. Dette gælder naturligvis ikke for alle interfaces, men når det kommer til grafiske applikationer er der en tendens til at gøre meget ud af udseendet, og fuldstændigt glemme at lave et logisk, effektivt interface. Personligt bliver jeg meget hurtigt træt af de anti-aliasede og alpha-blendede skygger hvis jeg skal grave igennem 8 menuer for at ændre skriftstørrelsen eller noget andet rudimentært. Det er jo ikke fordi at et program bliver lettere at bruge fordi der er dropshadows og 3D-accelererede interfaces, måske snarere tværtimod!

Hvem er brugeren?

Mange moderne, grafiske interfaces er slet ikke brugervenlige - de er begyndervenlige. Heri ligger en markant forskel. Hvad nytter det hvis du umiddelbart synes at et programs simple features er lette at bruge i den første måned, kun for at skulle bande og svovle over manglen på styrke og effektivitet i de efterfølgende år? Personligt vil jeg hellere investere noget tid i at lære programmet i den første tid, for derefter at kunne arbejde effektivt i den følgende tid. Problemet her er dog at det er sværere umiddelbart at se på et sådant program om det er godt, idet dets kvalitet først bliver tydelig når man har lært det at kende. Dette er formentligt årsagen til at de begyndervenlige programmer er de mest udbredte - de er ganske enkelt lettere at markedsføre for "almindelige mennesker." Specialiserede, professionelle programmer såsom 3D Studio Max og Photoshop er gode eksempler på at dette ikke gælder for dem der opfatter deres programmer som et uundværligt redskab, idet deres interface er designet til at kunne bruges af nogle meget kompetente folk - de er ikke umiddelbart intuitive og virker meget forvirrende på en der ikke har brugt dem før. CAD-software ligger i ekstremen, de har ofte tastaturgenveje til næsten alt, og mange tilbyder en kommandolinje fordi det er ofte lettere at udtrykke noget på skrift, end ved at vifte med en mus. Vi benytter os jo heller ikke af tegneprogrammer når vi skriver kode, vel?

Windows og MacOS er styresystemer der umiddelbart er lette at bruge, programmerne til disse systemer kan typisk bruges uden at læse dokumentation, og det meste funktionalitet er umiddelbart tilgængeligt via et grafisk interface (omend det nu og da er ret klodset, der er grænser for hvor mange punkter der kan være i en menu før den bliver uoverskuelig). Unix og lignende akademiske/specialiserede styresystemer ligger i den anden grøft. Traditionelt har de været stort set ubrugelige uden dokumentation, deres brug er altid kryptisk for dem der ikke kender til systemet og der er ingen, flotte visuelle interfaces, kun ren effektivitet. Til gengæld kan en erfaren bruger være uhyre effektiv med dem, de har et hav af indstillingsmuligheder, de kan kombineres på et utal af måder og er generelt utroligt flexible, bl.a. derfor har Unix en gammel tradition for scripting. Der findes naturligvis grafiske/begyndervenlige Unix-programmer, ganske som der findes kryptiske specialistprogrammer til Windows, men jeg snakker hovedsageligt om filosofien der ligger i de to systemer.

Hvorfor?

Hvis moderne grafiske interfaces er så dårlige, hvordan kan det så være at de er så udbredte? For det første vil jeg lige indskyde at de ikke er decideret dårlige - til et program der kun sjældent bruges, eller som bruges af folk der ellers ikke har interesse i computere, kan et simpelt, begyndervenligt interface være det bedste - men hvis programmet er et redskab som jeg regner med at bruge i lang tid fremover vil jeg gerne have effektivitet frem for en lav indlæringskurve.

Ydermere har jeg tidligere skrevet at det er langt lettere at markedsføre grafiske, begyndervenlige programmer - de fleste moderne reklamer er visuelle, og mennesker har en tendens til at dømme ting efter deres udseende, så derfor sælger programmer med flotte farver og spændende effekter bare bedre end tekstbaserede kommandolinjeværktøjer!

Tastaturgenveje er, som jeg tidligere har insinueret, ofte en god måde at gøre et programinterface hurtigere og mere effektivt - jo mindre man skal grave sig igennem komplicerede menuer og overfyldte menuvinduer, desto hurtigere kan man arbejde med det respektive program, og langtidsbrugeren har ikke noget imod at tage den tid det tager at lære programmet at kende. Tastaturgenveje er dog ikke altid ideelle - man kan forestille sig at programmet muligvis gør tung brug af musen (en form for tegneprogram, f.eks), og derfor ville det måske være mere nyttigt at implementere forskellige genvejsfunktioner via musen - f.eks. mouse gestures, som i Opera-browseren, eller lignende.

Én interfacekvalitet der gælder for både begynder- såvel som expertvenlige interfaces er konsistens, i Windows skal en knap ligne en knap, et kryds i højre hjørne skal lukke vinduet og hvis noget ligner en drop-down menu skal det også opføre sig som en drop-down menu. I Unix bør alle programmer der arbejder med filer ideelt opfatte -r eller -R parametren som rekursion. Et inkonsistent program er ofte kryptisk eller pænt, uden at være begyndervenligt eller effektivt.

Er der en mening med galskaben?

Min mening med dette essay er hovedsageligt at åbne udvikleres øjne for at brugervenlighed ikke er lig med begyndervenlighed, hvilket det ofte sættes lig med. Hvis jeg skal bruge dit program over en længere tidsperiode vil jeg så absolut foretrække at det er "ekspertvenligt," frem for begyndervenligt. De erfarne brugere overses ofte når moderne interfaces designes, og deres kompetence betyder ikke at de sagtens kan arbejde rundt om et ineffektivt interface, det betyder at deres evner bliver hæmmet og at de i sidste ende ikke vil bryde sig om dit program.

Men jeg er naturligvis ikke den eneste med en mening, hvad mener I?

[Redigeret d. 21/10-04 21:21:48 af Troels Henriksen]



Jeg er sådan set ikke uenig, vil blot sige at de bedste brugerflader er dem der er fleksible.
Som er lette at starte med og som man kan lære at bruge effiktivt.
Der er nogen der er af den opfattelse at de to ting er modstridende; at hvis et program er let at lære bruge kan det ikke være effiktivt, det er ikke tilfældet.

Jeg tror at den almindelige bruger, bruger meget lidt tid på at sætte sig ind i hvad deres programmer kan og hvordan man kommer til at bruge dem mere effiktivt.

Hvor mange har f.ex. ændret på genveje eller toolbars i Word, selv efter mange dage brug?

Den gennemsnitlige programmør bruger 10 min på at sætte sig ind i hvordan deres editor virker, og derpå meget tid på at lave ting på besværlige måder og bande over deres tåbelige editor.

Just my to cent...



t