Joel on Software

Joel on Software Joel tarkvarast

 

Kasutajaliidese disain programmeerijatele
1. peatükk
2. peatükk
3. peatükk
4. peatükk
5. peatükk
6. peatükk
7. peatükk
8. peatükk
9. peatükk

Veel "Joel on Software" artikleid eesti keeles

Veel "Joel on Software" artikleid inglise keeles

Kirjuta autorile (ainult inglise keeles)

 

Kasutajaliidese disain programmeerijatele
5. peatükk: Kooskõla ja muud tondid


Joel Spolsky
Tõlkinud Paavo Helde
Toimetanud Anti Veeranna
22. aprill 2000

Microsoft Office'i paketi peamised programmid Word ja Excel on algusest lõpuni Microsofti poolt välja töötatud, kuid osa programme on ostnud teistelt firmadelt, näiteks FrontPage'i (ostetud Vermeer'ilt) ja Visio (ostetud Visio'lt). Mis neil kahel programmil ühist on? Mõlemad olid algselt projekteeritud väliselt sarnanema Microsoft Office rakendustega.

Otsust matkida Office'i kasutajaliidest ei tehtud lihtsalt Microsofti jäljendamiseks või oma firma müügiks ettevalmistamiseks; kui nüüd aus olla, siis FrontPage'i arendaja Charles Ferguson ei kõhkle hetkegi oma Microsofti-antipaatia väljendamisel; ta on korduvalt anunud Justiitsministeeriumi, et see midagi Redmondi koletise vastu ette võtaks (kuni ta lõpuks neile oma firma maha müüs, muutes sellega oma positsiooni tunduvalt keerulisemaks). Tundub et Vermeer ja Visio kopeerisid Office'i kasutajaliidest peamiselt seetõttu, et see on mugav ja otstarbekas; kopeerimine oli lihtsam ja kiirem kui jalgratta leiutamine.

Kui Mike Mathieu, ühe Microsofti programmeerimisrühma juht, oli FrontPage'i Vermeer'i veebilehelt alla laadinud ning seda katsetama asus, töötas see suures osas täpselt nii nagu Word. Et programm töötas nii nagu ta ootas seda töötavat, oli tal seda kerge kasutada. See kasutamishõlpsus jättis talle programmist esimesest silmapilgust soodsa mulje.

Ja kui Microsoftil tekib mingist programmist esimesest silmapilgust soodne mulje, siis laob ta selle eest letile umbes 150 miljonit dollarit. Sinu eesmärgid on arvatavasti tagasihoidlikumad; sa tahad, et sinu klientidele jääks soodne mulje ja et nad käiksid välja võib-olla 39 dollarit. Aga põhimõte jääb samaks: kooskõla viib kasutamishõlpsusele, see omakorda tekitab positiivseid emotsioone ning tähendab sinu jaoks lõppkokkuvõttes rohkem raha.

Kooskõla olulisust uute programmide kasutama õppimisel ei tohi alahinnata. Enne graafiliste kasutajaliideste laiemat levikut leiutas iga programm ise kasutajaliidese põhitõdesid. Isegi selline lihtne operatsioon nagu "exit", mis lihtsalt pidi igal programmil olemas olema, oli täiesti mitteühilduv. Noil päevil nägid inimesed vaeva, et meelde jätta vähemalt väljumiskäsud üldkasutatavatest programmidest, et selle asemel arusaadavam programm käivitada. Emacsi fanaatikud panid kõrva taha ":q!" (ja ei midagi enamat) juhuks, kui peaksid end kogemata vi'st leidma, samal ajal kui vi kasutajad jätsid meelde "C-x C-c" (Emacsil on isegi oma spetsiaalne viis kontrollmärkide esitamiseks). DOS-i maailmas ei olnud WordPerfect'i kasutamine võimalik, kui polnud käepärast kipakat plastikust klaviatuurispikrit Alt+Ctrl+F3 tähenduse meelde tuletamiseks. Mina jätsin endale meelde F7, et sealt võimalikult kiiresti välja saada.

Lisaks sellele võivad hulluks ajada ka sellised pisiasjad nagu vaikimisi kirjutusrežiim (üle- või vahelekirjutus). Olen Windowsi programmides niivõrd harjunud sellega, et Ctrl+Z tähendab viimase muudatuse tagasivõtmist, et kasutades Emacs'it minimeerin eksikombel pidevalt akent (Ctrl+Z). (Naljakas on asja juures see, et põhjus, miks Emacs interpreteerib Ctrl+Z'i minimeerimisena, on taotlus ühilduda judinaid tekitava kasutajaliidese csh -ga, UNIX-i C shelliga.) See on üks väikestest frustratsioonidest, mis lisab üldisele masendustundele.

Veel üks pisike näide: nii Pico kui Emacs kasutavad Ctrl+K'd ridade kustutamiseks, kuid käituvad seejuures veidi erinevalt. Tulemuseks on tavaliselt see, et Picot kasutades rikun ma oma dokumendi ära. Ilmselt võiksid ka omalt poolt tuua tosin sarnast näidet.

Macintoshi algusaegadel, enne Microsoft Windowsi ilmumist, rääkisid Apple'i propageerijad igaühele, et keskmine Maci kasutaja kasutab rohkem erinevaid programme, kui keskmine DOS-i kasutaja. Ma ei mäleta täpseid arve, kuid kui ma ei eksi, siis keskmise DOS-i kasutaja kohta tuli 1-2 programmi ning umbes 12 keskmise Maci kasutaja kohta. Põhjus oli selles, et Macil oli väga lihtne uusi programme õppida, nad kõik töötasid üldjoontes ühtemoodi.

Ühilduvus on hea UI disaini põhiprintsiip, kuigi tegelikult on see vaid edasiarendus teesist "vii programmimudel kasutajamudeliga vastavusse", sest tõenäoliselt peegeldab kasutajamudel ka teiste programmide käitumist. Kui kasutaja on kord juba ära õppinud, et topeltklõps sõnal tähendab selle valimist, siis nähes programmi, millega ta pole varem kokku puutunud, eeldab ta, et ka selles saab sõnu valida topeltklõpsu abil. Ja parem oleks, et see programm laseks sõnu topeltklõpsuga valida (selle asemel, et sõna tähendust näiteks leksikonist otsida), sest muidu tekivad kasutajal probleemid.

Kui ühilduvus on nii ilmselt kasulik, siis miks ma raiskan sinu ja enda aega sellest jutlustamisele? Kahjuks on olemas tume jõud, mis võitleb ühildumise vastu - see on disanerite ja programmeerijate loomulik püüdlus loomingulisusele.

Mulle küll ei meeldi sulle öelda "ära ole loominguline," kuid õnnetul kombel tuleb sul kasutajaliidese kergesti kasutatavaks tegemiseks oma loomingulisus mingisse teise valdkonda suunata. Enamiku UI lahenduste puhul sa lihtsalt pead enne ise nullist alustamist tutvuma sellega, kuidas teised populaarsed programmid käituvad ning neid siis võimalikult lähedaselt matkima. Kui projekteerida dokumenditöötlusprogrammi, siis ürita see Microsoft Wordiga võimalikult sarnaseks teha, kuni kiirklahvikombinatsioonideni välja. Ühed kasutajad on harjunud salvestama, vajutades Ctrl+S, teised Alt+F, S ja kolmandad Alt, F, S (vabastades vahepeal Alt klahvi). Teine rühm kasutajaid otsib flopikujutisega ikooni akna vasakus ülemises piirkonnas ning klõpsab seda. Kõik neli meetodit peaksid töötama või sinu kasutajad saavad endale midagi, mida nad ei taha.

Olen näinud firmasid, mille juhtkond on uhke selle üle, et nad teevad asju tahtlikult Microsoftist erinevalt. Nad deklareerivad "See, et Microsoft nii teeb, ei tähenda, et see oleks õige," ning jätkavad vabatahtlikult kõigist seninähtutest erineva kasutajaliidese loomist. Enne kui sina alustad selle mantra kordamist "see, et Microsoft nii teeb, ei tähenda, et see oleks õige," mõtle palun kahe asja üle järele:

  1. Isegi siis, kui see pole õige, aga Microsoft teeb seda populaarsetes programmides nagu Word, Excel, Windows või Internet Explorer, kalduvad miljonid inimesed uskuma, et see on õige või vähemalt küllalt standardne ning nad eeldavad, et sinu programm töötab samal moel. Isegi kui sa oled seisukohal (ja Netscape 6.0 programmeerijad ilmselt on), et Alt+Left ei ole hea kiirklahv "Tagasi" funktsiooni jaoks, leidub siiski sõna otseses mõttes miljoneid inimesi, kes üritavad kasutada Alt+Left klahvikombinatsiooni tagasi minekuks, ning kui sina keeldud seda implementeerimast religioosse veendumuse tõttu, et Bill Gates on smurfide kuri karistusingel Gargamel, siis sa lihtsalt hävitad vabatahtlikult oma programmi, lihtsalt selle nimel et saaksid end tunda hästi ja olla enesega rahul - sinu kasutajad ei hakka sind selle eest tänama.
  2. Ja ära ole nii kindel, et just sinul on õigus. Microsoft kulutab kasutushõlpsuse testide peale rohkem raha kui sina, neil on olemas miljonite tehnilise abi kõnede järgi koostatud detailne statistika, ning on vägagi tõenäoline, et nad tegid midagi niimoodi sellepärast, et sel moel suudavad rohkemad inimesed taibata, kuidas asja kasutada.
Hea programmi ja mugava kasutajaliidese loomiseks tuleb sul oma religioossed uskumused ukse taha jätta. Microsoft ei ole ainus firma, keda kopeerida; Internetiraamatukauplust projekteerides hoolitse selle eest, et sinu veebileht käituks vähemalt semantiliselt sarnaselt Amazoniga. Amazon hoiab "ostukäru" sisu alles 90 päeva. Sa võid pidada end supertargaks ja tühjendada käru 24 tunni pärast. Aga kui sa seda teed, siis leidub kindlasti Amazoniga harjunud kasutajaid, kes koguvad asju oma ostukärusse ning kahe nädala pärast naastes eeldavad, et need on ikka veel alles. Kui see aga nii ei ole, siis oledki kliendi kaotanud.

Kui sa projekteerid fototöötlusprogrammi professionaalidele, siis võin ma garanteerida, et 90% sinu kasutajatest on Adobe Photoshopiga harjunud, ja sinu programm parem käitugu võimalikult Photoshopi sarnaselt neis osades, milles teie programmide funktsionaalsus kattub. Kui ta seda ei tee, siis ütlevad inimesed, et sinu programmi on raske kasutada, isegi siis, kui sa ise arvad, et seda on Photoshop'ist lihtsam kasutada. Sinu programm lihtsalt ei käitu sel moel, nagu nemad ootavad.

Populaarseks on muutunud ka Windowsiga kaasas olevate standardsete juhtelementide uuesti leiutamine. Netscape 6-t ma siinkohal parem ei mainigi. Kunagi võis Borlandi C++-kompilaatoriga tehtud programme ära tunda selle järgi, et need kasutasid  suuri rasvase kirjaga OK nuppe hiiglaslike roheliste linnukestega. Iseenesest polnud see üldse nii halb, kui Kai Photo Soap:

Kena, see on hämmastavalt ilus, aga läbikriipsutatud O (mis tegelikult tähendab "ei"), tuletab mulle meelde "OK-d," Windowsi standardi kohaselt on OK vasakul, nii et ma klikin alalõpmata vale nuppu  ning lõpuks vihastan. Nendest naljakatest märkidest pole muud tolku, kui näidata igaühele, kui loov sa oled. Kui peaks juhtuma, et inimesed teevad vigu Kai loovuse pärast, siis on see lihtsalt hind, mida tuleb maksta kunstniku juures viibimise eest. (Selle "dialoogi" teine probleem seisneb selles, et tal puudub standardne tiitelriba, mille abil akent liigutada saab. Nii et kui dialoogiaken varjab midagi olulist, mille nägemine aitaks sul vastata dialoogi poolt esitatud küsimusele, siis sul lihtsalt ei vea.)

Šiki ning laheda väljanägemisega kasutajaliidese abil võib palju saavutada. Kai taoline hea graafiline disain meeldib inimestele ning ahvatleb neid programmi kasutama. Nõks on aga selle tegemises ilma seejuures reegleid rikkumata. Võib muuta dialoogide visuaalset välimust, aga mitte funktsionaalsust.

Juno esimesel versioonil oli standardne autoriseerimisdialoog, mis küsis kasutajalt nime ja parooli. Pärast nime sisestamist eeldati, et parooliväljale minekuks vajutad sa TAB klahvi.

See häiris üht Juno programmeerimismänedžeri, kes oli UNIXis rohkem kodus, kui Windowsis, mistõttu ta oli harjunud pärast nime sisestamist vajutama ENTER-klahvi TAB-i asemel. Aga tehes tavalistele Windowsi kasutajatele mõeldud programmi, ei ole UNIXi programmeerija ehk parim tüüpilise kasutaja näide. Too mänedžer nõudis väga järjekindlalt, et ENTER-klahv peab liikuma järgmisele väljale Windowsi standardse "OK"-värgi asemel. "See, et Microsoft nii teeb, ei tähenda veel, et see oleks õige," nähvas ta.

Niisiis kulutasid programmeerijad märkimisväärsel hulgal aega hämmastavalt komplitseeritud juhtkoodi kirjutamisele, et selle dialoogiakna juures Windowsi vaikimisi käitumisest mööda minna. (Mitteühilduvus tähendab peaaegu alati rohkem tööd, kui platvormi standarditele vastav käitumine). See kood muutis haldamise kohutavaks luupainajaks: seda oli raske 16-bitiselt Windowsilt üle 32-sele portida. See ei käitunud nii, nagu inimesed ootasid. Ja rühmaga liituvad uued programmeerijad ei saanud aru, miks on dialoogidel selline veider alamklass.

Kohutavalt palju programmeerijaid on püüdnud üle implementeerida mitmesuguseid standardseid Windowsi juhtelemente, alates nuppudest kuni kerimisribadeni, tööriistaribadeni ja menüüribadeni välja (viimane on Microsoft Office'i meeskonna eelistus üleimplementeerimise osas). Netscape 6.0 läheb isegi nii kaugele, et implementeerib üle kõik standardsed Windowsi juhtelemendid. Tavaliselt toob see endaga kaasa ettenägematuid kõrvalefekte. Parim näide on tekstikast (edit box). Kui implementeerid ise tekstikasti, siis väga paljud utiliidid, mille olemasolust sa isegi ei tea (näiteks hiina keele redigeerimise vahendid ja paremalt vasakule kirjutamist toetavad Windowsi versioonid), lakkavad töötamast, sest ei tunne ära sinu mittestandardset tekstikasti. Mõned Netscape 6.0 eelväljalaske kommenteerijad märkisid, et kuna URL-i kast kasutab mittestandardset Netscape'i tekstikasti, et tööta selles tavaliste tekstikastide võimalused, nagu näiteks parema kliki abil kohtmenüü kuvamine.

Kui leiad end vaidlemas ühilduvuse üle anti-Microsofti fundamentalistiga või loomingulise disaineriga, siis on nad varmad vigaselt Emersoni tsiteerima: "Kooskõla on väikeste arude tont". Tegelik tsitaat on "Mõttetu kooskõla on väikeste arude tont." Head UI disainerid kasutavad kooskõla arukalt ja kuigi nad seejuures ei ilmuta eriti oma loovust, teeb see pikemas perspektiivis kasutajad õnnelikumaks.



> 6. peatükk

Artikli algupärane nimi inglise keeles on User Interface Design for Programmers Chapter 5: Consistency and Other Hobgoblins  

Joel Spolsky on Fog Creek Software asutaja. See on väike tarkvarakompanii New York Citys. Ta on lõpetanud Yale'i ülikooli ja töötanud programmeerija ning juhina Microsoftis, Viacomis ja Junos.


Need leheküljed esitavad üksikisiku seisukohti.
Kogu sisu Copyright ©1999-2005 Joel Spolsky. Kõik õigused reserveeritud.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky