[現代軟體工程講義 的一部分]
軟體開發的過程, 就是 “使用者最需要的東西” 在下面這一鏈條中傳送,轉換,實現,扭曲或丟失的過程。
使用者最需要的 >
使用者表達出來的 >
軟體團隊能理解的 (老闆/PM) + 團隊的商業目標 >
軟體團隊成員具體表達出來的 (PM 寫 spec) >
在各種約束條件下, 具體執行表達出來的 (dev 寫代碼) >
驗證通過的 (Test) >
通過各種渠道告訴目標使用者 (發布/推廣) >
使用者終於能用上了,但是他們不滿意 >
軟體業界有一個非常著名的鞦韆圖表達了類似的情形:
( 這就是使用者要的, 使用者表達出來了麼, 軟體團隊理解了麼, 執行了麼, 使用者滿意麼? )
( 也許公司擅長三層架構, 因此鞦韆也要三層的 )
( PM 寫出了 spec )
( 開發人員根據 spec 寫出了功能 )
( 測試人員最後同意發布的軟體 )
和使用者想要的一樣麼? 不一樣. 使用者滿意嗎? 不滿意, 那使用者到底想要啥? 我們調查一下, 然後開始新的迴圈...
我們在開發軟體的時候,總想知道使用者到底想的是什麼, 對各種功能的偏好是什麼, 掌握這些資訊,我們就可以按部就班地去滿足使用者的需求。 大家可以靠直覺,靠老闆的命令,靠互連網上傳來的各種資訊,靠拷貝其它軟體, 靠其它不靠譜的手段… 當然我們也可以靠一些經過實踐證明行之有效辦法。 下面是幾種使用者調研 (User Study) 的方法:
1) 焦點小組 (Focus Group)
找到一群目標使用者的代表來討論使用者想要什麼, 使用者對軟體的評價等等。 焦點小組是很常用的調研方法,它也有一些弱點:
- 一群人在一起,往往大家會出於討好其他人的心理來發表意見,避免不一致的意見或衝突。
- 討論者對於他們不熟悉的事物 (例如顛覆式的創新) 不能表達有價值的想法 - 在汽車出現之前, 我們找一幫馬車夫來暢想 “未來的交通工具”, 他們未必會貢獻很有價值的想法。
- 討論的人群容易受到主持人有意或無意的影響。
- 研究者往往從不同意見中挑選最符合自己想法的哪些,然後號稱這就是大家的共識。
2) 深入面談 (in-depth interview)
通過詳細的面談,廣泛而深入地瞭解使用者的背景,心理,需求等。這通常是一對一的採訪。這個方法好是好, 就是費人費時。
3) 卡片分類 (Card Sorting)
列出所希望的軟體有什麼樣的特點, 然後把這些特點歸類。在微軟亞洲研究院的時候,我們也曾做過“卡片排序” - 幾個不同背景的人聚在一起, 想象新軟體有什麼特點, 能解決自己的什麼痛苦, 或者有什麼好玩的地方, 把這些特點都寫在小卡片上, 一個主持人再把不同的卡片歸類, 討論, 進一步理清各種願望的關係。 從某種意義上來說, 這些卡片就是量化了的焦點小組的意見,這些卡片經過歸類/排序/定義等過程, 可以協助我們更好地定義一個軟體的資訊架構,使用者的工作流程,軟體菜單結構,網站的瀏覽路徑,各種內容的層次關係等。
4) 使用者調查問卷 (User Survey)
給使用者事先規定好的問題, 讓使用者回答。 我們在大街上碰到過不少,有時候你在瀏覽某個網站的時候,一個彈窗打斷了你的思路,它請你回答幾個問題。我們使用者在回答這類問題的時候,是否心不在焉,亂點一氣?
使用者調查問卷看似容易, 其實大有門道,下面是一些常見問題:
a) 問題定義不準確, 例如: 你用哪一個搜尋引擎? 使用者可能提供多個合理的答案: 最近使用的; 最喜歡的但是未必最經常使用的 (例如最喜歡的搜尋引擎由於某種原因訪問不了); 為某一個領域而使用的 (例如查映像或英語單詞); 最近一周/一月/一年使用電搜尋引擎也會有不同。
定義不準確的問題會讓使用者困惑, 我們也許能收集到很多答案,但仍然無法準確瞭解使用者的想法。
b) 使用了含糊的形容詞、副詞,來述時間、數量、頻率、價格等: 最近、有時、經常、偶爾、很少、很多、相當多、很貴、很便宜。這些詞語對不同使用者和在不同的語境中有不同的意義。
c) 讓使用者花額外的努力來回答問題: 請問你全家平均每人每年下載多少手機應用軟體?
d) 問題帶有引導性的傾向: 使用者普遍認為, 搜尋引擎A 收錄了許多侵犯著作權的資料而拒絕承認錯誤, 搜尋引擎B 則贏得使用者信任, 你會選擇A 或B?
e) 問題涉及使用者隱私, 使用者所在公司的情況等。
使用者調查問卷的問題可以有下面的這些方式, 大家可以更加具體情況使用:
a) 全開放式問題: 例如: 你對手機上的議程管理軟體的期望是: ________________
這種問題能讓使用者暢所欲言,但是比較難於整理和量化。
b) 二項選擇題: 使用者只用回答 是/否 即可。 這類問題便於統計處理,分析也比較容易。但使用者沒有進一步闡明理由的機會,難以反映意見與程度的差別,瞭解的情況也不夠深入。
這個類型還有一個變種, 就是在兩種選擇對比中只能選其中之一。
c) 多項選擇題,大家在平時的考試中碰到多次。
d) 順位選擇題: 您選擇手機背單詞軟體的主要考慮因素是 (按照優先順序填寫 1, 2, 3, … ): _ 詞彙量; _ 能記錄進度; _ 能定製單詞表; _ 能和PC 同步; _ 能支援4/6級等專門詞庫; _ 能支援發音。
5) 使用者日誌研究 (User Diary Study)
要求使用者記錄自己日常工作或生活中和所用軟體相關的行為, 供以後分析。 使用者可以寫像日記體的文字描述, 也可以每天填表 (例如跟蹤自己每天飲食種類) 。 我個人理解,這時使用者調查在時間上的延長。 這要求使用者有很高的自律能力, 另外, 如何保護使用者的隱私也是一個問題。
6) 民族志/人種學研究 (Ethnographic Study)
這個聽起來非常學術的方法其實可以解釋為 - 和目標使用者同吃同住同勞動。 例如,與其坐在辦公室裡想象如何給老年人設計手機, 不如去和老年人生活幾天,從生活中得到資料和體會。 這是一個論文例子。
人類學的使用者調查聽起來很高深, 其實未必 - 也許你一直生活在目標人群中, 只不過你對這些需求不夠敏感罷了。 在《the social network》 這部電影中, Mark 的一個同學問他, 你知道某某女生是不是有男朋友? Mark 沉思一會, 不理會這個同學,徑直跑回宿舍,在 “thefacebook.com” 這個網站上實現 “你有朋友了麼”這一功能。
一些有想法的大學生們都在象牙塔裡面指點江山, 激揚文字。 走到真實的世界中去, 你才會看到真實的需求, 下面是同學的頓悟:
http://www.cnblogs.com/meng-meng/archive/2011/11/14/2248589.html
我平時接觸的同學都是電腦專業的,我平時上的網站都geek味或hacker味十足。我幾乎從來不用qq,我從來不上百度貼吧,我從來不打遊戲,我不用360也不用任何殺毒軟體,我不用hao123做首頁。我沒事看看google reader,我翻*牆上twitter和facebook,我常逛hacker news和quora,我樂於嘗試國外的各種新鮮酷站,我從來沒為軟體或服務付過費。
原來我並不瞭解海量中國使用者,原來真實的使用者並不是我想象的那樣。
以前我不理解為什麼360的裝機量那麼大,現在我懂了:1.海量使用者並不知道如何管理使用電腦,360那種傻瓜式的一鍵解決才是他們需要的,2.他們不想花錢,但是不會找什麼“破解版”,“序號”,“註冊機”
以前我不理解為什麼hao123這麼“弱智”的網站能有這麼大影響,現在我懂了,我爸爸可以通過它非常輕鬆的到新浪上看新聞,但如果你讓他直接輸入網址的話,他肯定會輸入“xinlang.com”
以前我不理解為什麼有那麼多人願意為了qq上的虛擬人偶付錢,現在我懂了,我表姐她們只要上網肯定掛qq,而且女孩都愛漂亮愛虛榮,她們不在乎花點錢打扮打扮自己。
我看過一些非電腦系的同學的電腦,大多淩亂不堪,檔案隨處亂放,軟體都是預設裝在了C盤,安裝的過程中還被捆綁了一堆流氓軟體,各種軟體都是開機啟動,沒有3分鐘根本開不開機……
這是2013年一篇對中國三線城市數字生活的描述 ( 作者潘越飛), 算不算人類學調查的一種呢?
7) 軟體可用性研究 (Usability Study)
研究使用者在使用軟體的時候有哪些困難, 並如何改進軟體,讓軟體更好用。 常用的方法是請使用者來 微軟有專門的 User Study Studio, 經常招募目標使用者來做實驗,我也曾實地參觀過使用者使用新版本的Outlook (我們在單向玻璃窗後面)。 更多的團隊成員可以在事後看這些使用者調研的錄影。 調查人員通常讓被試者完成一些任務,例如:
在Excel 中, 你想把一個表格中的行和列互換,你怎麼能做到呢?
過年了你要想不少客戶都發送內容相似的賀年郵件, 但是客戶的名稱和地址都各不相同, 你怎麼用Word/Outlook 完成這個任務?
在Excel 軟體中, 你在看一些大的表格的時候,要來回移動,但是這樣表格的標題列就看不到了,怎麼樣鎖定標題列呢?
我印象很深的一點是 - 使用者在我們長長的菜單中幽幽暗暗反反覆複中尋找某個功能,我們在玻璃窗後面替他著急… 我們的介面離 “平平淡淡從從容容才是真” 差太遠了。
8) 眼動跟蹤研究 (Eye Tracking)
你的軟體展現了很多資訊, 也有很多互動的控制, 怎樣才能讓使用者容易找到看到你想讓他們看到的資訊,找到他們想使用的功能? 使用者看網頁上的眾多內容通常是什麼樣的規律? 一些研究發現了 F 模式.
使用者通常瀏覽通欄標題, 然後目光沿著左側下行, 再平行瀏覽下面的子標題。如果你有重要內容希望使用者知道, 應該放在什麼地方呢?
9) 紙上模型調研 (Paper Prototype)
如果要把軟體做好了, 再去找使用者做調查, 未免太費時,並且修改的成本很高。能否快速地取得使用者的反饋? 這時不妨拿一些紙張模型, 讓使用者去使用, 得到反饋。 這種方法我沒有做過,但是聽上去不錯。這也是使用者參與式的設計 (Participatory Design) 的一個例子。另外,模型不一定要用紙, 用小木頭塊也行 - Palm Pilot 的創始人Jeff Hawkins 就用一塊小木板做得和設計中的實物一樣,他把它放在上衣口袋中, 時不時拿出來寫寫畫畫... 最後發布的 Palm Pilot 及其系列產品開創了 PDA 這樣一個新行業。
10) A/B 測試 (A/B Testing)
如果你已經有一些使用者在使用你的產品,你想對使用者介面做一些改進,但是又不知道到底有多少使用者會喜歡新的介面,怎麼辦?
例如你的網站是兩列的布局,但是你很想試一下三列的布局方式, 就像題圖一樣。
例如你想用彈窗來促使使用者對某個重要訊息的作出反應, 是把彈窗放在右下角呢,還是放在螢幕中央?
這時候,你是找新的使用者去做一對一的深入調研,或者跑到大街上去發調查問卷? 為什麼不能讓你現有的使用者告訴你哪一種設計比較好呢? 這時候不妨考慮A/B Test.
A/B 測試看起來很簡單:
1) 決定實驗哪兩種不同的UI, 以及衡量標準, 資料收集流程, 實驗已耗用時間, 人數
2) 在技術上實現 A/B 測試 (通常在 5% – 10% 的使用者上運行實驗)
3) 收集資料, 分析資料, 形成結論
Wired 雜誌寫了一篇關於A/B 測試的文章 – 用奧巴馬競選作為例子, 很值得一看。
很多互連網公司都在用A/B 測試, 研究員們也在用這個方法做研究, 你去訪問它們的網站的時候, 有可能就是給它們做了實驗, 看 Amazon 和 Microsoft 的例子 (論文).
A/B 測試當然也有弱點:
a) 運行成本隨著時間的推移而變大, 增加網站營運的複雜度,對網站資料收集和資料採礦的能力也是一個考驗。
b) 使用者的情緒反映你看不到,你只看到互動的行為, 但是互動的行為不是使用者的全部反饋。 (例如你看到使用者點擊螢幕中央的廣告更多, 但是也許有更多的使用者咒罵螢幕中央的廣告)
c) 要分清各種因素的關係, 例如,網站 “改版三列布局” 和 “使用者在網站停留時間” 之間是下面的哪一種關係?
- 不相關, 當前收集到的資料只是隨機的
- 相關, 但不是決定因素
- 因果關係
d) 用網站當前的使用者做實驗, 萬一引起巨大的反感, 使用者就真的流失了。
態度 : 行為 定性 : 定量
表示了這些方法在 (態度 : 行為 定性 : 定量) 上的分野:
使用者有多種
我們說了這麼多使用者調研, 很多人假設評價軟體的就是購買軟體的,就是使用軟體的,但是未必。看下面的例子:
a) 你要寫一個中學生學習英語的軟體,你找誰去做使用者調研?
中學生 - 終端使用者
家長 - 他們是要掏錢的人,他們不會每天都用軟體,有些人都不太會英語,但是他們也有需求
學校老師 - 他們是有巨大影響力的人,他們說不定立下一道規矩,我們班級就用某某軟體!
b) 你要寫一個企業管理軟體, 你要找誰去做使用者調研?
做過頭了會怎樣?
我們有這麼多各式各樣的工具, 互連網給我們帶來了這麼多使用者和資料, 這是好事, 也有副作用。
世界上能訪問使用者資料, 並根據資料做分析和改進的公司, 大概 Google 是其中翹楚, 這種 data-centric 的做法做過了頭, 也有悲劇發生:
Douglas Bowman 曾經是Google 的視覺設計主管, 2009 年的一天, 他受不了了:
Yes, it's true that a team at Google couldn't decide between two blues, so they're testing 41 shades between each blue to see which one performs better. I had a recent debate over whether a border should be 3, 4, or 5 pixels wide, and was asked to prove my case. I can't operate in an environment like that. I've grown tired of debating such minuscule design decisions...
當你的公司要你用資料來證明 41 種藍色到底哪一種更好, 或者為一個側邊欄寬度是3, 4, 或5 而爭執不休, 紛紛表示要拿資料來證明的時候, 你怎麼辦?