共用方式為


如何為傳統型應用程式設計絕佳的用戶體驗

注意

此設計指南已針對 Windows 7 建立,但尚未更新較新版本的 Windows。 大部分指引仍適用原則,但簡報和範例不會反映我們目前的設計指導方針

絕佳的桌面應用程式功能強大且同時簡單。 透過仔細平衡的功能選取與呈現,您可以同時達到功能強大與簡單易用。

強大:

拼字和文法對話框的螢幕快照

強大且簡單:

可能拼字修訂清單的螢幕快照

理想的 Windows 型應用程式既強大又簡單。 當然,您希望應用程式強大且當然想要它簡單,但您可以達成這兩者嗎? 這些目標之間自然存在緊張關係,但這種緊張關係遠非不合時宜。 透過謹慎平衡功能的選擇和呈現,您可以達到強大與簡潔的和諧。

是什麼讓應用程式變得強大?

在軟體方面,「權力」真正代表什麼? 如果應用程式功能豐富,並擁有廣泛的功能,試圖滿足所有使用者的需求,那麼它可能會被視為強大的。 這類設計不太可能成功,因為未設定目標的功能集不太可能滿足任何人的需求。 這不是我們所追求的力量。

當應用程式具有這些特性的正確組合時,應用程式就很強大:

  • 啟用。 應用程式滿足其目標使用者的需求,讓他們能夠執行他們無法執行的工作,並有效地達成其目標。
  • 有效。 應用程式可讓使用者以無法達到的生產力和規模層級來執行工作。
  • 多功能。 應用程式可讓用戶在各種情況下有效地執行各種工作。
  • 直接。 應用程式感覺就像是直接協助使用者達成其目標,而不是妨礙或要求不必要的步驟。 快捷方式、鍵盤存取和巨集等功能可改善直接感。
  • 靈活。 應用程式可讓使用者完成對工作進行精細的控制。
  • 綜合。 應用程式已與 Microsoft Windows 緊密整合,讓它與其他應用程式共用數據。
  • 進階。 應用程式具有非凡的創新、最先進的功能,這些功能在競爭解決方案中找不到。

其中一些特性取決於使用者的看法,而且與使用者目前的功能相對。 被認為強大的功能可能會隨著時間而改變,因此明天的進階搜尋功能可能很常見。

所有這些功能都可以結合到我們的權力定義:

當應用程式可讓目標使用者有效率地實現其完整潛力時,應用程式就很強大。

因此,權力的最終量值是生產力,而不是特徵數目。

不同的使用者需要協助,以不同的方式實現其完整潛力。 對某些用戶有利的功能可能會損害其他人的多功能性、直接性和控制權。 設計良好的軟體必須適當地平衡這些特性。 例如,專為非專業設計的桌面發佈系統可能會使用精靈來引導使用者完成複雜的工作。 這類精靈可讓目標使用者執行他們無法執行的工作。 相較之下,適用於專業人員的桌面發佈系統可能會專注於直接性、效率和完整控制。 對於這類應用程式的使用者,操作向導可能會顯得侷限且令人沮喪。

如果你只做一件事...

瞭解目標用戶的目標,並製作一個功能集,讓他們能夠有效率地達成這些目標。

是什麼讓用戶體驗變得簡單?

我們會定義簡單性,如下所示:

簡單性是指針對用戶的設計屬性的減少或消除,且用戶認為是不必要的狀態。

實際上,只要選擇正確的功能集合,並以合適的方式呈現這些功能,就能達到簡單。 這可減少不必要的東西,無論是真實的還是感知到的。

簡單性取決於使用者的看法。 請考慮自動傳輸的效果如何取決於使用者的觀點:

  • 對於典型的司機(目標使用者),自排變速器不需要手動換檔和踩離合器,使得駕駛汽車變得輕鬆許多。 手動齒輪換檔和離合器對駕駛工作並不重要,因此它們會被移除以達到簡單性。
  • 對於專業賽車手來說,直接控制傳輸對於競爭至關重要。 自動變速箱對汽車的效能造成負面影響,因此不被視為是一種簡化。
  • 對於機械師來說,自動變速器是一種更複雜的機制,因此不比手動變速器更容易修復或維護。 不同於機械師,目標使用者非常幸福地不知道這種內部複雜性。

雖然不同的使用者對自動變速的看法不同,但它是成功的,因為它消除了其目標使用者對非必要的知識、技巧和努力的需求。 對於典型的駕駛者來說,自動變速器是一個絕佳的功能,因為它省事又方便。

簡單與容易使用

簡單化,當正確應用時,會使使用變得容易。 但簡單易用和容易使用並不是相同的概念。 當使用者可以在適當的時間內順利執行工作,而不會造成困難或混淆時,即可輕鬆使用。 有許多方法可以達到易於使用,簡單性—將非必要部分減少—只是其中之一。

所有使用者,無論多麼複雜,都想要以最少不必要的精力完成他們的工作。 所有使用者,甚至是進階使用者,主要是為了完成工作,而不是了解計算機或您的應用程式。

簡單是達到易於使用的最有效方式,而易於使用則意味著能夠被使用。 複雜且難用的功能根本不會被使用。 相比之下,執行其功能良好的簡單、優雅的設計是一種使用的樂趣。 他們激起積極的情感反應。

例如,請考慮Microsoft Windows XP 中的無線網路支援。 Microsoft可能已新增精靈,以逐步引導使用者完成設定程式。 這種方法會導致易於使用,但並不簡單,因為會新增一個非必要功能(精靈)。 相反地,Microsoft設計無線網路來自動設定自己。 用戶最終不會關心組態詳細數據,只要其「直接運作」可靠且安全。 這種結合功能與簡單性的無線網路技術促成了其普及和快速採用。

如果你只做一件事...

使用最簡單的設計來啟動您的設計過程,能夠順利完成工作。

如果您對目前的設計不滿意,請從去除所有 unessential 元素開始。 你會發現剩下的部分通常相當不錯。

在維護電源的同時獲得簡單性

設計原則

若要獲得簡單性,應永遠為可能發生的情況設計,而不是為潛在的可能性設計。

可能

根據可能實現的設計決策會導致複雜的使用者介面,例如在設計中假設所有操作都是同樣可行的,這樣的設計使得每個操作都需要投入相同的努力,例如註冊表編輯器。 因為任何專案都可行,因此在設計決策中不會考慮用戶目標。

可能的情況

根據可能情況而做出的設計決策,會導向簡化並以目標及任務為導向的解決方案。在這些設計中,可能性較大的情境會成為重點,並且在執行時需投入最少的努力。

簡單設計原則

若要獲得簡單性,請專注於可能的內容:減少、隱藏或移除不太可能的專案;並消除不可能的事情。

用戶將會做的事對設計而言遠比他們可能會做的事更具相關性。

設計技術

為在保持能力的同時獲得簡單性,請選擇正確的功能集 、將功能 放置在正確的位置,並減少使用這些功能的工作 。 本節提供一些達成這些目標的常見技術。

選擇正確的功能集

「完美的實現並不是因為還有東西可以增加,」

但是,當沒有什麼可拿走的時候。“ —安托因·德·Saint-Exupery

下列設計技術可讓用戶獲得所需的功能,同時透過實際縮減或移除來達成簡單:

  • 判斷使用者所需的功能。 透過目標、案例和工作分析了解使用者的需求。 決定一組可實現這些目標的功能。
  • 拿掉不必要的元素。 拿掉不太可能使用的元素,或有較佳的替代方案。
  • 去掉不必要的冗餘。 執行工作可能有數種有效方式。 為了達到簡單化,請做出艱難的決定,選擇最適合您的目標用戶的那個選項,而不是提供所有選項讓使用者自行選擇。
  • 讓它自動「正常運作」。 元素是必要的,但要讓它運作的任何用戶互動都不是因為有可接受的默認行為或組態。 為了達到簡單起見,讓它自動運作,並將其完全隱藏,或大幅減少使用者能看到它的程度。

簡化簡報

「簡化消除不必要的方法的能力

因此,必要的可以說話。“漢斯·霍夫曼

使用下列設計技術來節省電力,同時透過減少或移除的效果來達到簡約:

  • 合併應結合的內容。 將支援工作的基本功能放在一起,讓工作可以在一個位置執行。 工作的步驟應該具有統一且簡化的流程。 將複雜的工作分解成一組簡單、清楚的步驟,讓「一」位置可能包含數個UI介面,例如精靈。
  • 應分則分。 不是一切都可以在一個地方呈現,因此必須清楚劃定適當的界限。 讓支持核心場景的功能成為重點且明顯,並隱藏選擇性功能或使其不顯眼。 分隔個別工作,並提供相關工作的連結。 例如,與編輯相片相關的工作應該與管理相片集相關的工作清楚分隔開來,並且彼此都能輕鬆存取。
  • 消除可消除的內容。 請列印您的設計,並標示出用來執行最重要任務的元素。 甚至會標記 UI 文字中傳達實用資訊的單字。 現在,請檢閱未醒目提示的內容,並考慮將其從設計中移除。 如果您移除該項目,會發生什麼壞事嗎? 如果沒有,請將其移除!
  • 一致性、可設定性和一般化通常是理想的品質,但可能會導致不必要的複雜度。 請檢閱您的設計,找出在設計一致性上錯誤的努力(如冗餘文字)、一般化(如時間區域超過兩個並不必要),以及可設定性(如使用者可能不會去變更的選項),然後消除所有不必要的部分。
  • 將元素放在正確的位置。 在視窗中,元素的位置應該遵循其公用程式。 基本控件、指示和說明都應該以邏輯順序排列在內容中。 如果需要更多選項,請按下下拉箭頭或類似的機制,以在內容中公開這些選項;如果需要詳細資訊,請在滑鼠暫留時顯示提示訊息。 將較不重要的工作、選項和說明資訊放在不同視窗或頁面的主流程之外。 視需要顯示其他詳細數據的技術稱為漸進式洩漏。
  • 使用有意義的高階組合。 選取和操作相關的元素組比單個元素更簡單且更具擴展性。 高階組合的範例包括資料夾、主題、樣式和使用者群組。 這類組合通常會對應到用戶的目標或意圖,而這些目標或意圖從個別元素中並不容易看出。 例如,高對比度黑色色彩配置背後的意圖比黑色視窗背景的意圖要明顯得多。
  • 選取正確的控件。 設計元素是由您用來表示它們的控件所體現,因此選取正確的控件對於有效率的呈現至關重要。 例如,Microsoft Word 所使用的字型選取方塊會顯示字型預覽,以及最近使用的字型。 同樣地,Word 顯示潛在拼字和文法錯誤的方式比對話框替代方式簡單得多,如本文開頭所示。

減少工作量

「簡單的事情應該很簡單。

複雜的事情應該是可能的。—艾倫·凱

下列設計技術可減少使用者的工作:

  • 讓工作可探索且可見。 所有工作,尤其是頻繁的工作,都應該在使用者介面內輕鬆探索。 執行工作所需的步驟應該可見,而且不應該依賴記憶。
  • 在使用者的網域中呈現任務。 複雜的軟體需要使用者將其問題對應至技術。 簡單的軟體會透過呈現自然的內容,為它們進行映射。 例如,紅眼縮小功能會直接對應到問題空間,而且不需要使用者以色調和漸層等詳細數據來思考。
  • 將領域知識放入程式中。 使用者不應該需要存取外部資訊,才能成功使用您的應用程式。 領域知識的範圍可以從複雜的數據和演算法,到只清楚說明輸入類型是否有效。
  • 使用使用者瞭解的文字。 精心製作的文字對於與使用者的有效溝通至關重要。 使用使用者熟悉的概念和詞彙。 以純文本充分說明要求的內容,讓用戶能夠做出智慧、明智的決策。
  • 使用安全、穩固、合理的預設。 如果設定具有適用於大部分使用者的值,而且該設定既安全又安全,請使用它做為預設值。 僅在必要時,讓使用者指定值。
  • 使用條件約束。 如果有許多方式可執行工作,但只有一些是正確的,請將工作限制為那些正確的方式。 使用者不應被允許進行容易預防的錯誤。

簡單性並不表示簡單

“一切都應該盡可能簡單,

但不要更簡單。—阿爾伯特·愛因斯坦

我們相信簡單對於有效且理想的用戶體驗至關重要,但也可能過度追求這些好事。 簡單的本質是減少或消除不必要的東西。 拿掉基本功能只會產生不良的設計。 如果您的「簡化」會導致使用者感到沮喪、困惑、不滿意或無法順利完成工作,則您已移除太多。

簡單性確實意味著您付出更多努力

我只把這封信寫得更長,因為我有理由。

現在不是縮短的時候。—布萊斯·帕斯卡爾

想要在保留強大功能的同時獲得簡單,往往需要相當複雜的內部結構。 通常更容易設計會公開所有技術管道的軟體,而不是設計隱藏它的軟體,後者需要對目標使用者及其目標有很好的瞭解。 移除一個功能需要自律,就像決定不加入那個很酷但並不實用的功能一樣。 簡單性需要做出艱難的設計選擇,而不是讓所有東西都可配置。 複雜的軟體通常會產生對使用者的誤解:他們重視未使用的功能或無法理解的過於複雜的功能。

強大且簡單

Power 是幫助使用者並提高他們生產力的關鍵。 簡單性就是去除不必要的部分並以正確的方式呈現功能。 藉由瞭解您的目標用戶並達到功能與簡報的正確平衡,您可以設計兩者皆可執行的 Windows 型應用程式。