使用者也是人#

大多數工程師花費大量時間建構軟體,卻很少思考真正使用軟體的人。本章探討工程師與使用者之間的關係,以及如何打造使用者真正喜愛的產品。

管理公眾認知#

行銷不只是行銷部門的事,工程師也需要關心。認知即現實(Perception is reality)——使用者對你產品的感受,比產品的技術細節更重要。

  • Apple 的成功不僅來自技術優越性,更來自情感上的吸引力
  • 使用者選擇產品時,情感因素往往大於理性分析
  • 工程師應該與行銷團隊合作,而非對抗

你可以打造世界上最好的軟體,但如果沒有人知道它的存在、或者人們對它的印象不佳,那一切都是白費。

重視第一印象#

第一印象至關重要。問自己:一個新使用者在接觸你的軟體的前 30 秒,感受到什麼?

  • 你的軟體是否讓人感到歡迎?
  • 是否讓人立刻知道該怎麼開始?
  • 還是讓人感到困惑和挫折?

少承諾,多兌現(Underpromise and overdeliver) 是建立好印象的關鍵策略。Google 長期奉行不預先宣布功能的政策——等到功能真正準備好了再發布,讓使用者感到驚喜,而非失望。

你的軟體有多好用?#

除非你正在開發給開發者用的工具,否則你不是你自己的使用者。工程師在評估自己軟體的易用性方面,表現出了極差的判斷力。

工程師最常犯的錯誤,就是假設使用者跟自己一樣理解系統的運作方式。

Google 的座右銘說得好:

「專注於使用者,其他一切將隨之而來。」(Focus on the user, and all else will follow.)

你需要跳脫工程師的視角,用使用者的眼睛來看你的產品。

Figure 6.1: 用使用者的眼睛看你的產品

選擇你的受眾#

使用者的技術能力呈現鐘型曲線(Bell Curve) 分布:

Figure 6.2: 使用者技術能力的鐘型曲線分布

  • 左側:技術能力較低的一般使用者
  • 中間:具備基本能力的普通使用者
  • 右側:技術能力高的進階使用者

大多數軟體應該致力於將易用性的門檻向左移動——讓更多人能夠使用。

以版本控制系統為例:

  • Subversion:相對容易理解,入門門檻較低

Figure 6.3: Subversion 的易用性定位

  • Git:功能強大但學習曲線陡峭
  • Mercurial:試圖在功能與易用性之間取得平衡

Figure 6.4: Mercurial 與 Git 的易用性比較

選擇你的目標受眾,然後為他們設計——而非為你自己設計。

降低進入門檻#

讓使用者的第一次使用體驗盡可能簡單,是成功的關鍵。

  • PHP 的成功很大程度上來自其極低的入門門檻——寫幾行程式碼就能看到結果
  • TripIt 的範例:只需將確認信轉寄到一個 email 地址,就能自動產生行程表。不需要手動輸入任何資料

降低門檻的具體做法#

  • 不要強迫使用者在開始前就註冊帳號
  • 不要要求複雜的前置設定
  • 讓使用者先體驗到價值,再引導他們深入
  • 速度至關重要——延遲會直接扼殺使用者的參與度

Figure 6.5: 延遲增加時,使用者參與度下降

想像你的使用者正站在門口猶豫。你的工作是把門打開、鋪好紅毯,而不是設置重重障礙。

衡量使用量,而非使用者數#

下載次數是一個虛榮指標,真正重要的是活躍使用量

  • 7 Day Actives(7 日活躍使用者):過去 7 天內使用過產品的人數
  • 30 Day Actives(30 日活躍使用者):過去 30 天內使用過產品的人數

這些指標才能真正反映你的軟體是否持續為使用者提供價值。一百萬次下載但只有一千個活躍使用者,代表你的產品有嚴重問題。

不要貪多#

做一個烤麵包機,而不是瑞士刀。

  • 不要試圖成為萬能工具
  • 專注於解決常見問題,並且把它做好
  • 功能膨脹(Feature Creep)是軟體品質的敵人

Figure 6.6: 不要試圖成為萬能工具

試圖取悅所有人,最終會讓所有人都不滿意。找到你的核心價值,專注做好它。

不要偷懶#

不要因為「對工程師來說比較方便」就走捷徑,犧牲使用者體驗。專注於使用者需要什麼,而非你寫程式時什麼最方便。

Figure 6.7: 功能過多讓使用者不知所措

成功的產品會隱藏複雜性

  • Apple 的 iTunes/iPod:背後有龐大的技術複雜性,但使用者看到的是極簡的介面
  • Google Search:背後是全世界最複雜的系統之一,但使用者看到的只是一個搜尋框

工程師的工作是承擔複雜性,讓使用者享受簡單。

管理與使用者的關係#

使用者最基本的需求是被聽見

Figure 6.8: 使用者最重要的需求是被聽見

「客戶服務是一種哲學,而非一個部門。」(Customer service is a philosophy, not a department.)

與使用者溝通的原則#

  • 即使你不同意使用者的意見,也要先認可他們的感受
  • 提供直接的溝通管道:Bug Tracker、Mailing List、開源社群
  • 讓使用者感覺他們的聲音被重視,而非被忽略

Figure 6.9: 使用者數量與產品複雜度隨時間成長

Figure 6.10: 使用者的技術能力下降與絕望感上升

認可不代表同意。你可以說「我理解你的困擾」,同時解釋為什麼某個設計決策是合理的。

不要傲慢#

使用者不笨。 他們只是擁有不同的詞彙和不同的心智模型。

  • 使用者用他們自己的方式理解世界,這不代表他們的理解方式是錯的
  • 要有耐心,嘗試用使用者能理解的語言溝通
  • 經典的故事:奶奶把 Mac 的 CD 槽當成削鉛筆機——這不是奶奶笨,是設計沒有防呆

Figure 6.11: 奶奶的 Mac 與削鉛筆機

工程師需要放下技術優越感,真正尊重使用者的視角。

建立信任與驚喜#

信任就像銀行帳戶——需要長時間慢慢存入,但可以在一瞬間全部提光。

信任的脆弱性#

  • Netflix 漲價事件就是一個經典的反面教材:突然大幅調漲價格,且溝通方式讓使用者感覺被輕視,導致大量使用者流失和品牌信譽受損

用驚喜取悅使用者#

  • Google Doodles:在首頁放上各種創意 Logo,讓使用者每次造訪都有小驚喜
  • April Fools 活動:用幽默感與使用者建立情感連結

Figure 6.12: 給使用者一點小驚喜

在不破壞信任的前提下,適時給使用者一些意料之外的愉悅體驗,能大幅提升他們對產品的好感度。

記住使用者#

與使用者建立良好關係的三大支柱:

  • 行銷(Marketing):管理認知——使用者如何看待你的產品
  • 易用性(Usability):降低門檻——使用者能否輕鬆使用你的產品
  • 客戶服務(Customer Service):維護關係——使用者在使用過程中是否感到被重視

軟體工程不只是寫程式。你的程式碼最終是為人服務的。忘記這一點,你就失去了做這件事的意義。

這三者缺一不可。技術再好,如果使用者不知道、用不了、或感覺不被尊重,產品就不會成功。工程師需要拓展自己的視野,超越純技術的思維,真正把使用者當成一個完整的人來對待。