使用介面設計手冊第五章 User Interface Design for Programmers Chapter 5: Consistency and Other Hobgoblins

作者:周思博 (Joel Spolsky)
譯:Paul May 梅普華
Saturday, April 22, 2000
屬於 Joel on Software, https://www.joelonsoftware.com/2000/04/22/consistency-and-other-hobgoblins/

Microsoft Office 中的主要軟體 Word 和 Excel,都是在微軟內部從無到有開發出來的,而其他軟體則是從外界公司買進來的,特別是 FrontPage(向 Vermeer 買的)和 Visio(向 Visio 買的)。那這兩個程式有什麼共通點呢?答案是他們在原始設計上就是要像 Microsoft Office 的應用程式。

決定要模擬 Office 的使用介面,並不只是要「討好」微軟或是打算把公司賣出去那麼單純;事實上開發 FrontPage 的 Charles Ferguson 絕不會猶豫承認他對微軟的厭惡;他一再地請求司法部對 Redmond 巨獸做些處置(直到他把公司賣給微軟,之後他的立場變得複雜多了)。事實上 Vermeer 和 Visio 抄襲 Office 的使用介面,主要原因似乎是為了方便:照抄比起重新發明輪子更容易更快速。

微軟的事業群程式經理 Mike Mathieu 從 Vermeer 的網站下載 FrontPage 試用,發現這個程式和 Word 非常像。由於程式與他所期望的動作非常像,所以使用起來更加容易。而這種易用度讓他馬上對這個程式有非常好的印象。

而當某個程式能立刻讓微軟有很好的印象時,他們就會掏出一億五千萬美元。你的目標或許沒那麼大;只是希望客戶喜歡然後掏出大概 39 美元吧。不過想法卻都是一樣的:一致性會產生容易使用的感覺,然後會產生好感覺,最後就能賺更多錢。

一致性對人們學習使用各種軟體的幫助無法低估。在圖形化使用介面出現之前,每個程式都會重新發明一套很基本的使用介面。甚至連「離開」這種每個程式必備的單純操作都完全無法一致。那時候大家至少都會背下常見程式的離開命令,這樣才能跳出原有程式去跑自己要的東西。Emacs 迷會背 ":q!"(只記這個)以防自己卡在 vi 裡出不去,而vi 使用者則是背 "C-x C-c"(Emacs 甚至自有一套控制字元的表示法)。在 DOS 時代,如果鍵盤上不套一個蠢膠片提醒 Alt+Ctrl+F3 怎麼用,根本沒辦法使用 WordPerfect。我只記得可以按 F7 離開。

影響還不只這樣,即使是像預設打字行為(覆蓋或插入)這樣微小的不一致也會讓你受不了。我很習慣按 Ctrl+Z,這在 Windows 程式裡是表示「還原」。可是在用Emacs 時就常常會不小心按到而把視窗最小化(也是按 Ctrl+Z)。(有趣的是 Emacs 用Ctrl+Z當最小化的原因正是為了與爛使用介面 csh(UNIX 的 C shell)一致)這就是那些加起來讓人不快樂的微細挫折之一。

再舉個更細微的例子,Pico 和 Emacs 都用 Ctrl+K 刪除一行文字,不過兩者的行為有著些許不同。這個小差異卻常常讓我在 Pico 裡的文件亂掉。我敢保證這種經驗你自己也有一堆。

在麥金塔早期 Microsoft Windows 還沒出現的年代,狂熱的 Apple 支持者會對每個人說,一般而言 Mac 使用者比 DOS 用戶能運用更多的程式完成工作。我不記得確實的數字了,不過我相信大概是說一般 DOS 用戶會用一兩個程式,而 Mac 使用者會用 12 個程式。理由是說由於 Mac 的軟體操作的方式都一樣,所以在 Mac 上很容易學會用新程式。

一致性是良好使用介面設計的基本原則,不過它也只是「讓程式模式符合使用者模型」公理的推論結果之一,因為使用者模型可能會反映使用者看到其他程式的行為。如果使用者學到連按兩下表示選取單字,他們拿到從未看過的新程式時,也會猜測選取單字的方法就是連按兩下。所以現在的程式最好在使用者連按兩下時選取單字(而不是做其他動作,比如到字典裡查被點到的字),否則就會有可使用性的問題。

既然一致性的好處如此顯著,為什麼我還要浪費你我的時間去強調呢?問題在於外頭有股黑暗勢力在反對一致性,而且設計者和程式員的天性就是創新。

我很不願意告訴你「不要創新」,問題是要讓使用介面容易使用,就得把創意放在別的地方。在大部份的使用設計案例中,你在從頭設計前絕對要先看看其他熱門程式怎麼做,並且儘可能的模擬它們。如果你在製作某種文件編輯程式,最好能長得和 Microsoft Word 一模一樣,連功能表裡相同項目的快速鍵都照抄。有些使用者可能習慣按 Ctrl+S 存檔,有些人可能習慣用 Alt+F,S,而其他人可能會按 Alt,F,S(先放開Alt鍵)。還會有一類使用者會去程式左上方區域找磁片圖示去按。這四種方法最好都能用,否則使用者就會遇到他們不想要的結果。

我看過有些公司的管理階層很自豪的說,他們故意把東西做得和微軟不同。他們會誇耀說「只是因為微軟這樣做,並不表示這是對的」,然後去建立一套沒有依據,而且與大家習慣不同的使用介面。在你開始高唱「只是因為微軟這樣做,並不表示這是對的」的咒語之前,請先考慮兩件事:

  1. 假設微軟的作法真的不對,可是他們已經在 Word,Excel,Windows,或 Internet Explorer 這些普遍的軟體上這樣做了,所以數百萬人都會認為這是對的(至少也會認為這樣做正常),而且他們會假設你的程式也會這樣做。雖然你可能認為(顯示和 Netscape 6.0 的工程師一樣) Alt+左鍵 不適合作為「上一頁」的快速鍵,可是外頭有好幾百萬人都會試著按 Alt+左鍵 回到上一頁,所以如果你為了某些信仰理由(比爾蓋茨是個很邪惡的大法師)而不這樣做,那麼你只是為了滿足自己的虛榮而毫無理由地毀掉自己的程式,而且使用者也不會因而感謝你的。
  2. 另外就是別那麼確定他們是錯的。微軟在可使用性測試上花的錢比你多,他們還有累積幾百萬通電話支援服務的詳細統計資料,另外也很有可能是因為較多人指出要這樣做,微軟的人才會這樣做。

要製作一個具有好用使用介面的優良程式,你得把自己的信仰留在家裡。微軟可能不是唯一要抄的對象:如果你正在製作一個線上書店,可能也得確定你的網站至少在意思上和 Amazon 一樣。Amazon 會把你的購物車資料保留 90 天。你可能認為自己絕頂聰明,所以 24 小時後就把資料清掉了。當 Amazon 的客戶把資料暫存在你的購物車內,他們會認為過兩星期回來購物車內的資料應該還在。如果你 24 小時後就把資料清掉,就會損失一個顧客了。

如果你正在製作一個針對繪圖專業人士的高階相片編輯器,我確信你的使用者中有 90% 都知道 Adobe Photoshop,所以你最好讓程式在功能重疊部份表現得非常像 Photoshop。如果不這樣做,大家會說你的很難用,雖然你自己覺得它比 Photoshop 容易,這就是因為你的程式的運作與使用者的期望不同。

另外還有一種常見的傾向,就是重新發明 Windows 所附的共用控制元件。Netscape 6 就不用提了。有一陣子你光看外表就知道是某個程式是用 Borland 的 C++ 編譯器寫的,因為上面有巨大的 OK 按鈕和超大型核示框。不過這還沒有 Kai's Photo Soap 那麼糟糕:

Quit_Soap.gif

沒錯,這東西的確是漂亮的很,不過 O 上面跨條線(其實是「不」的意思)會讓我想到 "OK",而 Windows 的標準是把 OK 放在左邊,所以我時常會按錯鈕。這樣用漂亮符號取代 "OK" 及 "Cancel" 只有一個好處,就是誇耀你多有創意。如果人們因為 Kai 的創意而出錯,那沒啥問題,那只是為了突顯某位藝術家所必須付出的代價。(這個「對話框」還有另一個問題,就是沒有標準的標題列,無法把對話框移開。所以如果對話框擋到某些回答所需資訊時就慘了。)

有個酷又漂亮的使用介面好處很多。像 Kai 這樣優良的繪圖設計非常討喜,能吸引人來用你的程式。個中訣竅在於不要違反規則。你可以稍微改變對話框的視覺外觀,不過不要影響功能。

當 Juno 的第一版出來時,有個標準的登入對話框提示你輸入姓名和密碼。當你輸入姓名之後,應該按 TAB 鍵跳到密碼欄輸入密碼

當時 Juno 有個發神經病的程式經理,他用 UNIX 的經驗比用 Windows 多很多,所以他習慣輸入姓名後按 ENTER 鍵(不是 TAB 鍵)跳到密碼欄。當你寫一個針對一般 Windows 使用者的程式時,UNIX 程式員可能並不能代表一般使用者,可是這個經理卻非常堅持按 ENTER 鍵要跳到下一個欄位而不是執行 Windows 標準的「確定」動作。他尖叫著說:「只是因為微軟這樣做,並不表示這是對的。」

所以程式員花了很多很多時間,繞過 Windows 預設行為寫出了非常複雜的對話框處理程式。(要做得與眾不同,幾乎一定會比依照平台規矩去做花更多的工夫)。這段程式成為很大的維護夢魘;我們由 16 位元移到 32 位元視窗時移植得很不順。它沒有照大家的期望運作。而當新的程式員加入團體時,都無法理解為什麼會有這麼奇怪的對話框處理。

還有很多程式員試圖重新製作各種常用的 Windows 控制元件,由按鈕,捲軸,工具列到功能表(Microsoft Office 團隊最喜歡重做的東西)什麼都有。Netscape 6.0 最誇張,它把每個共用的 Windows 控制元件都重做了。這樣通常都會有些無法預見的壞處。最好的例子就是編輯框。如果你重新寫一個編輯框,可能會有很多你根本沒聽過的東西(如中文編輯附加工具,還有支援由右至左文字的雙向版Windows)都不能用了,因為它們不認得你寫的非標準編輯框。有些記者在檢視 Netscape 6.0 的搶鮮版時,就注意到 URL 輸入框(運用 Netscape 自製的非標準編輯框)不支援標準編輯控制元件功能,無法按右鍵叫出內容功能表。

和反微軟的基本教義派或創意繪圖設計師爭論時,他們常常會錯用愛默生的話:「一致是渺小心智的妖魅...」。正確的句子是「愚蠢的一致是渺小心智的妖魅。」好的使用介面設計者會明智地運用一致性,雖然這樣無法誇耀他們的創意,從長遠來看卻會讓使用者更快樂。

這些網頁的內容為表達個人意見。
All contents Copyright © 1999-2006 by Joel Spolsky. All Rights Reserved.