神譯局是36氪旗下編譯團(tuán)隊(duì),關(guān)注科技、商業(yè)、職場(chǎng)、生活等領(lǐng)域,重點(diǎn)介紹國(guó)外的新技術(shù)、新觀點(diǎn)、新風(fēng)向。
編者按:用戶想要什么?每當(dāng)你這么去問(wèn)用戶,他們都會(huì)自認(rèn)為地給一個(gè)你想要聽(tīng)到的答案。絕大多數(shù)的人幾乎不太清楚自己想要什么,所以停止向你的用戶詢問(wèn),他們到底想要什么,不要讓他人的想象力限制你的想法。本文來(lái)自編譯。
眾所周知,在用戶調(diào)研中,如果你問(wèn)一個(gè)用戶是否想要一個(gè)新的功能,他們往往會(huì)大聲回答 “想要”。誰(shuí)不想要更多的功能呢?盡管他們可能不會(huì)真的使用這個(gè)功能,而你可能在功能發(fā)布后才意識(shí)到這個(gè)問(wèn)題。
我們都聽(tīng)過(guò)這樣的故事:我完全按照用戶告訴我想要的東西打造產(chǎn)品,然而他們卻不去用。有很多證據(jù)表明這些功能背后的用戶需求。那么,為什么用戶不用這些功能呢?
追逐夢(mèng)想
能在微軟工作一直是我的夢(mèng)想。二十年前,我第一次使用Visual Studio接觸到編程。我從Visual Basic 6開(kāi)始,然后轉(zhuǎn)到Visual C++ 6,再到Visual C# 2008。在我早期的一份軟件工作中,我的經(jīng)理在績(jī)效審查會(huì)議上問(wèn)我,“比起這里,你更愿意在哪里工作?” 我回答說(shuō)是微軟。
讀研期間,我看到微軟在我研究的領(lǐng)域里發(fā)表了很多優(yōu)秀的論文。甚至好像所有著名的教授都至少在微軟實(shí)習(xí)了一個(gè)暑假。但我不知道如何進(jìn)入他們的領(lǐng)域,我在會(huì)議上與微軟的研究人員交談了幾次,但我仍然不在他們的雷達(dá)范圍。
所以有一天晚上,我向兩個(gè)我想去的微軟的團(tuán)隊(duì)發(fā)送了電子郵件。幾天后,進(jìn)行了微軟的第一次視頻面試,接下來(lái)的一周又進(jìn)行了幾次面試。
我在微軟得到了一份研究實(shí)習(xí)的機(jī)會(huì)。
這個(gè)職位是一個(gè)綜合性的角色,我與研究人員和開(kāi)發(fā)者工具(dev tools)團(tuán)隊(duì)一起工作。具體來(lái)說(shuō),是在一個(gè)內(nèi)部工具和服務(wù)上的工作,用于公司內(nèi)部進(jìn)行代碼審查,每周大約有30,000人使用這個(gè)工具。
我一開(kāi)始花了很多時(shí)間來(lái)了解代碼審查過(guò)程。我跟蹤開(kāi)發(fā)人員進(jìn)行代碼審查,我分析了來(lái)自代碼審查網(wǎng)絡(luò)服務(wù)的遙測(cè)數(shù)據(jù),我錄了開(kāi)發(fā)人員進(jìn)行代碼審查時(shí)的屏幕,我還采訪了開(kāi)發(fā)人員關(guān)于代碼審查的情況。事實(shí)上,在我開(kāi)始實(shí)習(xí)之前,我甚至做了一份關(guān)于代碼審查的研究論文的文獻(xiàn)綜述,這樣我就可以在第一天到場(chǎng)的時(shí)候做好準(zhǔn)備。
現(xiàn)在,我只需要做一個(gè)工具來(lái)解決現(xiàn)存的問(wèn)題。
我們打造了他們所要求的
我們的目標(biāo)是創(chuàng)建一個(gè)自動(dòng)代碼審查器,在代碼審查中提供程序分析反饋。這樣,整個(gè)團(tuán)隊(duì)都可以看到反饋,而不是只有代碼修改者能看到,他們可以把時(shí)間花在設(shè)計(jì)討論上,而不是表面的吹毛求疵。此外,還將簡(jiǎn)化請(qǐng)求構(gòu)建、運(yùn)行程序分析器和運(yùn)行測(cè)試的過(guò)程,這可能需要很多時(shí)間,對(duì)于一些團(tuán)隊(duì)來(lái)說(shuō),這些都是在審查過(guò)程中很晚的階段才完成的。自動(dòng)審查將在整個(gè)審查過(guò)程中保持參與,并自動(dòng)更新反饋。
打造最初的原型工具所花的時(shí)間,比我們最初預(yù)期的要長(zhǎng)得多。我本應(yīng)該使用一些現(xiàn)有的基礎(chǔ)設(shè)施作為基礎(chǔ),只需針對(duì)我們的使用情況做一些調(diào)整。這最多需要兩周時(shí)間,我們是這么想的。結(jié)果發(fā)現(xiàn)有幾個(gè)小插曲:參與我們想用的那個(gè)項(xiàng)目的人都離開(kāi)了公司,我們不知道如何建立源代碼,有大約50萬(wàn)行代碼,而且我們找到的一個(gè)了解這個(gè)項(xiàng)目的人,已經(jīng)提前13個(gè)小時(shí)不再回復(fù)我們的電子郵件。
沒(méi)辦法,我只能從頭開(kāi)始重寫(xiě)我們需要的東西,而我的實(shí)習(xí)時(shí)間已經(jīng)在倒計(jì)時(shí)了。
一個(gè)月之后,我向一些經(jīng)理和開(kāi)發(fā)人員演示了我們的自動(dòng)代碼審查器的原型。他們給出了積極的反饋,并同意讓我們?cè)谒麄兊膱F(tuán)隊(duì)中試用這個(gè)工具。我寫(xiě)了一個(gè)關(guān)于如何使用的簡(jiǎn)短教程,并把它發(fā)給了各個(gè)團(tuán)隊(duì)。我花了一個(gè)周末的時(shí)間來(lái)修復(fù)錯(cuò)誤,并將其設(shè)置為能夠在 “真實(shí)世界”中使用。
我們?cè)O(shè)計(jì)了這個(gè)工具。
幾乎沒(méi)有人使用這個(gè)工具。少數(shù)人用了,也只用了一兩次,幾乎不與它互動(dòng)。幾天后,沒(méi)有任何人在使用。
那么為什么他們要告訴我,他們想要這些功能?
用戶研究沒(méi)有終點(diǎn)線
我感到挫敗,夏天很快就過(guò)去了。這個(gè)項(xiàng)目在進(jìn)行過(guò)程中已經(jīng)遇到了十幾個(gè)不同的障礙。我已經(jīng)準(zhǔn)備好放棄了。無(wú)論如何,我現(xiàn)在可以在我的簡(jiǎn)歷上寫(xiě)上微軟了,不是嗎。
我休了個(gè)周末,試著不去想它。
每天早上,在大多數(shù)人到公司之前,我在辦公室喝一杯美式咖啡和美味的巧克力牛奶。
然后我的動(dòng)力來(lái)了,就像那天晚上我鼓起勇氣發(fā)電子郵件,讓我得到了實(shí)習(xí)的機(jī)會(huì),我在周一早上6點(diǎn)到了辦公室(從中部時(shí)區(qū)搬到西海岸的好處),并開(kāi)始勾畫(huà)出一個(gè)計(jì)劃。當(dāng)我的導(dǎo)師到達(dá)時(shí),我告訴他們給我一周時(shí)間,我打算把這個(gè)問(wèn)題搞清楚。
這不是用戶的錯(cuò)。他們沒(méi)有對(duì)我撒謊,他們確實(shí)遇到了問(wèn)題,他們確實(shí)想要一個(gè)解決方案。我只是忽略了一些東西,我所要做的就是回去觀察,答案就在那里。
我進(jìn)行了一個(gè)小型的實(shí)驗(yàn)室研究,再次看看人們是如何進(jìn)行代碼審查的。但我也要求他們使用我的工具做一次代碼審查。我?guī)缀鯖](méi)有給他們?nèi)魏侮P(guān)于如何使用的指示,我一步一步地觀察著。
我給最初使用工具的幾個(gè)開(kāi)發(fā)人員發(fā)了電子郵件,試圖了解他們對(duì)這個(gè)工具的想法。
轉(zhuǎn)折點(diǎn)
有一個(gè)問(wèn)題變得很明顯,我一直在錯(cuò)誤的地方尋找答案。甚至不是關(guān)于我們的工具所提供的功能,而是這個(gè)工具是如何融入他們的工作流程。或者在這種情況下,這個(gè)工具需要他們的工作流程進(jìn)行一個(gè)微小但明確的改變,才能開(kāi)始使用。許多開(kāi)發(fā)人員甚至不知道我們工具的存在,我從來(lái)沒(méi)有想過(guò)這會(huì)是一個(gè)問(wèn)題,我們以前從未討論過(guò)這個(gè)問(wèn)題。
在與我的導(dǎo)師們進(jìn)行頭腦風(fēng)暴后,他們很快就想出了一個(gè)解決方案。我們將工具的一部分從桌面應(yīng)用轉(zhuǎn)移到網(wǎng)絡(luò)服務(wù),監(jiān)聽(tīng)代碼審查,然后自動(dòng)啟動(dòng)我們的功能,而不需要任何明確的命令。這樣一來(lái),開(kāi)發(fā)人員的工作流程就完全沒(méi)有變化了! 這就是默認(rèn)選項(xiàng)的力量。
留我們的時(shí)間很短,但要?jiǎng)?chuàng)建一個(gè)網(wǎng)絡(luò)服務(wù)來(lái)做這件事是一個(gè)相當(dāng)小的任務(wù)。有一個(gè)現(xiàn)有的API,負(fù)責(zé)處理困難的部分。
這一次,我們希望在部署方面更加謹(jǐn)慎。開(kāi)發(fā)人員可能會(huì)給我們第二次機(jī)會(huì),但我懷疑他們會(huì)給我們第三次機(jī)會(huì)。我們的計(jì)劃是部署到一個(gè)與我們同在一棟樓里的小團(tuán)隊(duì),并迅速得到他們的反饋。我們清楚地告訴他們,他們是我們的重中之重,我們對(duì)他們關(guān)于這個(gè)工具的意見(jiàn)非常重視。
“太多的無(wú)用評(píng)論”
開(kāi)發(fā)人員用了,但他們感到沮喪。工具使他們的信息量過(guò)大,妨礙了他們的工作。我收到了一兩封憤怒的電子郵件。根據(jù)我們?cè)陂_(kāi)發(fā)過(guò)程中所測(cè)試的用例,我們不可能預(yù)見(jiàn)到這種情況的發(fā)生。但如果我們更接近我們的客戶,我們就會(huì)看到。我應(yīng)該看到這一點(diǎn)的,這是另一個(gè)教訓(xùn)。
我們?cè)诠ぞ咧屑尤肓艘恍┯残韵拗?,不再用信息轟炸代碼審查。我們過(guò)濾掉了可能不太相關(guān)或低優(yōu)先級(jí)的分析警告,匯總了重復(fù)出現(xiàn)的警告,并對(duì)顯示的警告數(shù)量設(shè)置了最大限制。我們還增加了自動(dòng)審查的狀態(tài)更新,這樣用戶就能確切地知道系統(tǒng)處于什么狀態(tài)。事后看來(lái),開(kāi)發(fā)者想要的東西都是完全合理和符合邏輯的,甚至是顯而易見(jiàn)的。
是時(shí)候向所有最初同意使用我們工具的團(tuán)隊(duì)再重新部署一次了。
我們進(jìn)行了四次檢查,確認(rèn)一切準(zhǔn)備就緒,然后再四次檢查。我們給經(jīng)理們發(fā)了一封電子郵件,告訴他們,我們將默認(rèn)為他們的所有代碼審查打開(kāi)我們的工具。
最后的嘗試
我點(diǎn)擊了一個(gè)按鈕來(lái)部署。
我的實(shí)習(xí)期只剩下一個(gè)多星期了。如果事情再次惡化,就沒(méi)有時(shí)間去調(diào)整了。我真的只有時(shí)間修復(fù)小錯(cuò)誤,收集更多的定性數(shù)據(jù),并向更多的團(tuán)隊(duì)展示我的項(xiàng)目。計(jì)劃是在我回到大學(xué)后收集幾個(gè)月的使用數(shù)據(jù),然后在某個(gè)地方提交一篇論文。
在99號(hào)樓舉行的實(shí)習(xí)結(jié)束報(bào)告會(huì)。
我祈禱這個(gè)工具能在很長(zhǎng)一段時(shí)間內(nèi)幫助開(kāi)發(fā)人員進(jìn)行代碼審查。
快進(jìn)到幾個(gè)月后,我們遇到了另一個(gè)問(wèn)題。分析使用數(shù)據(jù)并不像我們希望的那樣直接。我們對(duì)所記錄的數(shù)據(jù)做了一些錯(cuò)誤的假設(shè)。由于我不再是微軟的雇員,我不得不通過(guò)電子郵件寫(xiě)數(shù)據(jù)庫(kù)查詢,并等待有人有空閑時(shí)間來(lái)運(yùn)行,然后把匿名的匯總結(jié)果發(fā)給我。
人們確實(shí)使用了這個(gè)工具!我們把它部署在三個(gè)團(tuán)隊(duì)的98名軟件工程師身上,為期15周。它被41位不同的作者和883位獨(dú)特的審查者用于354次代碼審查。它在代碼審查中發(fā)布了149條分析評(píng)論(加上構(gòu)建和測(cè)試框架的狀態(tài)更新)。它本來(lái)可以發(fā)布更多的評(píng)論,但特定的分析警告可以被團(tuán)隊(duì)取消。
通過(guò)分析使用數(shù)據(jù)和電子郵件發(fā)送調(diào)查,我們發(fā)現(xiàn)有證據(jù)表明這個(gè)工具提高了溝通、生產(chǎn)力和審查質(zhì)量。用戶報(bào)告了壓倒性的贊譽(yù),以及可以改進(jìn)的功能要求和方案。
最后,我們?cè)谝粋€(gè)頂級(jí)會(huì)議上發(fā)表了一篇精彩的論文。不僅如此,微軟的幾個(gè)團(tuán)隊(duì)還主動(dòng)聯(lián)系我,了解這個(gè)工具的設(shè)計(jì)原理,因?yàn)樗麄兿霝樽约旱膱F(tuán)隊(duì)重新創(chuàng)建這個(gè)工具。
寫(xiě)下這個(gè)故事讓所有的問(wèn)題和解決方案聽(tīng)起來(lái)都很明顯,但這是從事后來(lái)看……
讓我們回顧一下我學(xué)到的一些經(jīng)驗(yàn)。
始終讓你的用戶參與進(jìn)來(lái),不要孤立地去建設(shè)。
不要低估那些你只能從外部看到的工程挑戰(zhàn)。
經(jīng)常定期向你的團(tuán)隊(duì)表達(dá)關(guān)切。他們可能會(huì)比你更快地解決這些問(wèn)題,或者他們可能會(huì)發(fā)現(xiàn)什么這會(huì)變成一個(gè)主要的障礙。
準(zhǔn)備好遭遇波折。
用戶說(shuō)什么是有原因的,但可能有深層次原因。
如果你假定用戶會(huì)做什么,他們會(huì)找到一種方法讓你吃驚。
如果功能不容易使用,不管做的有多好,都沒(méi)人會(huì)用。
用戶的工作流程就是一切。(我一直在重新學(xué)習(xí)這一課……)
用戶比你想象的要聰明得多。
譯者:蒂克偉
- 寧夏青銅峽市場(chǎng)監(jiān)管局:擰緊節(jié)日食藥“安全閥” 確保節(jié)日期間市場(chǎng)安全穩(wěn)定
- 北京東城對(duì)轄區(qū)旅游客運(yùn)企業(yè)開(kāi)展專項(xiàng)聯(lián)合檢 營(yíng)造和諧市場(chǎng)環(huán)境
- 安徽開(kāi)展專項(xiàng)執(zhí)法查處濫用行政權(quán)力行為 共同營(yíng)造公平競(jìng)爭(zhēng)良好社會(huì)環(huán)境
- 安徽啟動(dòng)2022年春茶地理標(biāo)志保護(hù)專項(xiàng)行動(dòng) 促進(jìn)茶產(chǎn)業(yè)高質(zhì)量發(fā)展
- 吉林:開(kāi)展知識(shí)產(chǎn)權(quán)代理行業(yè)“藍(lán)天”專項(xiàng)整治行動(dòng) 促進(jìn)知識(shí)產(chǎn)權(quán)服務(wù)業(yè)健康發(fā)展
- 福建福州:宣傳知識(shí)產(chǎn)權(quán)法律知識(shí) 全方位推進(jìn)地方高質(zhì)量發(fā)展超越
- 遼寧撫順?lè)e極建設(shè)知識(shí)產(chǎn)權(quán)強(qiáng)市 建設(shè)知識(shí)產(chǎn)權(quán)強(qiáng)市為目標(biāo)
- 2021年全國(guó)公共服務(wù)質(zhì)量監(jiān)測(cè)情況發(fā)布 南京以總體滿意度?排名第一
- 立案20件!安徽嚴(yán)查哄抬物價(jià)等價(jià)格違法行為 督促經(jīng)營(yíng)者守法經(jīng)營(yíng)
- 陜西消保委發(fā)出“五一”消費(fèi)提示 按需購(gòu)買防浪費(fèi)理性消費(fèi)樹(shù)新風(fēng)
- 養(yǎng)元飲品一季度凈利潤(rùn)下降 今年上市公司買理財(cái)規(guī)模降至近五年最低
- 失守3000點(diǎn)!滬指重挫逾5%創(chuàng)兩年來(lái)最大單日跌幅 兩市跌停股票超700只
- 一季度西安市地區(qū)生產(chǎn)總值同比增2.8% 第一產(chǎn)業(yè)增加值增長(zhǎng)4.4%
- 今年以來(lái)露營(yíng)活動(dòng)火爆“出圈” 露營(yíng)從專業(yè)小眾走向休閑大眾
- 香港47人被控"串謀顛覆國(guó)家政權(quán)罪" 法官首次披露:11人擬認(rèn)罪
- 日本沖繩水壩發(fā)現(xiàn)千余枚啞彈 皆為美國(guó)制造
- 中新網(wǎng)評(píng):“動(dòng)態(tài)清零”就是不放棄任何一個(gè)群體
- 國(guó)臺(tái)辦:在滬臺(tái)商臺(tái)企踴躍捐款捐物 捐贈(zèng)物資及現(xiàn)金合計(jì)超1097萬(wàn)元
- 看抗疫“高亮瞬間”一秒變漫畫(huà)
- 俄羅斯別爾哥羅德州一座彈藥庫(kù)起火 現(xiàn)場(chǎng)傳出疑似爆炸聲
- 寧夏青銅峽市場(chǎng)監(jiān)管局:擰緊節(jié)日食藥“安全閥” 確
- 北京東城對(duì)轄區(qū)旅游客運(yùn)企業(yè)開(kāi)展專項(xiàng)聯(lián)合檢 營(yíng)造和
- 安徽開(kāi)展專項(xiàng)執(zhí)法查處濫用行政權(quán)力行為 共同營(yíng)造公
- 安徽啟動(dòng)2022年春茶地理標(biāo)志保護(hù)專項(xiàng)行動(dòng) 促進(jìn)茶產(chǎn)
- 吉林:開(kāi)展知識(shí)產(chǎn)權(quán)代理行業(yè)“藍(lán)天”專項(xiàng)整治行動(dòng)
- 福建福州:宣傳知識(shí)產(chǎn)權(quán)法律知識(shí) 全方位推進(jìn)地方高
- 遼寧撫順?lè)e極建設(shè)知識(shí)產(chǎn)權(quán)強(qiáng)市 建設(shè)知識(shí)產(chǎn)權(quán)強(qiáng)市為
- 2021年全國(guó)公共服務(wù)質(zhì)量監(jiān)測(cè)情況發(fā)布 南京以總體滿
- 立案20件!安徽嚴(yán)查哄抬物價(jià)等價(jià)格違法行為 督促經(jīng)
- 陜西消保委發(fā)出“五一”消費(fèi)提示 按需購(gòu)買防浪費(fèi)理
- 1 寧夏青銅峽市場(chǎng)監(jiān)管局:擰緊節(jié)日食藥“安全閥” 確
- 2 北京東城對(duì)轄區(qū)旅游客運(yùn)企業(yè)開(kāi)展專項(xiàng)聯(lián)合檢 營(yíng)造和
- 3 安徽開(kāi)展專項(xiàng)執(zhí)法查處濫用行政權(quán)力行為 共同營(yíng)造公
- 4 安徽啟動(dòng)2022年春茶地理標(biāo)志保護(hù)專項(xiàng)行動(dòng) 促進(jìn)茶產(chǎn)
- 5 吉林:開(kāi)展知識(shí)產(chǎn)權(quán)代理行業(yè)“藍(lán)天”專項(xiàng)整治行動(dòng)
- 6 福建福州:宣傳知識(shí)產(chǎn)權(quán)法律知識(shí) 全方位推進(jìn)地方高
- 7 遼寧撫順?lè)e極建設(shè)知識(shí)產(chǎn)權(quán)強(qiáng)市 建設(shè)知識(shí)產(chǎn)權(quán)強(qiáng)市為
- 8 2021年全國(guó)公共服務(wù)質(zhì)量監(jiān)測(cè)情況發(fā)布 南京以總體滿
- 9 立案20件!安徽嚴(yán)查哄抬物價(jià)等價(jià)格違法行為 督促經(jīng)
- 10 陜西消保委發(fā)出“五一”消費(fèi)提示 按需購(gòu)買防浪費(fèi)理