為什么用戶不去使用他們強(qiáng)烈要求添加的功能?
神譯局是36氪旗下編譯團(tuán)隊(duì),關(guān)注科技、商業(yè)、職場、生活等領(lǐng)域,重點(diǎn)介紹國外的新技術(shù)、新觀點(diǎn)、新風(fēng)向。
編者按:用戶想要什么?每當(dāng)你這么去問用戶,他們都會自認(rèn)為地給一個你想要聽到的答案。絕大多數(shù)的人幾乎不太清楚自己想要什么,所以停止向你的用戶詢問,他們到底想要什么,不要讓他人的想象力限制你的想法。本文來自編譯。
眾所周知,在用戶調(diào)研中,如果你問一個用戶是否想要一個新的功能,他們往往會大聲回答 “想要”。誰不想要更多的功能呢?盡管他們可能不會真的使用這個功能,而你可能在功能發(fā)布后才意識到這個問題。
我們都聽過這樣的故事:我完全按照用戶告訴我想要的東西打造產(chǎn)品,然而他們卻不去用。有很多證據(jù)表明這些功能背后的用戶需求。那么,為什么用戶不用這些功能呢?
追逐夢想
能在微軟工作一直是我的夢想。二十年前,我第一次使用Visual Studio接觸到編程。我從Visual Basic 6開始,然后轉(zhuǎn)到Visual C++ 6,再到Visual C# 2008。在我早期的一份軟件工作中,我的經(jīng)理在績效審查會議上問我,“比起這里,你更愿意在哪里工作?” 我回答說是微軟。
讀研期間,我看到微軟在我研究的領(lǐng)域里發(fā)表了很多優(yōu)秀的論文。甚至好像所有著名的教授都至少在微軟實(shí)習(xí)了一個暑假。但我不知道如何進(jìn)入他們的領(lǐng)域,我在會議上與微軟的研究人員交談了幾次,但我仍然不在他們的雷達(dá)范圍。
所以有一天晚上,我向兩個我想去的微軟的團(tuán)隊(duì)發(fā)送了電子郵件。幾天后,進(jìn)行了微軟的第一次視頻面試,接下來的一周又進(jìn)行了幾次面試。
我在微軟得到了一份研究實(shí)習(xí)的機(jī)會。
這個職位是一個綜合性的角色,我與研究人員和開發(fā)者工具(dev tools)團(tuán)隊(duì)一起工作。具體來說,是在一個內(nèi)部工具和服務(wù)上的工作,用于公司內(nèi)部進(jìn)行代碼審查,每周大約有30,000人使用這個工具。
我一開始花了很多時間來了解代碼審查過程。我跟蹤開發(fā)人員進(jìn)行代碼審查,我分析了來自代碼審查網(wǎng)絡(luò)服務(wù)的遙測數(shù)據(jù),我錄了開發(fā)人員進(jìn)行代碼審查時的屏幕,我還采訪了開發(fā)人員關(guān)于代碼審查的情況。事實(shí)上,在我開始實(shí)習(xí)之前,我甚至做了一份關(guān)于代碼審查的研究論文的文獻(xiàn)綜述,這樣我就可以在第一天到場的時候做好準(zhǔn)備。
現(xiàn)在,我只需要做一個工具來解決現(xiàn)存的問題。
我們打造了他們所要求的
我們的目標(biāo)是創(chuàng)建一個自動代碼審查器,在代碼審查中提供程序分析反饋。這樣,整個團(tuán)隊(duì)都可以看到反饋,而不是只有代碼修改者能看到,他們可以把時間花在設(shè)計討論上,而不是表面的吹毛求疵。此外,還將簡化請求構(gòu)建、運(yùn)行程序分析器和運(yùn)行測試的過程,這可能需要很多時間,對于一些團(tuán)隊(duì)來說,這些都是在審查過程中很晚的階段才完成的。自動審查將在整個審查過程中保持參與,并自動更新反饋。
打造最初的原型工具所花的時間,比我們最初預(yù)期的要長得多。我本應(yīng)該使用一些現(xiàn)有的基礎(chǔ)設(shè)施作為基礎(chǔ),只需針對我們的使用情況做一些調(diào)整。這最多需要兩周時間,我們是這么想的。結(jié)果發(fā)現(xiàn)有幾個小插曲:參與我們想用的那個項(xiàng)目的人都離開了公司,我們不知道如何建立源代碼,有大約50萬行代碼,而且我們找到的一個了解這個項(xiàng)目的人,已經(jīng)提前13個小時不再回復(fù)我們的電子郵件。
沒辦法,我只能從頭開始重寫我們需要的東西,而我的實(shí)習(xí)時間已經(jīng)在倒計時了。
一個月之后,我向一些經(jīng)理和開發(fā)人員演示了我們的自動代碼審查器的原型。他們給出了積極的反饋,并同意讓我們在他們的團(tuán)隊(duì)中試用這個工具。我寫了一個關(guān)于如何使用的簡短教程,并把它發(fā)給了各個團(tuán)隊(duì)。我花了一個周末的時間來修復(fù)錯誤,并將其設(shè)置為能夠在 “真實(shí)世界”中使用。
我們設(shè)計了這個工具。
幾乎沒有人使用這個工具。少數(shù)人用了,也只用了一兩次,幾乎不與它互動。幾天后,沒有任何人在使用。
那么為什么他們要告訴我,他們想要這些功能?
用戶研究沒有終點(diǎn)線
我感到挫敗,夏天很快就過去了。這個項(xiàng)目在進(jìn)行過程中已經(jīng)遇到了十幾個不同的障礙。我已經(jīng)準(zhǔn)備好放棄了。無論如何,我現(xiàn)在可以在我的簡歷上寫上微軟了,不是嗎。
我休了個周末,試著不去想它。
每天早上,在大多數(shù)人到公司之前,我在辦公室喝一杯美式咖啡和美味的巧克力牛奶。
然后我的動力來了,就像那天晚上我鼓起勇氣發(fā)電子郵件,讓我得到了實(shí)習(xí)的機(jī)會,我在周一早上6點(diǎn)到了辦公室(從中部時區(qū)搬到西海岸的好處),并開始勾畫出一個計劃。當(dāng)我的導(dǎo)師到達(dá)時,我告訴他們給我一周時間,我打算把這個問題搞清楚。
這不是用戶的錯。他們沒有對我撒謊,他們確實(shí)遇到了問題,他們確實(shí)想要一個解決方案。我只是忽略了一些東西,我所要做的就是回去觀察,答案就在那里。
我進(jìn)行了一個小型的實(shí)驗(yàn)室研究,再次看看人們是如何進(jìn)行代碼審查的。但我也要求他們使用我的工具做一次代碼審查。我?guī)缀鯖]有給他們?nèi)魏侮P(guān)于如何使用的指示,我一步一步地觀察著。
我給最初使用工具的幾個開發(fā)人員發(fā)了電子郵件,試圖了解他們對這個工具的想法。
轉(zhuǎn)折點(diǎn)
有一個問題變得很明顯,我一直在錯誤的地方尋找答案。甚至不是關(guān)于我們的工具所提供的功能,而是這個工具是如何融入他們的工作流程。或者在這種情況下,這個工具需要他們的工作流程進(jìn)行一個微小但明確的改變,才能開始使用。許多開發(fā)人員甚至不知道我們工具的存在,我從來沒有想過這會是一個問題,我們以前從未討論過這個問題。
在與我的導(dǎo)師們進(jìn)行頭腦風(fēng)暴后,他們很快就想出了一個解決方案。我們將工具的一部分從桌面應(yīng)用轉(zhuǎn)移到網(wǎng)絡(luò)服務(wù),監(jiān)聽代碼審查,然后自動啟動我們的功能,而不需要任何明確的命令。這樣一來,開發(fā)人員的工作流程就完全沒有變化了! 這就是默認(rèn)選項(xiàng)的力量。
留我們的時間很短,但要創(chuàng)建一個網(wǎng)絡(luò)服務(wù)來做這件事是一個相當(dāng)小的任務(wù)。有一個現(xiàn)有的API,負(fù)責(zé)處理困難的部分。
這一次,我們希望在部署方面更加謹(jǐn)慎。開發(fā)人員可能會給我們第二次機(jī)會,但我懷疑他們會給我們第三次機(jī)會。我們的計劃是部署到一個與我們同在一棟樓里的小團(tuán)隊(duì),并迅速得到他們的反饋。我們清楚地告訴他們,他們是我們的重中之重,我們對他們關(guān)于這個工具的意見非常重視。
“太多的無用評論”
開發(fā)人員用了,但他們感到沮喪。工具使他們的信息量過大,妨礙了他們的工作。我收到了一兩封憤怒的電子郵件。根據(jù)我們在開發(fā)過程中所測試的用例,我們不可能預(yù)見到這種情況的發(fā)生。但如果我們更接近我們的客戶,我們就會看到。我應(yīng)該看到這一點(diǎn)的,這是另一個教訓(xùn)。
我們在工具中加入了一些硬性限制,不再用信息轟炸代碼審查。我們過濾掉了可能不太相關(guān)或低優(yōu)先級的分析警告,匯總了重復(fù)出現(xiàn)的警告,并對顯示的警告數(shù)量設(shè)置了最大限制。我們還增加了自動審查的狀態(tài)更新,這樣用戶就能確切地知道系統(tǒng)處于什么狀態(tài)。事后看來,開發(fā)者想要的東西都是完全合理和符合邏輯的,甚至是顯而易見的。
是時候向所有最初同意使用我們工具的團(tuán)隊(duì)再重新部署一次了。
我們進(jìn)行了四次檢查,確認(rèn)一切準(zhǔn)備就緒,然后再四次檢查。我們給經(jīng)理們發(fā)了一封電子郵件,告訴他們,我們將默認(rèn)為他們的所有代碼審查打開我們的工具。
最后的嘗試
我點(diǎn)擊了一個按鈕來部署。
我的實(shí)習(xí)期只剩下一個多星期了。如果事情再次惡化,就沒有時間去調(diào)整了。我真的只有時間修復(fù)小錯誤,收集更多的定性數(shù)據(jù),并向更多的團(tuán)隊(duì)展示我的項(xiàng)目。計劃是在我回到大學(xué)后收集幾個月的使用數(shù)據(jù),然后在某個地方提交一篇論文。
在99號樓舉行的實(shí)習(xí)結(jié)束報告會。
我祈禱這個工具能在很長一段時間內(nèi)幫助開發(fā)人員進(jìn)行代碼審查。
快進(jìn)到幾個月后,我們遇到了另一個問題。分析使用數(shù)據(jù)并不像我們希望的那樣直接。我們對所記錄的數(shù)據(jù)做了一些錯誤的假設(shè)。由于我不再是微軟的雇員,我不得不通過電子郵件寫數(shù)據(jù)庫查詢,并等待有人有空閑時間來運(yùn)行,然后把匿名的匯總結(jié)果發(fā)給我。
人們確實(shí)使用了這個工具!我們把它部署在三個團(tuán)隊(duì)的98名軟件工程師身上,為期15周。它被41位不同的作者和883位獨(dú)特的審查者用于354次代碼審查。它在代碼審查中發(fā)布了149條分析評論(加上構(gòu)建和測試框架的狀態(tài)更新)。它本來可以發(fā)布更多的評論,但特定的分析警告可以被團(tuán)隊(duì)取消。
通過分析使用數(shù)據(jù)和電子郵件發(fā)送調(diào)查,我們發(fā)現(xiàn)有證據(jù)表明這個工具提高了溝通、生產(chǎn)力和審查質(zhì)量。用戶報告了壓倒性的贊譽(yù),以及可以改進(jìn)的功能要求和方案。
最后,我們在一個頂級會議上發(fā)表了一篇精彩的論文。不僅如此,微軟的幾個團(tuán)隊(duì)還主動聯(lián)系我,了解這個工具的設(shè)計原理,因?yàn)樗麄兿霝樽约旱膱F(tuán)隊(duì)重新創(chuàng)建這個工具。
寫下這個故事讓所有的問題和解決方案聽起來都很明顯,但這是從事后來看……
讓我們回顧一下我學(xué)到的一些經(jīng)驗(yàn)。
始終讓你的用戶參與進(jìn)來,不要孤立地去建設(shè)。
不要低估那些你只能從外部看到的工程挑戰(zhàn)。
經(jīng)常定期向你的團(tuán)隊(duì)表達(dá)關(guān)切。他們可能會比你更快地解決這些問題,或者他們可能會發(fā)現(xiàn)什么這會變成一個主要的障礙。
準(zhǔn)備好遭遇波折。
用戶說什么是有原因的,但可能有深層次原因。
如果你假定用戶會做什么,他們會找到一種方法讓你吃驚。
如果功能不容易使用,不管做的有多好,都沒人會用。
用戶的工作流程就是一切。(我一直在重新學(xué)習(xí)這一課……)
用戶比你想象的要聰明得多。
譯者:蒂克偉