軟件交互設計的基本矛盾是什麼?
- 易用性矛盾:軟件需要從用戶獲得信息以便其運行,但用戶不知道如何給出這些信息,之間的矛盾。
- 主導權矛盾:軟件開發者試圖控制用戶的行為,但用戶不想被控制,之間的矛盾。
- 一致性矛盾:同一軟件不同版本之間的差異、同類功能軟件之間的差異,和用戶使用習慣之間的矛盾
解決矛盾的手段分析和展望
- 命令行
命令行交互方式,對於易用性問題的解決基本上是把責任儘量多的交給用戶,只有少量的功能是帶有局部提示的,譬如 Linux 的 adduser 命令一類。所以命令行都會需要用戶去學習手冊,心智負擔非常重。為了減輕這種負擔,命令行軟件也使用了更多的實時交互功能,譬如按“↑”顯示上一條命令,按“TAB”補全命令等等。
但是,命令行在解決主導性矛盾和一致性矛盾方面有非常好的表現。大部分命令行運行的軟件,其運行細節完全遵循用戶的意願,打斷式的提示交互也往往可以忽略,譬如刪除文件時停下來要求用戶輸入 Y/N 繼續。不過,命令行交互軟件在主導權上的弱化,也可能是商業原因導致的,因為使用命令行的用戶大部分是專業用戶,他們更加看重主導權。
linux shell 腳本可以做很多事
而命令的高度一致性甚至可以規範到一門編程語言的範圍內,因此大部分命令行交互軟件,都可以編寫腳本或者宏來構造自動化操作。高度的一致性也讓其使用方法的傳播變得更加方便,一個命令的寫法是固定的,可以很方便的複製粘貼,也很方便記錄。從使用效率上來看,是非常好的一種方式。
VSCODE 的命令面板可以執行很多操作
不過,由於軟件系統的複雜性,也有一些軟件在命令行的設計上,有意的打破一致性原則,以期望提供更多的靈活性,典型的例子就是 shell。當你進入不同的 shell,你的命令行使用方式也會被改變。
- GUI
GUI 解決易用性矛盾的主要手段是給提示。對於大部分了解軟件功能背景,以及軟件需要提示的信息不多的情況下,GUI 能提供相當好的易用性幫助。
取款機大多數人都能很快學會使用
但是當需要提示的信息太多的時候,同樣會對用戶的心智造成另外一種負擔,這種負擔在老年人身上更加明顯。這就是依賴短期記憶的探索思考負擔,用戶要發現一個藏在多次操作後的功能,需要理解軟件設計者對於這個軟件的抽象想象。特別是如果軟件是高度形式化的樹狀概念設計時,使用者往往需要大量的嘗試和記憶,才能理解設計者的抽象規律。
為了避免上述困境,有些軟件設計者會把儘量多的提示放到一個屏幕上,這樣用戶就不需要探索更多的界面。但像素的限制讓文字、圖標本身可能也成為理解的難題。
word 的保存為啥是一個這圖標?現在這個東西還有人見到嗎?
為了解決提示信息過載的問題,很多軟件也會設計“嚮導”式交互的方法,把需要提示和收集的信息,分成多個步驟提供給用戶。這和命令行的交互式操作是類似的。這個方法很有效,但也有缺點,就是容易鼓勵濫用而搶奪主導權,譬如在嚮導中過多的展示信息而不是蒐集信息;或者有意打斷和加長用戶的操作過程。
加了一個打斷卸載的界面
GUI 在主導性矛盾上,本來可以通過一系列的規則,來讓用戶擁有很好的主導權。這些規則包括:
- 按照需要用戶關注程度,安排面板的上下層級關係,更緊急的至於上層。儘量減少層次。
- 自動出現的面板,應該自動消失。用戶操作出現的面板,讓用戶操作其消失。
- 提供明確的信息,表現軟件當前的狀態,而不是偽造狀態信息
但是出於商業目的,有些軟件會反其道而行之,這顯然會引起用戶的反感,但同樣也會帶來可能的商業化收益。由於 GUI 的一個核心特點是給出提示,所以提示的內容反而容易成為搶奪主導權的手段。這種主導權的搶奪不僅僅體現在廣告嵌入界面的問題上,還會出現在功能按鈕排布、使用流程等處。
大部分的操作系統廠商,都有對 GUI 程序進行一致性控制的動力。但是鑑於軟件的複雜性,導致操作系統的通用 GUI 一致性規則往往也比較複雜,譬如層疊式窗口,可以移動和修改大小,分頁面板隱藏等等,這些一致性的特性反而降低了易用性。這方面一些遊戲反而由於功能單一,其易用性更好。
遊戲 UI 的區域和行為往往都是固定的。不過也有很多“服務型”遊戲整的和一般的 APP 一樣醜惡。
一致性矛盾是 GUI 設計上最難解決的問題之一,因為你無法特別確實的預測軟件的發展,更沒有什麼手段去規範同類軟件的界面,最後還要抵抗住各種“優化”的念頭以堅持一貫的風格。
對於一般的軟件開發者來說,一致性矛盾的解決,往往比較簡單粗暴。現在很多軟件在第一次使用的時候,會通過遮蔽式教程來“教育”用戶,但是這種信息一來會打斷用戶的使用,二來也未必記得,所以不適合傳遞太多信息。
- AI 軟件交互界面
從很久之前開始,office 軟件就出現了“回形針小助手”,蘋果手機 siri 也是持續每個版本在迭代。啟發式的 UI,顧問式的 UI 一直都是各種軟件試圖改善交互方法的手段。在這個方面,大模型自然語言 AI 的出現,為我們提供了一條新路。
Office 2007 之後就沒這哥們了
在易用性矛盾上,如果能讓自然語言 AI 擁有足夠完整的軟件功能知識庫,加上語音識別和語音播放功能,是能比較好的解決 GUI 信息過載的問題的,更不需要用戶去用大腦記憶或者翻閱手冊。不過自然語言交互的速度上,還是會比手眼控制的觸摸屏、按鈕、鍵盤等途徑稍微慢一點,對於大量重複的命令,自然語言命令的編程或者合成,是一個需要額外開發的能力,也就是構造一個個性化的自然語言 AI 知識庫。
車載軟件天然需要語音交互
在主導性矛盾上,同樣會延續 GUI 軟件的問題,使用自然語言還是圖形並沒有本質差別,自然語言廣告播報可能更讓客戶反感。另外一種爭奪主導權的方式可能在啟發式推薦上。這種主動權從屏幕像素的爭奪會變成語音時長的爭奪。
一致性矛盾的解決可能是自然語言 AI 最有效的問題,因為自然語言本身就是一種規範,不說人話的軟件顯然不會有人用。如果自定義自然語言知識庫的能力可以更有效的應用到這些軟件上,一部分自動化操作需求,也能很好的被滿足。
從現在青少年使用 siri 等語音界面的比例來看,很可能將來的軟件 UI 會被自然語言顧問佔領重要的份額。