1. 概念的特性
1.1. 專一性原則(specificity principle)認為概念與目的應該一一對應
-
1.1.1. 專一性原則已被證明是概念設計中最有用的原則之一
-
1.1.2. 一個概念最多隻能滿足一個目的
1.2. 很少有沒有目的的概念
-
1.2.1. 如果本應隱藏的使用者機制被暴露,可能會產生沒有目的的概念
-
1.2.2. 無目的的概念會擾亂介面並迷惑使用者
-
1.2.3. 無目的的概念是奇怪的
1.3. 沒有概念來實現目的可能是因為設計者領域之外的限制,有時或許只是因為嚴重的疏漏
- 1.3.1. 概念缺失則會導致更為複雜的互動
1.4. 概念冗餘,即多個概念服務於同一目的,會導致使用者困惑與資源浪費
-
1.4.1. 概念冗餘在兩個本應相同的概念之間引入了令人困惑的區別,並迫使使用者用不同的方法來做相同的事情
-
1.4.2. 概念冗餘通常是由於在概念設計時只考慮了某些特定情況(可能是由子團隊負責開發),而沒有對軟體的核心概念給予足夠關注
-
1.4.3. 每個目的都應該透過最多一個概念來實現並避免概念冗餘
-
1.4.4. 避免概念冗餘當然也是合理的,因為可以節省精力
1.5. 概念過載,即一個概念具有多個目的
-
1.5.1. 錯誤聚合,設計者錯誤地將多個目的當成一個目的
-
1.5.2. 目的被拒,即設計者有意忽略使用者目的
-
1.5.3. 突發目的,概念隨著時間的推移演變出新的(通常是不相容的)目的
-
1.5.4. 搭載現象,即設計者試圖將新目的掛靠在舊概念上,以便減少設計和實現工作
-
1.5.5. 概念過載會由於不相關目的的耦合而引入額外的複雜性
-
1.5.6. 概念過載會導致功能受限,因為第二個目的被強加到原有概念之上
1.6. 導致軟體複雜性的增加和清晰度的降低
1.7. 一致性原則有助於確認有多個組成部分的目的究竟算一個目的還是多個目的、是否可能整合為一個單一目的,各部分是否有共同的利益相關者、它們是否為一個共同的使命服務,以及它們之間是否有衝突
1.8. 在軟體設計中,概念和目的應該一一對應
-
1.8.1. 每個概念都應該有一個激發它的目的
-
1.8.2. 軟體的每一個目的也都應該有一個完整的概念
2. 無概念的目的
2.1. 如果對設計進行審視,你可能會發現有些基本目的並沒有與之對應的概念來實現
2.2. 所有軟體都會隨著時間的推移而發展,新的需求總會出現
2.3. 設計之初就明顯缺少概念的目的
2.4. 通訊人概念
-
2.4.1. 大多數電子郵件客戶端都缺少通訊人概念,該概念用於識別郵件的發件人和收件人
-
2.4.2. Gmail這樣的封閉電子郵件系統很容易實現通訊人概念,但要想在更廣泛的範圍內實現這個概念,則需要通用的身份驗證作為基礎
-
2.4.3. 有了通訊人概念,電子郵件的發件人欄位就無法被偽造,垃圾郵件也將更容易受到控制
2.5. 備份中的刪除警告
-
2.5.1. 從計算機中刪除的檔案會在一段時間(比如30天)之後從備份中被刪除
-
2.5.2. 意圖很明確:阻止客戶將備份服務當作無限期的雲端儲存
-
2.5.3. 備份軟體可以提供一個概念來跟蹤刪除操作,並在刪除操作發生時給出警告,這樣就可以確定使用者是否有意刪除,以免在他們還沒注意到之前就從備份中刪除了檔案
2.6. 缺少樣式概念
- 2.6.1. 一個概念在某一類軟體中經常使用,但在另一類軟體中卻常常不可用,即使這個概念對於後者而言也非常有用
2.7. 不完整的模板概念
-
2.7.1. 由於軟體的形式有限,導致這個概念的常規目的無法實現
-
2.7.2. 解耦設計的關鍵是網站製作者不需要一開始就確定模板,而是可以先試著加入一些內容,然後看看內容在模板裡看起來如何
2.8. 隨著技術的普及,人們很容易認為軟體設計中所有的核心問題都已經解決了
- 2.8.1. 這些沒有概念的目的表明,即使在人們最熟悉的軟體中,還有一些最基本的需求沒有得到滿足,軟體設計師仍然有重要的工作要做
3. 概念冗餘
3.1. 如果存在另一個用於相同目的的概念,那麼當前的概念就是冗餘的
- 3.1.1. 設計師最初看到了兩個截然不同的目的,但最終卻發現它們只是同一個更通用目的的變體
3.2. Gmail的分類概念
- 3.2.1. 分類概念遭到否定的根本原因在於它是冗餘的
3.3. Zoom廣播
-
3.3.1. 廣播概念是一個冗餘概念
-
3.3.2. 聊天概念和廣播概念似乎具有相同的目的,但又不盡相同
-
3.3.2.1. 廣播訊息在螢幕上閃過,而聊天訊息則出現在滾動的訊息記錄中
-
3.3.2.2. 廣播訊息可以跨越會議室,聊天訊息則不能
-
3.3.2.3. 廣播訊息會很快消失,聊天訊息則會保留在訊息記錄中
-
3.3.2.4. 在理想情況下,聊天概念應該包含這兩個概念的特性
3.4. 消除概念冗餘將減少開發人員的工作,併為使用者提供更簡單、更強大的工具
4. 概念過載
4.1. 最有趣的軟體設計原則是一個概念最多隻能有一個目的
4.2. 一個概念不能很好地滿足兩個目的
-
4.2.1. 目的指導著概念設計的各個方面
-
4.2.2. 如果軟體有兩個不同的目的,它們必然會向不同的方向發展,而概念設計也必須在它們之間做出妥協
-
4.2.3. 更有可能的是,這種設計最終連一個目的也無法完全滿足,因為這個目的本來朝著一個方向發展,卻被拉向另一個方向
4.3. 錯誤聚合(False convergence)
-
4.3.1. 錯誤聚合是指一個概念針對兩個不同的功能,而這兩個功能被錯誤地假設為具有相同的目的
-
4.3.2. Facebook的好友概念
-
4.3.2.1. 允許兩個使用者建立一種關係,在這種關係中他們可以看到彼此的帖子
-
4.3.2.2. 隱藏了兩個截然不同的目的
> 4.3.2.2.1. 過濾:透過展示好友的帖子,Facebook為使用者省去了親自篩選帖子的麻煩
> 4.3.2.2.2. 訪問控制:透過選擇好友,使用者可以選擇誰可以看到自己的帖子
- 4.3.2.3. 2011年增加了關注概念,只用於過濾帖子,而非訪問控制
4.4. 被拒目的(Denied purposes)
-
4.4.1. 被拒目的是指被設計者忽略的目的,儘管使用者有相應的需求
-
4.4.2. 列出候選目的然後將之否定通常是令人欽佩的,這是防止軟體設計膨脹的關鍵策略
-
4.4.3. 最有效的箴言是“設計最簡單的東西”,這既適用於選擇要達到的目的,也適用於設計實現這些目的的概念
-
4.4.4. 以保持使用者介面的簡單性為名忽視使用者需求,進而否定一個目的,這也可能是一種武斷的行為
-
4.4.5. Twitter中的收藏概念
4.5. 突發目的(Emergent purposes)
-
4.5.1. 突發目的是原有舊概念新產生的目的,通常由使用者自己創造
-
4.5.2. 一個概念在設計時可能只有一個單一的、引人注意的目的,但隨著使用者發現該概念的新用途,其他目的可能會出現
-
4.5.3. 電子郵件的主題行概念
4.6. 搭載(Piggybacking)
-
4.6.1. 搭載現象指現有概念被調整或擴充套件以適應新目的
-
4.6.2. 導致概念過載最常見的原因是,設計師看到了使用現有概念來支援新目的的可能,因此沒有設計新概念,省去了設計和實現新概念的麻煩
-
4.6.2.1. 設計師也可能認為使用者會欣賞概念更少、內涵卻更豐富帶來的經濟性,但這通常是錯誤的
-
4.6.2.2. 相比於數量較少但是複雜和令人困惑的概念,較多但統一、有說服力的概念更好
-
4.6.3. 富士相機的長寬比
-
4.6.3.1. 長寬比概念在RAW格式的檔案上非常有效
-
4.6.3.2. 由於長寬比概念透過過載與JPEG格式相關聯導致過載,因此不能單獨將之用於JPEG格式
-
4.6.3.3. 即使你只想以RAW格式儲存影像,並且自定義長寬比,在設定影像質量時也必須選擇同時包含RAW和JPEG格式的檔案,然後再刪除JPEG檔案
-
4.6.3.4. 補救方法是提供一個與影像大小概念不同的長寬比概念,使自定義長寬比的操作與選擇檔案型別的操作相互獨立
4.7. 補救方法
-
4.7.1. 儘可能準確地闡明單一目的,並檢查概念的不同動機是否真正反映了同一目的,這樣可以避免錯誤聚合
-
4.7.2. 認真對待使用者的意見和經驗,特別是那些技術水平較低和較不願意採用新技術的使用者,這樣可以避免出現被拒目的
-
4.7.3. 突發目的是最難避免的,因為沒有人能夠預測設計將以何種方式影響其使用場景並創造新的用途
-
4.7.3.1. 只要意識到突發目的的出現,就可以新增新概念來解決這種概念過載
-
4.7.4. 應該避免將概念用於相互矛盾的目的來最佳化設計的衝動,應認識到這樣節省下來的努力會導致情況更加複雜,最終付出高昂的代價
-
4.7.4.1. 避免出現搭載現象
5. 目的的顆粒度和一致性原則
5.1. 設計是否冗餘或過載取決於目的
5.2. 需要透過一致性測試,揭示多重目的偽裝成一個目的的情況
5.3. 在理想情況下,目的的設定不應該隨案例不同而變化,也就是說,目的需要保持一致
5.4. 重新設定目的
5.5. 共同的利益相關者
5.6. 共同使命
5.7. 無衝突
6. 分解概念
6.1. 解決概念過載的方法是分解概念,然後為每個目的建立一個新的概念
6.2. 回應概念,其目的是傳遞對帖子的情緒反應
6.3. 推薦概念,其目的是管理推送內容
6.4. 特徵分析(profiling),其目的是定向投放廣告
6.5. 極端情況是,這三個概念可能構成一個幾乎完全不同步的自由組合
6.6. 另一個極端情況是,三個概念完全同步,回應按鍵也作用於推薦和特徵分析
-
6.6.1. 過載問題已經轉化為過度同步問題
-
6.6.2. 至少在概念分離的情況下,設計中有更清楚的跡象表明這些概念已經耦合在一起,並且即使試圖在相互衝突的不同目的之間尋求平衡,概念本身被破壞的風險也比較小
6.7. 概念分解之所以很有價值,在很大程度上是因為它允許將一個特殊的概念(比如Facebook的點贊概念)分解成更一致、更通用的概念,從而為使用者提供更簡明的體驗,併為記錄和儲存設計知識提供更好的結構