80/20 法則的陷阱#

很多人引用 80/20 法則來主張:既然 80% 的使用者只用 20% 的功能,那我們只要做那 20% 的功能就好了。聽起來很有道理,但 Joel 指出這個邏輯有一個致命的漏洞。

不同的使用者用不同的 20%#

80/20 法則的問題不在於它描述的現象是否正確——確實大多數使用者只會用到一小部分功能。問題在於:每個使用者用到的那一小部分功能是不同的

  • 使用者 A 需要功能 1、2、3
  • 使用者 B 需要功能 2、4、5
  • 使用者 C 需要功能 1、5、6
  • 如果你只保留功能 1 和 2(最多人用的),使用者 B 和 C 都會因為缺少他們需要的功能而離開

如果你真的把功能砍到只剩「核心的 20%」,你不是失去 20% 的使用者,而是可能失去 80% 的使用者——因為幾乎每個使用者都有自己「非用不可」的那幾個功能,而它們分散在不同的 80% 裡。

「臃腫軟體」的合理性#

所謂的「臃腫軟體」(bloatware)——功能繁多、安裝檔龐大的軟體——其實是一個成熟軟體產品的自然結果:

  • 它服務了多元的使用者群:不同產業、不同使用場景、不同工作流程的使用者,都能找到他們需要的功能
  • 磁碟空間很便宜:硬碟容量增長的速度遠超過軟體大小增長的速度。為了節省幾 MB 的磁碟空間而砍掉功能,是本末倒置的
  • 邊際成本很低:一個功能寫好之後,把它保留在產品中的成本幾乎為零。但移除它卻會直接失去依賴這個功能的使用者

精簡主義的誘惑#

市場上不斷有新產品打著「簡單」、「精簡」的旗號出現,聲稱自己只做最核心的功能。這些產品通常會經歷以下的生命週期:

  • 剛推出時,因為「清新」的感覺吸引了一批使用者
  • 隨著使用者增加,功能需求也隨之增加
  • 產品逐漸加入更多功能,變得越來越「臃腫」
  • 最終要嘛變成它們當初批評的那種軟體,要嘛因為堅持不加功能而失去使用者

這不是說軟體設計不需要考慮簡潔性。好的軟體設計是讓複雜的功能以簡單的方式呈現,而不是直接刪掉複雜的功能。UI 的簡潔和功能的豐富並不矛盾。

功能與介面設計的平衡

Joel 認為正確的做法不是砍功能,而是:

  • 改善功能的組織方式:讓常用功能容易找到,不常用的功能不會干擾日常使用
  • 漸進式揭露(Progressive Disclosure):初次使用者看到簡單的介面,進階使用者可以深入探索更多功能
  • 智慧的預設值:大多數情況下使用者不需要調整任何設定,但需要時所有選項都在那裡
  • 保持功能的完整性:與其擁有十個半成品的功能,不如有五個做得很完整的功能加上五個較少使用但仍然完整的功能

核心啟示#

不要被「簡單就是美」的教條所迷惑。在軟體產品中:

  • 功能豐富不等於設計糟糕
  • 功能精簡不等於設計優秀
  • 真正的挑戰是用優雅的設計來承載豐富的功能