五月 10, 2016
» 前進舊金山

三月 13, 2014
» 蹲下是為了跳得更高

十月 29, 2011
» 影響力

三月 2, 2011
» 做研究與寫論文

五月 21, 2009
» [HCI] 談人機介面設計與Usability

前言

在MIT不知不覺已經過完第一年了,雖說我的研究領域主要在人機互動(Human-Computer Interaction, HCI)上,但一直很少寫關於HCI的文章。說實在HCI的資訊和課程在台灣非常稀少,大多數人對於HCI的了解和想像也停留在電影裡才會看到的那種很fancy的操作介面,或是multi-touch之類的新興操作模式。但除了這些很炫的東西外,其實有更多會直接影響到我們目前正在使用的人機介面的基礎研究和理論存在。

以操作介面(user interface)的設計來說,這是在軟體開發流程中最容易被忽略的一環。一般公司和軟體工程師把寫UI視為一種苦工,於是常隨便抓個菜鳥去用VB之類的快速開發工具把元件拉一拉就結束了。但不幸的是使用者開始用軟體時,第一眼接觸到的就是UI,如果UI設計的不好,使用者容易感到挫折,甚至嘗試一兩次後就把軟體給丟了。於是,不管裡面有多巧妙多厲害的功能都沒用。因為使用者根本就沒辦法看到軟體裡面花了多少心血,使用者只能透過最外層的介面來感受到軟體的內涵。所以說,介面如果做爛了,底下的功夫不就只能包在裡面白白浪費了嗎?

最近幾年因為Apple的iPod、iPhone開始走紅,越來越多人注意到好的介面設計帶給使用者的影響是非常巨大的,甚至也對於產品的銷路有決定性的影響。很多人能感覺到Apple設計的介面比較好看而且也比較好用,但其實說不出來為什麼,所以工程師也很難複製Apple所創造出來的使用者體驗(user experience)。

圖形介面(Graphical User Interface, GUI)的快速開發工具將軟體介面設計的難度大大降低到像用小畫家畫畫一樣的程度,所有的標準GUI元件都是手到擒來,滑鼠一拉就能擺到任何想擺的位置。這項工作看似簡單,但要做得好其實並不容易。每個元件的長相、顏色、位置、大小、相對關係,甚至要選用什麼元件來呈現資訊,背後都有一套學問在。許多人誤解介面只要好看就好,但其實好看的介面不見得好用(常常還比較難用)。「好看」這件事目前還有很多藝術成份在裡面,但「好用」這件事其實已經有很多HCI研究發展出的理論能告訴我們怎樣設計會比較「好用」。

這個領域可以談的東西實在太多了,所以我打算慢慢把HCI中比較重要且有趣的概念分享出來,希望在台灣設計UI的公司和工程師們能做出更簡單易用的產品出來。(這不只是軟體而已,其實所有的人造產品都需要設計「介面」!不管是你家的冰箱還是門把都一樣有好不好用的問題。)

Usability – 易用性

這篇文章我打算從設計UI最核心的概念Usability開始,之後再慢慢另闢新文詳細介紹各個部份。
Usability的定義是人可以用某樣工具達到一個特定目標的容易程度。目前常用的中文翻譯有可用性和優使性兩種,前者給人的感覺像只有描述可用或不可用兩種狀態,後者則看不太出是什麼意思。我覺得比較好的翻譯是「易用性」,但我還是比較喜歡用原文稱呼就是。

Usability包含了下面五項要素:

  • Learnability: 使用者在第一次用就能學會的容易程度
  • Memorability: 經過一段時間之後再重新使用這UI還能熟練操作的容易程度
  • Efficiency: 使用者能用這個UI多快完成任務
  • Errors: 包括使用者有多容易出錯、錯誤有多嚴重、以及有多容易從錯誤中回復回來
  • Satisfaction: 使用者用這個UI時會覺得愉快的程度

Learnability指的是使用者在第一次用就能學會的容易程度。(沒通用的中文翻譯,或許可以叫「易學性」。)如果一個UI的learnability越好,使用者就越能輕鬆的學會如何使用它。相反地,如果learnability很差,使用者就容易搞不清楚到底要怎麼用。如果一個UI或產品的目標對象是一般大眾,包括幼稚園的小朋友到老阿媽,learnability通常是決定這個產品被接受程度的關鍵。至於要怎麼設計具有優良learnability的UI也不容易,目前大多是靠一些基本原則和低成本的測試方法來反覆設計,這部份以後再另闢專文介紹。

Memorability指的是經過一段時間之後再重新使用這UI還能熟練操作的容易程度。(中文姑且可以叫「藝妓易記性」吧。)memorability和learnability常有密切關聯,如果learnability夠好,其實就沒有memorability的問題了,因為每次都重頭學起也是很容易。但稍微複雜的介面都不是很好學,所以要怎麼在使用者第一次學會以後讓他們不容易忘記就是memorability關注的事了。

Efficiency指的則是使用者能用這個UI多快完成任務。(efficiency就是效率。終於不用想新翻譯了…(汗)) efficiency是五項usability要素中最容易定義和測量的,但這並不代表要設計有效率的UI就是很簡單的事。舉個簡單的例子,下面的圖分別是Windows XP和Windows 98的開始紐,雖然看起來只是一個按鈕,但這個紐在efficiency上有著極大的差異,有興趣的人不妨自己先想想看再往下看說明。

winxp-start

win95-start

好,這兩個開始紐的差別在哪呢?

說起來很好笑,其實關鍵的差異只有1個pixel的差別:Windows 98的開始紐最外圈的1個pixel是不能按的。也就是說,如果你把滑鼠移到最左下角想按開始,你會發現按下去什麼事都不會發生;你得把滑鼠往右上移回1 pixel以上(而且還不能超過按鈕的大小!),才能按到那個紐。(這問題在Windows 2000前都有,一直到XP才被解決。) 這個設計其實造成兩個問題,第一是使用者不能快速把滑鼠甩往左下角,而必須「瞄準」開始紐再移動,這兩種動作的時間差距大約是log(移動距離/按鈕大小)。(這是透過Fitt’s Law計算出來的。Fitt’s Law是HCI領域中很重要的一個定律,之後我會再另闢新文介紹。)第二,這1個pixel會讓直接移到最左下角的使用者得到一個沒有任何feedback的error(期望的事情沒有發生),使用者很容易會搞不清楚怎麼回事而產生挫折感。所以說,別小看設計中的小地方,即使是1個pixel,也可能造成很大的影響。

再來是usability的第四個要素,errors(錯誤)。errors的範圍比較廣,包含使用者有多容易出錯、這些錯有多嚴重、以及有多容易從錯誤中回復回來。usability的要素常常是緊密相連的,以上面那個Windows開始紐的例子來說,那1個pixel也會造成error,但其實並不算嚴重,而且也容易恢復。比較嚴重的error像是程式結束時沒問使用者要不要存檔就直接結束,可能會讓人損失重要的資料。

最後是第五個要素satisfaction(滿意度),它指的是使用者用這個UI時會覺得愉快的程度。一般的UI通常不會太注意satisfaction,只要讓使用者用起來不會想罵髒話就好。但以軟體來說,遊戲的UI設計是特別需要考量satisfaction的,因為玩遊戲重要的就是要開心,如果達不到這目的其他都是枉然。

Usability的五項要素是評估一個介面好不好用的基礎指標。下回設計介面時,不妨先逐一檢查每一項要素,看看其中是不是有些會影響到usability的問題存在。

biggo.com.tw

A Django site.