Joel on Software

Joel on Software 周思博趣談軟體

 

程式師的使用介面設計手冊
第1章
第2章
第3章
第4章
第5章
第6章
第7章
第8章
第9章

其他Joel on Software文章( 繁體中文)

其他Joel on Software文章(英文)

與作者聯繫 (英文)

 

程式師的使用介面設計手冊
第5章: 一致性及其他怪東西


作者: 周思博 (Joel Spolsky)
譯: 梅普華
2000年4月22日

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

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

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

而當某個程式能立刻讓Microsoft有很好的印象時, 他們就會掏出一億五千萬美元. 你的目標或許沒那麼大; 只是希望客戶喜歡然後掏出大概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鍵). 還會有一類使用者會去程式左上方區域找磁片圖示去按. 這四種方法最好都能用, 否則使用者就會遇到他們不想要的結果.

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

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

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

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

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

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

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

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

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

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

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

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



> 第6章

文件來源: User Interface Design for Programmers Chapter 5: Consistency and Other Hobgoblins (英文) 

約耳.斯珀儿斯奇是Fog Creek Software (設立在紐約的一家小型軟體公司) 的創立者. 約耳畢業於耶魯大學 (Yale University) ,並曾經在微軟, Viacom 和 Juno 擔任程式人員与管理工作.


這些網頁的內容為表達個人意見
Copyright ©1999-2005  Joel Spolsky. 所有權利皆予保留 使用規定

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky