事件
如何為傳統型應用程式設計絕佳的使用者體驗
注意
此設計指南是針對 Windows 7 所建立,但尚未針對較新版本的 Windows 更新。 大部分的指導方針仍適用主體,但簡報和範例不會反映 我們目前的設計指導方針。
絕佳的傳統型應用程式功能強大,同時簡單。 透過仔細平衡的功能選取和呈現,您可以達成強大和簡單。
強大:
功能強大且簡單:
理想的 Windows 型應用程式既強大又簡單。 當然,您希望應用程式功能強大且當然想要簡單,但可以達成這兩者嗎? 這些目標之間有自然的壓力,但該壓力遠不可理解。 您可以透過仔細平衡的功能選取和呈現來達成強大和簡單。
就軟體而言,「電源」真正代表什麼意思? 如果應用程式已滿滿功能,則應用程式可能會被視為功能強大,並嘗試讓所有使用者都能擁有大量功能。 這類設計不太可能成功,因為未設定目標的功能集不太可能滿足任何人的需求。 這不是我們之後的電源類型。
當應用程式具有下列特性的正確組合時,應用程式就很強大:
- 使。 應用程式滿足其目標使用者的需求,讓他們能夠執行他們無法執行的工作,並有效地達成其目標。
- 高效率。 應用程式可讓使用者執行具有生產力層級和規模的工作,且之前無法執行。
- 多才多藝。 應用程式可讓使用者在各種情況下有效地執行各種工作。
- 直接。 應用程式感覺就像是直接協助使用者達成其目標,而不是採取不必要的步驟。 快捷方式、鍵盤存取和宏等功能可改善直接性感。
- 彈性。 應用程式可讓使用者完成、更精細地控制其工作。
- 經過整合。 應用程式與 Microsoft Windows 緊密整合,可讓它與其他應用程式共用資料。
- 進階: 此應用程式在競爭解決方案中找不到令人令人不動、創新、最先進的功能。
其中一些特性取決於使用者的認知,而且與使用者的目前功能相對。 被視為強大的功能可能會隨著時間而改變,因此現今的進階搜尋功能可能會在明天很常見。
所有這些特性都可以合併到我們的能力定義中:
當應用程式可讓目標使用者有效率地實現其完整潛在能力時,應用程式就很強大。
因此,電源的最終量值是生產力,而不是特徵數目。
不同的使用者需要協助,以不同的方式達成其完整潛力。 哪些功能可讓某些使用者危害他人的多樣性、直接性和控制。 設計良好的軟體必須適當地平衡這些特性。 例如,專為非專業而設計的桌面發佈系統可能會使用精靈來引導使用者完成複雜的工作。 這類精靈可讓目標使用者執行他們無法執行的工作。 相較之下,適用于專業人員的桌面發佈系統可能會著重于直接性、效率及完整控制。 對於這類應用程式的使用者,精靈可能會受到限制且令人感到沮喪。
如果您只執行一件事...
瞭解目標使用者的目標,並製作一個功能集,讓他們能夠以生產力達成這些目標。
我們會定義簡單性,如下所示:
簡單性是減少或消除以使用者為目標之設計的屬性,並考慮不必要。
實際上,透過選取正確的功能集並以正確的方式呈現功能,即可達成簡單性。 這可減少真實和認知的實體。
簡單性取決於使用者認知。 請考慮自動傳輸的效果取決於使用者的觀點:
- 對於一般驅動程式 (目標使用者) ,自動傳輸可免除手動齒輪移位和換車的需求,讓汽車更容易駕駛。 手動齒輪移位和換車對於駕駛工作而言並不重要,因此會移除它們以達到簡單性。
- 對於專業賽車車駕駛而言,直接控制傳輸是競爭不可或缺的。 自動傳輸會對汽車的效能造成負面影響,因此不會將其視為簡化。
- 對於機械性而言,自動傳輸是更複雜的機制,因此比手動傳輸更容易修復或維護。 不同于機械,目標使用者非常熟悉這種內部複雜度。
雖然不同的使用者會以不同的方式處理自動傳輸,但它成功,因為它不需要從目標使用者取得知識、技能及精力。 對於一般驅動程式而言,自動傳輸是一項絕佳的功能,因為它只會運作。
簡單起見,在正確套用時,會導致方便使用。 但簡單且容易使用的概念並不相同。 當使用者可以自行順利執行工作,而不需要在適當的時間內發生困難或混淆時,就能輕鬆使用。 有許多方式可以達成容易使用,而且簡單性—減少 unessential— 只是其中一種。
不論其複雜程度為何,所有使用者都想要以最少的不必要工作完成工作。 所有使用者,甚至是進階使用者,主要是為了完成工作,而不是瞭解電腦或您的應用程式。
簡單性是達到方便使用,且方便使用等號使用的最有效方式。 複雜且難以使用的功能只是不會使用。 相較之下,執行其函式的簡單、簡潔設計是一個好用的快樂。 他們會叫用正面的情緒回應。
例如,請考慮 Microsoft Windows XP 中的無線網路支援。 Microsoft 可能已新增精靈,以逐步引導使用者完成設定程式。 這種方法會導致容易使用,但無法簡化,因為精靈 () 新增了非必要功能。 相反地,Microsoft 設計了無線網路來自動設定本身。 使用者最終不會關心設定詳細資料,只要其「正常運作」可靠且安全。 無線網路技術中的這種電源和簡單性組合,導致其受歡迎度和快速採用。
如果您只執行一件事...
使用最簡單的設計來啟動您的設計程式,以妥善執行工作。
如果您不滿意目前的設計,請從移除所有 unessential 元素開始。 您會發現保留的內容通常相當好。
為了簡單起見,請一律針對 可能設計,而不是可能。
可能
根據可能的結果,設計決策會導致複雜的使用者介面,例如登錄編輯程式,其中設計會假設所有動作都可能相同,因此需要相等的工作。 因為可能的話,所以在設計決策中不會考慮使用者目標。
可能
根據可能的設計決策可能會導致簡化、目標和工作型解決方案,其中可能案例會獲得焦點,而且需要最少的心力才能執行。
簡單設計原則
若要取得簡單性,請專注于可能的內容;減少、隱藏或移除不太可能的專案;並消除不可能的內容。
使用者將執行的動作比他們可能執行的動作更與設計相關。
若要在維護電源時取得簡單性,請選擇 正確的功能集、找出 正確位置的功能,並減少使用這些功能 的工作 。 本節提供一些可達成這些目標的常見技術。
選擇正確的功能集
「達到完美,而不是新增更多內容時
但當沒有留下任何要離開的時間。」— Antoine de Saint-Exupery
下列設計技術可讓使用者獲得所需的功能,同時透過實際縮減或移除來達成簡單性:
- 判斷使用者所需的功能。 透過目標、案例和工作分析瞭解使用者的需求。 判斷一組可實現這些目標的功能。
- 移除不必要的元素。 移除不太可能使用的元素,或有較佳的替代方案。
- 移除不必要的備援。 執行工作的方法可能有很多種。 為了求簡單起見,請做出硬式決策,並選擇最適合目標使用者,而不是提供所有使用者,並做出選擇的選項。
- 讓它自動「正常運作」。 元素是必要的,但要讓它運作的任何使用者互動都不是因為有可接受的預設行為或設定。 為了求簡單起見,讓它自動運作,並完全隱藏使用者,或大幅降低其暴露程度。
簡化簡報
「簡化消除不必要的方法的能力
如此一來,就可能說出必要專案。」 — Hans 一Mannmann
使用下列設計技術來保留能力,同時透過減少或移除的認知來達成簡單性:
- 合併應合併的內容。 將支援工作的基本功能放在一起,讓工作可以在一個位置執行。 工作的步驟應該具有統一且簡化的流程。 將複雜的工作分成一組簡單、清楚的步驟,讓「一」位置可能包含數個 UI 介面,例如精靈。
- 分隔應該分隔的內容。 並非所有專案都可以在單一位置呈現,因此一律有清楚、妥善選擇的界限。 讓支援核心案例的功能集中且明顯,並隱藏選擇性功能或讓它成為周邊功能。 個別工作,並提供相關工作的連結。 例如,與操作相片相關的工作應該與管理相片集合相關的工作清楚分隔,但應該能輕易地從彼此存取。
- 排除可以排除的內容。 取得您設計的列印輸出,並醒目提示用來執行最重要的工作的專案。 甚至會反白顯示 UI 文字中傳達實用資訊的個別字組。 現在,請檢閱未醒目提示的內容,並考慮從設計中移除它。 如果您移除專案,是否會發生任何錯誤? 如果沒有,請將其移除!
- 一致性、可設定性和一般化通常是理想的品質,但可能會導致不必要的複雜度。 請檢閱您的設計,瞭解一致性 (中的錯誤工作,例如具有備援文字) 、一般化 (,例如當兩個時區足夠) 時具有任意數量的時區,以及可設定性 (,例如使用者不太可能變更) 的選項,並消除可消除的專案。
- 將元素放在正確的位置。 在視窗中,元素的位置應該遵循其公用程式。 基本控制項、指示和說明應該全都以邏輯順序排列。 如果需要更多選項,請按一下>形箭號或類似的機制,在內容中公開它們;如果需要詳細資訊,請在滑鼠暫留時顯示資訊提示。 將較不重要的工作、選項和說明資訊放在個別視窗或頁面的主流程之外。 視需要顯示其他詳細資料的技術稱為漸進式洩漏。
- 使用有意義的高階組合。 相較于個別元素,選取及操作相關元素群組通常更簡單且更可調整。 高階組合的範例包括資料夾、主題、樣式和使用者群組。 這類組合通常會對應至使用者目標或意圖,這些目標或意圖在個別元素中並不明顯。 例如,高對比黑色色彩配置背後的意圖遠比黑色視窗背景的意圖明顯。
- 選取正確的控制項。 設計項目是由您用來表示它們的控制項所組成,因此選取正確的控制項對於有效率的呈現非常重要。 例如,Microsoft Word所使用的字型選取方塊會顯示字型預覽,以及最近使用的字型。 同樣地,Word顯示可能就地拼字和文法錯誤的方式比對話方塊替代方法簡單許多,如本文開頭所示。
減少工作量
「簡單事項應該很簡單。
複雜專案應該可行。」—Alan Kay
下列設計技術可減少使用者的工作:
- 讓工作變成可探索且可見。 所有工作,特別是頻繁的工作,都應該在使用者介面內輕鬆探索。 執行工作所需的步驟應該可見,而且不應該依賴記憶。
- 在使用者的網域中呈現工作。 複雜的軟體需要使用者將其問題對應至技術。 簡單的軟體會藉由呈現自然的內容來為其進行對應。 例如,紅眼縮小功能會直接對應到問題空間,而且不需要使用者考慮色調和漸層等詳細資料。
- 將領域知識放入程式中。 使用者不應該需要存取外部資訊,才能成功使用您的應用程式。 領域知識的範圍可以從複雜的資料和演算法,到只厘清輸入類型是否有效。
- 使用使用者瞭解的文字。 製作完善的文字對於與使用者的有效通訊非常重要。 使用使用者熟悉的概念和詞彙。 完整說明以純文字要求的內容,讓使用者能夠做出智慧、明智的決策。
- 使用安全、安全、可能的預設值。 如果設定的值適用于大部分的使用者,且該設定同時是安全且安全的,請使用它作為預設值。 只在必要時,讓使用者指定值。
- 使用條件約束。 如果有許多方式可執行工作,但只有某些方法正確,請將工作限制為這些正確的方式。 使用者不應允許進行容易避免的錯誤。
「一切應該盡可能簡單,
但較不簡單。」—Albert Ein一
我們相信,簡單性對於有效且想要的使用者體驗至關重要,但一律可以花太多心力。 簡單性的本質是減少或消除非必要性。 移除基本功能只會產生不佳的設計。 如果您的「簡化」會導致使用者感到挫折、混淆、不滿意或無法順利完成工作,則您已移除太多工作。
「我只有這個字母較長,因為我有
不是縮短的時間。」—您的 Pascal
取得簡單性,同時保留電源通常需要大量的內部複雜度。 通常更容易設計會公開所有技術管的軟體,而不是設計隱藏它的軟體,後者需要對目標使用者及其目標有絕佳的瞭解。 移除功能需要專業領域,如同決定要新增真正不實用之非經常性功能。 簡單性需要進行硬式設計選擇,而不是讓所有專案都可設定。 複雜的軟體通常來自對使用者有誤解:他們重視未使用的功能或無法理解的過度複雜功能。
Power 全都關於讓使用者能夠提高生產力。 簡單起見就是以正確的方式移除 unessential 和呈現功能。 藉由瞭解您的目標使用者並達到功能與簡報的正確平衡,您可以設計兩者皆以 Windows 為基礎的應用程式。