Joel on Software

Joel on Software Joel ukol sa Software

 

User Interface Design para sa mga Programmers
Chapter1
Chapter2
Chapter3
Chapter4
Chapter5
Chapter6
Chapter7
Chapter8
Chapter9

Ibang artikulong "Joel On Software" na nasa Filipino

Ibang artikulong "Joel On Software" na nasa Ingles

Iemail ang may akda (sa Ingles lamang)

 

User Interface Design para sa mga Programmers
Chapter1: Masaya ka kapag ikaw ang may kontrol sa iyong kapaligiran


Ni Joel Spolsky
Ruben Canlas Jr.
10. 4. 2000

Karamihan sa mga kilala kong hard core na programmer ng C++ ay sukang-suka sa user interface programming. Gulat ako rito dahil para sa akin, ang user interface programming ay madali, lantaran, at nakakaaliw.

Madali ito dahil hindi mahirap ang mga algoritmong kailangan. Lantaran siya dahil kapag ikaw ay nagkamali, lantad kaagad ito at agad mong maiwawasto. Aliw siya dahil makikita mo agad ang resulta ng iyong gawain. Gaya ng eskultor, agad mong nasasalat ang hubog ng iyong program.

Sa tingin ko, ang tákot sa UI programming ay nagmumula sa tákot sa UI design. Sa wari ng programmer, ang UI design ay parang graphics design: isang mahiwagang proseso ng paglikha na nangangailangan ng “artist” na panay itim ang suot at nakahikaw ang ilong at dila upang lumikha ng “cool” na gawaing sining. Eh ang mga programmer dapat ay analitiko at lohikal: malakas sa pangangatwiran lohikal pero mahina sa paghusga ng sining.

Ang totoo niyan, madaling intindihin at gawin ang UI design. Wala itong hiwaga na nangangailangan pa ng degree sa fine arts at buhok na kulay-ube. Ang mga user interface ay ginagabayan din ng mga alituntunin, mga alituntuning lohikal at magagamit kahit saan upang lalo pang gawing mainam ang mga interfaces ng program na iyong ginagawa.

Hindi ko ibibigay dito ang “Zen and the Art of UI Design”. Hindi kasi siya sining, hindi Budismo, bagkus isa siyang lupon ng mga alituntunin. Isang paraan ng pag-iisip na makatwiran at maayos. Ang aklat na ito ay para sa programmer. Inaasahan kong di mo na kailangan ng instruksyon kung paano gumawa ng menu bar. Sa halip, kailangan mong pag-isipan kung ano ang ilalagay mo sa menu bar, o kung kailangan mo ba talaga nito.

 

May isang pangunahing alituntunin na magiging gabay sa lahat ng magandang disenyo ng UI at madali lang itong unawain. Bago ito, kailangan muna ng isang kwento.

 

Ang una kong tunay na trabaho ay sa isang malaking industrial bakery. Ang panaderyang ito ay dinisenyo na may anim na may anim na hanay – o production line -- ng tinapay. Sa bawat dalawang production line, may isang dough mixer na kayang gumawa ng 180 kg na dough o masa. Ang masang ito ay maaring ilagak sa kaliwa o kanan ng mixer:

 

Well, yun ang nasa disenyo. Ang totoo niyan, wala pang Mixer C noon, at wala pa yung hanay sa 3 at 5. So ang totoong ayos ay ganito:

 

Kung matalas kang magbasa, ang nasa isip mo ngayon ay “Teka, paano nakarating ang masa mula Mixer B patungong hanay 6?” Well, yun ang trabaho ng pobreng si Joel. Ang trabaho ko, maniwala ka’t hindi, ay tumayo sa kaliwa ng Mixer B at saluhin ang higanteng 180 kg na masa paglipad nito mula sa mixer. Sinasalo ko ito sa pamamagitan ng isang kartilyang singlaki ng bathtub at itutulak ang lahat ng ito patungong hanay 6 kung saan isasalin ang masa sa tulong ng isang kadena at winch. Kinailangang gawin ko ito isang beses sa bawat sampung minuto, mula alas-diyes ng gabi hanggang alas-kuwatro ng madaling araw.

Hindi lang iyon ang kumplikasyon. Bago mailipat sa hanay 6 ang 180 kg na masa, kinailangan ko muna itong hiwain sa sampung piraso, gamit ang isang higanteng kutsilyo. Ito’y dahil hindi kayang dalhin ng hanay 6 ang buong 180 kg na masa. ‘Di ko na ikukwento kung gaano kahirap ang dyaskeng gawain na iyon.

Sa mga unang araw, siyempre, todo-palpak ako sa trabaho. Mistulang imposibleng gawin. Masakit lahat ng buto sa aking katawan at ang mga lapnos ko ay nagka-lapnos. Ang katawan ko’y nanakit sa mga sulok na di ko inakalang may sulok.

Nung una’y di ko talaga madalhan ng sapat na masa ang hanay 6. Ang masama nito, bawat pagkakataon na may kulang sa hanay ng masa, nagkakaroon ng gap, o puwang sa assembly line. At kapag may puwang na umaabot sa oven o hurno, lalong itong umiinit. Ang resulta, nasusunog ang mga tinapay.

 

Minsan naman, tumitigil ang hanay 6 sa pagtakbo habang  patuloy naman ang mixer sa paggawa ng masa. Sa ganitong pagkakataon, nauubusan naman ako ng kartilyang paglalagyan ng masa. Pag ganon, kailangan ko namang linisin at langisan ang sahig upang doon muna ilagak ang masa. Ang problema naman dito ay di kailangang tumagal dito ng 30 minutos ang masa dahil ito ay magfe-ferment. Kapag nangyari na nga ito, kinakailangang paghiwa-hiwayin ang masa ng tig-5 kg at ibalik ang mga piraso sa mixer para sa mga susunod na batch.

Matapos ang humigit-kumulang isang linggo, kuha ko na ang teknik. Sa galing ng aking style, nagawa ko pang magpahinga ng mga 2 minuto sa bawat 10 minutong paglabas ng masa mula sa mixer. Nakagawa ako ng matinong schedule at natutunan kung paano patitigilin ng isang batch ang mixer tuwing tumitigil ang production line.

At dito ako nagsimulang mag-isip kung bakit, sabi nga sa patalastas ng beer, may mga araw lang talagang mas maganda kaysa iba.

Isang araw, habang minumuni-muni ko ito, napansin kong palpak ang gulong nung isa sa mga kartilyang gamit ko. Kaya pala ayaw nito minsang sumulong at nanlalaban pa kapag tinutulak ko. Tuloy, nabubunggo ito kung saan-saan kapag pinipilit kong itulak. Kakainis.

 

Paminsan-minsan, nagagalos ako sa kadenang ginagamit na pang-angat sa kartilya para isalin ang masa sa production line 6.  Kakainis ulit.

 

Minsan naman, pagtakbo ko patungong mixer upang saluhin ang bagong masa, nadudulas ako ng konti sa langis sa sahig. Hindi naman ako nadadapa, pero kakainis pa rin kahit papano.

Sa ibang beses naman, may mga munti akong pagwawagi. Halimbawa’y natutunan kong orasan nang mabuti ang proseso ng paggawa ng masa. Dahil dito, lagi akong may sariwang masang naisasalang sa mga hanay bago ito maubusan ng masa. Tuloy, laging sariwa at garantisadong masarap ang tinapay na naluluto.

 

Mas mababaw pa ang ibang kong pagkapanalo: may mapapansin akong maliit na piraso ng masa na tumilapon sa dingding kaya kakayurin ko ito at itatapon sa basurahan. AYOS! Kapag naman hinihiwa ko ang masa, may mga pagkakataong ang dali at ang sarap nitong hiwain. Mga munting pagkakataon ng sarap na nangyayari tuwing nagagawa kong kontrolin – gaano man kababaw – ang paligid na aking kinagagalawan.

At ganun na nga ang mga araw ko doon sa panaderya. Isang kumpol ng mumunting kainisan at pagwawagi. Ngunit kahit maliliit, sila’y nagpapatung-patong. Kaya’t kahit mistulang maliliit ang mga kainisan, pag nagsama-sama ay nakaka-apekto na ng mood sa buong araw. Walang paki ang emosyon mo kung gaano man kaliit ang isang pangyayari. Mas nakaka-apekto ang kalidad ng pangyayari.

 

At doon ko unang natutunan na ang mga pinakamaligayang araw ay yung kung saan marami ang mga munting pagwawagi at konti ang kainisan.

 

Lumipas ang mga taon, pagdating ko sa kolehiyo, natutunan ko ang isang mahalagang teorya sa sikolohiya na tinatawag na Learned Helplessness na binuo ni Dr. Martin E.P. Seligman. Mula sa masinsinang pananaliksik, natuklasan na ang depresyon ng mga tao ay maaring magmula sa feeling ng helplessness, o ang pakiramdam na wala kang kontrol sa iyong kapaligiran.

 

Habang lalo mong nakokontrol ang iyong kapaligiran, at kapag ang mga pagsikap mong kontrolin ito ay epektibo, lalo kang sumasaya. Kapag ikaw naman ay banas, galit, at di mapakali, malamang ay may nangyari sa iyo na di mo nakontrol: kahit maliit pa man iyon. Halimbawa nito ay kung may topak ang spacebar sa iyong keyboard. Pag nagmamakinilya ka, nagdidikit-dikit ang mga salita. Naiinis ka rito dahil bagaman tinitipa mo ang spacebar wala namang nangyayari.

 

Isa pang halimbawa ay kapag tinotopak din ang susi sa pintuan ng bahay. Kapag ginagamit mo, ayaw umikot. Kakainis. Nagpapatung-patong ang mga ito; at ito ang mga bagay na nagbibigay ng lungkot sa bawa’t araw. Kahit pa napakababaw nilang mga rason (sus ginoo -- may mga taong namamatay sa Africa dahil sa gutom tapos nagdadabog ako dahil sa spacebar?!). Gayun pa man, nababago nila ang ating mood.

 

Tigil tayo ng isang minuto at balikan ang mga computer. 

 

Mag-imbento tayo ng isang Windows power user na nagngangalang Pete. Kapag pinag-iisipan ang natin ang user interface, nakakatulong na isaalang-alang ang mga imaginary user. Habang nagiging mas realistiko ang imaginary user, lalong tumatalas ang pag-iisip natin kung paano nila gagamitin ang ating produkto.

 

Accountant si Pete sa isang technical publisher, o manlilimbag na teknikal. Anim na taon na niyang ginagamit ang Windows sa opisina at bahay. Masasabing siya’y matalino at teknikal. Kaya niyang mag-install ng software; mahilig magbasa ng PC Magazine, at nakagawa na rin siya ng mga simpleng macros sa Word na ginagamit ng mga sekretarya sa pagpapadala ng mga invoices. Magkaka-cable modem na siya sa bahay. Sa tanang buhay niya ay di pa siya gumagamit ng Macintosh. “Masyado silang mahal,” sasabihin niya sa iyo. “Makakabili ka naman ng 700 Mhz PC na may 128 Meg RAM sa presyong…” OK, Pete. Gets ka na namin.

 

Isang araw, humingi ng tulong sa kanya ang kaibigang si Gena. Ang siste, gamit ni Gena ang isang Macintosh iBook, dahil mahilig siya sa mga translucent na kahon. Upo naman si Pete upang gamitin ang Macintosh, at di naglaon ay banas na ito. “Ayoko sa Mac,” sabi pa niya. Matapos ang lahat, natulungan pa rin niya si Gena, pero pagtayo niya ay bugnutin na siya at di na masaya. “Palpak ang user interface ng Macintosh.”

 

Palpak? Anong ibig niyang sabihin? Alam ng lahat na ang Macintosh ang may pinakamagandang user interface, di ba? Siya ang pinaka-modelo ng ease-of-use, di ba?

 

Hetong pagsuri ko sa kababalaghan.

 

Sa Macintosh, pag gusto mong ilipat ang posisyon ng isang window, i-mouse-click mo lang ang gilid nito at pwede nang ilipat. Para magawa ito sa Windows, title bar ang dapat mong i-mouse-click. Kung gilid ng window ang iyong iki-click, mare-resize mo ito. Nang tinutulungan ni Pete si Gena, sinubukan niyang palakihin ang isang window sa pamamagitan ng pag-drag sa kanang gilid nito. Siyempre pa, gumalaw lang ang buong window at hindi na-resize gaya ng inaasahan – banas!

 

Sa Windows, kapag may lumilitaw na message box, pwede kang mag-Enter o kaya naman mag-spacebar upang mawala ang message box. Sa Mac, di uubra ang spacebar. Kailangan mong i-click talaga ang mouse. Nang naglitawan ang mga message box sa Mac, sinubukan ni Pete na mag-spacebar upang palayasin ang mga ito. Ito nga naman ang nakagawian na niya sa nakalipas na anim na taon. Sa unang spacebar, walang nangyari. At di niya namalayan na hinampas niya ulit ang spacebar dahil akala niya, may problema lang yung spacebar. Ang totoo niyan, walang problema ang spacebar – wala lang pakialam ang Mac! Sa huling pagkakataon, ginamit na lang ni Pete ang mouse. Isa na namang munting kainisan.

 

Marunong ding gumamit ng Alt-F4 si Pete upang magsara ng window. Sa Mac, ang Alt-F4 ay pag-adjust sa volume. Sa isang pagkakataon, gusto ni Pete sanang i-click yung icon ng Internet Explorer sa desktop. Eh medyo natatakpan ito ng ng isa pang window. So nag-Alt-F4 siya upang isara yung window at sinundan pa niya ng double-click dun sa posisyon dapat ng icon. Pero ang nangyari, tumaas ang volume ng computer at hindi sumara yung window. At sa halip na ang double-click ay dumapo sa icon ng Internet Explorer, na-click ni Pete ang Help sa toolbar nung window na gusto sana niyang isara. Agad namang lumitaw ang Help window kaya tuloy ngayon ay dalawa na ang mga window na kailangan niyang isara.

 

Isa na namang munting pagkakainis. Pero, grabe kung magkatung-patong. At sa bandang huli, bugnutin na at galit si Pete. Nang subukan niyang kontrolin ang mga bagay, walang nangyari. Yung spacebar at Alt-F4 ay “palpak” sa kanyang pananaw. Nagmamatigas yung window nang subukan niya itong i-resize. Gagong window yan. Kahit di niya ito namamalayan, yaong pakiramdam na wala siyang kontrol ay nagiging pakiramdam na wala siyang kayang gawin. At ito namang pakiramdam na ito ay nagiging kalungkutan. “Mas OK ang aking computer,” sabi ni Pete. “Inayos ko ito upang sundan ang lahat ng gusto ko. Pero itong mga Mac ay palpak at mahirap gamitin. Pampabanas lang sila. Hindi sana ito palpak kung hindi nagsayang ng oras ang Apple sa Newton.”

 

O siya, Pete. Mas tama ang alam natin diyan.

 

Lumalabas ang ganitong pakiramdam ni Pete kahit pa talaga namang madaling gamitin ang Mac – para sa mga Mac users. Kung tutuusin, arbitraryo naman talaga kung ano ang pipindutin upang isara ang isang window. Marahil nung ginagaya ng mga Microsoft programmers yung Mac interface, naisip siguro nila na mas cool kung idaragdag nila yung pag-resize ng window sa pamamagitan ng pag-drag sa gilid. Tingin naman nung mga gumawa sa MacOS 8.0, cool yung kaya mong ilipat-lipat ang isang window sa pamamagitan ng pag-drag ng gilid.

 

Karamihan sa mga away ukol sa interface ay hindi gagap ang isyu. Mas maganda raw ang Windows dahil maraming paraan upang mag-resize ng window – eh ano ngayon? Di yun ang punto. Ang punto talaga rito ay ito: tinugon ba ng UI ang user sa paraang inaasahan mangyari ng user? Kung hindi, mararamdaman ng user ang helplessness, o ang pakiramdam na walang kontrol sa mga bagay. Ganito ang naramdaman ko nung tinutulak ko yung palpak na kartilya sa panaderya at kung saan-saan ito nabubunggo. Bonk.

 

Mahalaga ang UI dahil naapektuhan nito ang damdamin at mood ng mga users. Kung mali ang UI at pakiramdam ng mga user na wala silang kontrol sa software, talagang di sila matutuwa at pagbibintangan pa ang iyong gawa. Kung matalino ang UI at tumatakbo ang lahat ayon sa gusto o inaasahan ng user, maligaya sila sa paggawa ng kanilang maliliit na gawain. Uy! Nakapag-kopya ako ng CD! Gumana ang lahat! Galing ng software! Wooooooooo!

 

Upang paligayahin ang mga tao, bigyan sila ng kontrol sa kanilang kapaligiran. At upang mangyari ito, kailangang unawaing mabuti ang kanilang ikinikilos. Kapag may ginawa ang user sa interface, dapat tumugon ang interface sa paraan na inaasahan ng user.

 

Kung gayon, heto ang pangunahing alituntunin ng lahat ng user interface design:

 

 

Maganda ang disenyo ng user interface kapag ang takbo o behavior nito ay eksakto sa inaasahan ng user.



 

Sabi nga ni Hillel, pawang mga komentaryo na lamang ang iba pa. Lahat ng iba pang mga alituntunin ng magandang disenyo ng UI ay komentaryo na lamang.



> Chapter2

Ang artikulong ito ay orihinal na lumalabas sa Ingles sa ngalang User Interface Design for Programmers Chapter 1: Controlling Your Environment Makes You Happy  

Si Joel Spolsky ang nagtatag ng Fog Creek Software, isang maliit na kumpanya ng sofware sa New York City. Siya ay nagtapos sa Yale University at nagtrabaho bilang programmer at manager sa Microsoft, Viacom, at Juno.


Ang mga nilalaman ng mga pahinang ito ay kumakatawan sa opinyon ng isang tao.
Ang lahat ng nilalaman ay Copyright ©1999-2005 ni Joel Spolsky. Taglay ang lahat ng karapatan sa pagmamay-ari.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky