昨天在『窮人 HCI 設計入門 』提到了使用 patterns 來設計與分析使用者介面的方法,剛剛在『擠料』的時候,突然想到了好幾年前曾經看過某篇介紹用 GOMS (Goals, Operators, Methods, and Selection rules) 來分析使用者介面設計好壞的 paper。由於年代過於久遠那篇 paper 到底跑去哪裡 Teddy 一時也找不到,只好匆匆到 Wikipedia 上面惡補一下。
先說明一下這四個名詞:
- Goals: 使用者想要達成的目標,例如,一個文書處理器(word 或是小作家)的使用者,想要『列印文件』。『列印文件』這件事就是使用者的 goal。
- Operators: 使用者為了達成某項 goal 所需要執行的(單一最小) action (動作),以『列印文件』而言,使用者所需要的 operator 可能包含了:
- move mouse
- click mouse left button
- release mouse left button
- Methods: 為了達到 goal 所執行的一連串 operators 就稱為一個 method。一個系統同時間可能會提供好幾種不同的 methods 來達成同一個 goal。以列印文件為例,
- Method 1: 用滑鼠透過 tool bar 來列印文件
- 移動滑鼠到 tool bar 上面 Print 這個 icon 上
- 按下滑鼠左鍵
- 放開滑鼠左鍵
- Method 2: 用滑鼠透過 menu 來列印文件
- 移動滑鼠到 file menu
- 按下滑鼠左鍵
- 移動滑鼠到 print item
- 按下滑鼠左鍵
- 放開滑鼠左鍵
- Method 3: 用鍵盤透過 menu 來列印文件
- 按下 alt-f
- 放開 alt-f
- 按下 p
- Selection rules: 如果同時存在一種以上的 method 都可以達成相同的 goal,則我們透過 selection rule 來描述在何種情況下應該選用哪種 method 會比較合適。
***
再舉個例子,看一下 Teddy 家裡 Firefox 所顯示的『印列對話盒』:從這個畫面可以看出來 Teddy 有三個印表機設定(實際上有兩台印表機),由於『印列對話盒』會記住 Teddy 的預設印表機,因此當 Teddy 要透過這個畫面列印文件的時候,只需要:
method 1:
- 移動滑鼠到『列印』按鈕上
- 按下滑鼠左鍵
- 放開滑鼠左鍵
- 按下 alt + p
- 放開 alt + p
method 1:
- 移動滑鼠到預設印表機上
- 按下滑鼠左鍵
- 放開滑鼠左鍵
- 移動滑鼠到『列印』按鈕上
- 按下滑鼠左鍵
- 放開滑鼠左鍵
或是 method 2:
- 按下 tab 讓 focus 移到選擇印表機的這個 UI 元件
- 放開 tab
- 按下『方向鍵』(向上或向下) 移到所要選擇的印表機上
- 放開『方向鍵』
- 按下 alt + p
- 放開 alt + p
***
路人甲:一定要玩到這麼『龜』嗎!連一次滑鼠移動或是按一個按鍵都要計較。
沒錯,就是要『斤斤計較』。通常 developers 可能只有在開發軟體的時候會使用自己所開發的軟體,在那之後就很少會用到。但是,你的客戶很可能是每天都要用好幾個小時以上。就算是使用者為了達到某個 goal (例如,新增一筆客戶資料)只增加三次不必要的 operators(例如,移動滑鼠,按下滑鼠右鍵,放開滑鼠右鍵),萬一這個使用者一天要新增 100 筆客戶資料,那他就活該倒楣要多操作 3 * 100 = 300 operators。
這還只是為了完成一個 goal 而已,一整天下來如果要完成 N 個 goals,這個倒楣的使用者不腰酸背痛才有有鬼。長久下來,不到 35 歲就需要去看復健科門診了。
很多使用者介面,雖然好像只是『沒有把 cursor 移到預設的位置』,『沒有設定正確的 tab order』,『沒有 focus 在正確的 UI 元件上』這種小事,對於經常使用該軟體的使用者而言卻是大事。Teddy 還記得第一次跟 Kay 借用 iPhone 來玩,那種『增一分太肥,少一分太廋(恰到好處)』的感覺,不禁發出『為什麼人家的使用者介面可以設計的那麼好用』的感嘆。相較起使用
***
程式寫得再美,使用者不會去幫你做 code review,看不到你的『內在美』,所以還是賣不出去。介面設計的好,使用者用起來很爽,就有賣點了。也許這樣講不盡公平,你會說介面設計的好但是玩兩分鐘就當機了啊。但是,至少你的客戶願意花兩分鐘來玩。介面設計的爛,客戶可能只願意花『一眼』,連動手都省了。
***
友藏內心獨白:Programmers 除了寫程式以外還是要懂一些 HCI 設計方法,『小扁鑽』還是有需要滴,捅人自捅兩相宜。
同感....我就是一天加100筆資料的人
回覆刪除話說前陣子 "神魔之塔" 更新了版本, 進入背包後多了一個切換 "卡片種類" 的選擇動作... (後略).
回覆刪除當時心中浮現的就是 "開發者可能只會用幾次, 但實際使用者卻會每天用數十至數百次; 而這多出來的動作, 加總起來就很可觀了...", 以及 "站在使用者的角度來設計, 真的很重要."
好的設計, 不太容易讓人有感; 只有當不好的設計出現時, 好的設計才會被突顯出來呀.