詳解互聯(lián)網(wǎng)產(chǎn)品開(kāi)發(fā)中的“快”字訣

0 評(píng)論 9671 瀏覽 7 收藏 19 分鐘

當(dāng)今互聯(lián)網(wǎng)的發(fā)展,已不是大魚(yú)吃小魚(yú)的時(shí)代,而是快魚(yú)吃慢魚(yú)的時(shí)代?;ヂ?lián)網(wǎng)產(chǎn)品的制勝原則就是一個(gè)字——“快”。在各種形態(tài)的產(chǎn)品研發(fā)中,我們始終貫徹如一的價(jià)值觀之一就是“快”,我們應(yīng)該如何來(lái)理解和詮釋“快”?又會(huì)從哪些方面來(lái)執(zhí)行貫徹這個(gè)原則呢?

一、快速迭代,快做快發(fā)

互聯(lián)網(wǎng)產(chǎn)品不同于傳統(tǒng)軟件開(kāi)發(fā),我們面對(duì)的是上億用戶這樣一個(gè)龐大的使用群體,他們是誰(shuí),有什么喜好,有何種習(xí)慣,會(huì)怎樣使用我們的產(chǎn)品,是否喜歡我們的產(chǎn)品……這些情況我們并不能準(zhǔn)確地知道。因此,互聯(lián)網(wǎng)產(chǎn)品的需求,并不能通過(guò)幾個(gè)月的用戶調(diào)研、市場(chǎng)調(diào)查、產(chǎn)品規(guī)劃就能弄清楚,何況互聯(lián)網(wǎng)的用戶群體本身也處于飛速的動(dòng)態(tài)發(fā)展之中。

那么,這種情況下如何發(fā)展我們的產(chǎn)品?如何對(duì)各種可能的產(chǎn)品特性做選擇?用戶將是最好的指南針,任何產(chǎn)品推出時(shí)肯定不會(huì)是完美的,完美是一種動(dòng)態(tài)的過(guò)程,所以要迅速讓產(chǎn)品去感應(yīng)用戶需求,從而一刻不停地升級(jí)進(jìn)化,推陳出新,這才是保持領(lǐng)先的唯一方式。在這個(gè)領(lǐng)域,產(chǎn)品永遠(yuǎn)是Beta版,可能每幾天一個(gè)版本,快速地去升級(jí),不斷地傾聽(tīng)論壇、用戶的反饋,不斷地調(diào)整修改,然后決定你后面的方向。

所以,“快速迭代”是我們對(duì)產(chǎn)品的基本要求,能否做得足夠快已成為衡量一款產(chǎn)品研發(fā)是否成熟的標(biāo)準(zhǔn)之一。以“QQ農(nóng)牧場(chǎng)”為例,目前每周平均會(huì)發(fā)布20個(gè)版本,之所以能做到如此高的產(chǎn)品發(fā)布節(jié)奏,是由于我們一直堅(jiān)持在做兩件事情。

1. 以穩(wěn)定迭代,小步快跑

雖然,我們追求快速發(fā)布,但更需要一個(gè)穩(wěn)定的研發(fā)節(jié)奏來(lái)便保證團(tuán)隊(duì)的效率和產(chǎn)品的質(zhì)量。如何能既快又穩(wěn),QQ農(nóng)牧場(chǎng)采用了一種有特色的敏捷迭代開(kāi)發(fā)模式,我們稱之為“極速模型”。

 

 

圖1??QQ農(nóng)牧場(chǎng)的“極速模型”
QQ農(nóng)牧場(chǎng)的研發(fā)團(tuán)隊(duì),由多個(gè)角色組成,包括:項(xiàng)目經(jīng)理、產(chǎn)品、UE設(shè)計(jì)、前臺(tái)開(kāi)發(fā)、后臺(tái)開(kāi)發(fā)、測(cè)試、運(yùn)維。以一周為一個(gè)固定的迭代開(kāi)發(fā)周期,這一周時(shí)間包括了團(tuán)隊(duì)一次完整的各個(gè)角色的研發(fā)協(xié)作過(guò)程:迭代前有特性規(guī)劃、迭代后有回顧,其中迭代過(guò)程也會(huì)包括迭代規(guī)劃、開(kāi)發(fā)、測(cè)試、發(fā)布等過(guò)程。但與Scrum敏捷迭代最大的不同是:并非在迭代結(jié)束時(shí)進(jìn)行交付,而是能夠在一次迭代中完成多次交付和發(fā)布過(guò)程。

此種方式看似簡(jiǎn)單,但其實(shí)對(duì)團(tuán)隊(duì)的綜合研發(fā)能力是一個(gè)巨大的挑戰(zhàn)。其中主要挑戰(zhàn)來(lái)自以下幾個(gè)方面。

1) 特性需要能裂解成很細(xì)小的可交付的子特性,通常不超過(guò)2天的開(kāi)發(fā)工作量。

2)? ?? ? 迭代前,特性規(guī)劃、溝通確認(rèn)、界面交互及視覺(jué)設(shè)計(jì)這些工作均需提前安排完成。

3)? ?? ? 迭代計(jì)劃及評(píng)估過(guò)程,還必須考慮到特性/子特性之間的耦合關(guān)系以及開(kāi)發(fā)人力的耦合關(guān)系,合理地作出計(jì)劃安排,保證開(kāi)發(fā)過(guò)程的順利進(jìn)行,降低風(fēng)險(xiǎn)。

4)? ?? ? 要求團(tuán)隊(duì)成員工作咬合能力高,自運(yùn)轉(zhuǎn)能力高,需要長(zhǎng)期默契配合。前臺(tái)開(kāi)發(fā)、后臺(tái)開(kāi)發(fā)、測(cè)試人員都能夠高效率地溝通,順暢地協(xié)作。

2. 以特性為中心,隨做隨發(fā)

特性,是用戶能夠感知和使用的、對(duì)用戶真實(shí)有意義的功能單元。所以,僅僅追求發(fā)布版本數(shù)量是沒(méi)有意義的,每次發(fā)布至少能夠給用戶帶來(lái)感知或使用的功能。

因此,我們產(chǎn)品研發(fā)的所有活動(dòng),都是以特性為中心開(kāi)展的。一種比較通常的方式是規(guī)劃一批特性,然后經(jīng)過(guò)一個(gè)開(kāi)發(fā)階段進(jìn)入測(cè)試,集中測(cè)試回歸后完成發(fā)布。但在“QQ農(nóng)牧場(chǎng)”,從特性規(guī)劃、計(jì)劃、開(kāi)發(fā)、測(cè)試、發(fā)布都是以特性為單位來(lái)驅(qū)動(dòng)的。也就是說(shuō)當(dāng)完成了一個(gè)特性的開(kāi)發(fā)后,即刻轉(zhuǎn)入測(cè)試、完成測(cè)試后即刻發(fā)布。在一個(gè)迭代周期內(nèi),會(huì)有很多不同的特性獨(dú)立并行于從開(kāi)發(fā)到發(fā)布的過(guò)程。

當(dāng)然了,能夠做到這樣的程度,還依必須賴于產(chǎn)品技術(shù)架構(gòu)、測(cè)試自動(dòng)化、運(yùn)維發(fā)布自動(dòng)化能力做支撐。但首先,“以特性為中心、隨做隨發(fā)”的核心思想,是產(chǎn)品、技術(shù)、項(xiàng)目管理、運(yùn)維的指導(dǎo)原則,它讓產(chǎn)品的整個(gè)研發(fā)配套能力建設(shè)圍繞這這個(gè)中心來(lái)持續(xù)開(kāi)展。

二、反饋及時(shí),響應(yīng)快速

做到產(chǎn)品的快速發(fā)布只是第一步,其根本目的就是讓用戶盡快能用到新功能,盡快得到用戶反饋信息,以便及時(shí)地對(duì)產(chǎn)品開(kāi)發(fā)做調(diào)整。所以,一個(gè)產(chǎn)品團(tuán)隊(duì)能否能夠快速獲取用戶反饋、是否真正重視反饋并及時(shí)作出響應(yīng)非常重要。經(jīng)歷了12年互聯(lián)網(wǎng)的摸爬滾打,我們非常重視來(lái)自用戶的反饋意見(jiàn),不斷改進(jìn)產(chǎn)品,積累了豐富的交付經(jīng)驗(yàn)。

1. 建設(shè)用戶反饋渠道

首先,要解決如何搜集用戶反饋的問(wèn)題,滿足不同用戶習(xí)慣,提供多種方式的反饋渠道,讓反饋及時(shí)得到。用戶可以通過(guò)不同的渠道對(duì)使用的產(chǎn)品進(jìn)行問(wèn)題反饋,提出意見(jiàn)和建議。

2. 重視反饋,快速響應(yīng)

用戶反饋、意見(jiàn)和建議就像一座礦山,為產(chǎn)品的發(fā)展提供了寶藏,但產(chǎn)品團(tuán)隊(duì)是否真正認(rèn)識(shí)到它們的價(jià)值,是否能夠快速地挖掘這些寶藏,卻并不是一件容易的事情。

以QQMail為例,為了確保對(duì)來(lái)自用戶反饋的快速響應(yīng),在騰訊流傳著一個(gè)1000/100/10的故事。

1) 每人每月必須回復(fù)1000條論壇用戶帖子。

2) 每人每月必須查閱100篇與QQMail相關(guān)的網(wǎng)絡(luò)評(píng)論文章。

3) 每人每月必須處理10個(gè)用戶反饋意見(jiàn)。

3. 注重?cái)?shù)據(jù)運(yùn)營(yíng),有數(shù)據(jù)才有真相

無(wú)論事前經(jīng)過(guò)多么細(xì)致的調(diào)研、多么縝密的規(guī)劃,對(duì)于產(chǎn)品經(jīng)理來(lái)說(shuō),一個(gè)新特性的發(fā)布,仍然是一個(gè)提心吊膽的經(jīng)歷:特性被用戶的接受程度如何,用戶將如何使用,新特性給產(chǎn)品帶來(lái)了怎樣的拉動(dòng)或抑制,哪些特性可能存在交互、易用性、穩(wěn)定性等問(wèn)題。要想回答這些問(wèn)題都很困難。

數(shù)據(jù)運(yùn)營(yíng),就是用產(chǎn)品運(yùn)營(yíng)數(shù)據(jù)說(shuō)話,通過(guò)對(duì)運(yùn)營(yíng)數(shù)據(jù)的分析,為產(chǎn)品發(fā)展提供客觀的決策依據(jù)。通過(guò)運(yùn)營(yíng)數(shù)據(jù)的分析,能夠在短時(shí)間內(nèi)獲得對(duì)某個(gè)產(chǎn)品特性的準(zhǔn)確評(píng)價(jià),進(jìn)而快速地指導(dǎo)產(chǎn)品下一步的發(fā)展。

圖2是一個(gè)產(chǎn)品93天內(nèi)用戶注冊(cè)成功率的連續(xù)運(yùn)營(yíng)數(shù)據(jù)的例子。

圖2 連續(xù)運(yùn)營(yíng)數(shù)據(jù)分析示例

從圖2可以看出,7月12日前注冊(cè)成功率穩(wěn)定維持在20~30%之間。7月12日對(duì)注冊(cè)頁(yè)面交互流程進(jìn)行了優(yōu)化并對(duì)外發(fā)布,之后2周的數(shù)據(jù)觀察表明新的交互設(shè)計(jì)起到了預(yù)期的作用,注冊(cè)成功率提升到了40%~60%,即使在7月17日、24日兩天有定向向某省所有上線QQ用戶發(fā)布消息時(shí),其注冊(cè)成功率也在40%左右浮動(dòng)2個(gè)百分點(diǎn)。通過(guò)運(yùn)營(yíng)數(shù)據(jù)分析,能夠快速地判斷特性目標(biāo)是否達(dá)到,進(jìn)而指導(dǎo)下一步的行動(dòng)。

三、快需要?jiǎng)?chuàng)新、需要實(shí)力

我們希望產(chǎn)品迭代得更快,但有了這個(gè)理念就一定能夠快起來(lái)嗎?快不只是一種產(chǎn)品理念,更是一種技術(shù)實(shí)力,遵循著這個(gè)核心價(jià)值觀,需要技術(shù)上的創(chuàng)新思維,讓技術(shù)能力來(lái)支撐我們的快。

以QQ寵物為例,通過(guò)技術(shù)架構(gòu)創(chuàng)新成功地提升了客戶端產(chǎn)品的發(fā)布速度和更新頻率。如果采用傳統(tǒng)客戶端方式的話,一次版本的全量升級(jí)需要6個(gè)月的時(shí)間,新架構(gòu)下一次全量升級(jí)僅需1天。架構(gòu)從以下幾方面提升了快的能力。

1.客戶端Web化技術(shù):像B/S系統(tǒng)一樣的開(kāi)發(fā)方式和發(fā)布周期

有人會(huì)問(wèn):客戶端的產(chǎn)品發(fā)布能快得起來(lái)嗎?確實(shí)很困難,但必須做到,因?yàn)檫@就是互聯(lián)網(wǎng)產(chǎn)品的基本要求,我們能做到讓客戶端像Web一樣敏捷嗎? 答案是肯定的,我們的客戶端微內(nèi)核懶加載架構(gòu),將客戶端Web化技術(shù)做到了像Web一樣開(kāi)發(fā)客戶端產(chǎn)品。

整個(gè)架構(gòu)由客戶端的微內(nèi)核、插件版本控制服務(wù)器和資源下載服務(wù)器構(gòu)成,如圖3所示。

圖3??QQ寵物的技術(shù)架構(gòu)

微內(nèi)核簡(jiǎn)要介紹如下。

1) 整個(gè)客戶端改造成為一個(gè)微內(nèi)核插件平臺(tái),只有一個(gè)插件加載器、插件版本控制組件、資源下載組件。

2) 插件加載器,負(fù)責(zé)加載插件。

3) 插件版本控制組件,負(fù)責(zé)詢問(wèn)版本服務(wù)器獲取加載的版本。

4) 資源下載組件,負(fù)責(zé)下載插件資源。

客戶端的簡(jiǎn)要啟動(dòng)運(yùn)行流程如下:

1) 獲取版本:內(nèi)核啟動(dòng)后,詢問(wèn)版本控制服務(wù)器,獲取需要加載的版本。

2) 下載相應(yīng)版本的XML配置。

3) 加載器解析XML配置。

4) 開(kāi)始第一個(gè)插件加載邏輯。

5) 下載第一個(gè)插件的資源。

6) 加載第一個(gè)插件。

7) 繼續(xù)加載子節(jié)點(diǎn)插件。

微內(nèi)核懶加載架構(gòu)與Web架構(gòu)的比較如表1所示。

表1 微內(nèi)核懶加載架構(gòu)與Web架構(gòu)的比較

懶加載架構(gòu) Web架構(gòu)
加載器 懶加載微內(nèi)核 TT、QQBrowser、IE、Chrome、FireFox等瀏覽器
描述語(yǔ)言 XML HTML
加載對(duì)象 插件 圖片、視頻、Flash等

2. 微內(nèi)核、插件化體系結(jié)構(gòu):特性即插即用,產(chǎn)品靈活穩(wěn)定

基于微內(nèi)核懶加載架構(gòu)的業(yè)務(wù)開(kāi)發(fā)就變得非常簡(jiǎn)單、異常靈活。整個(gè)產(chǎn)品大大小小的特性,都被拆解成一個(gè)個(gè)功能組件,組件之間被強(qiáng)行解耦,減少依賴獨(dú)立運(yùn)行,這大大降低了依賴性在聯(lián)調(diào)、測(cè)試、系統(tǒng)集成方面帶來(lái)的工作難度,減少了時(shí)間,提升了效率。更重要的是,每個(gè)組件都可以被獨(dú)立下載,在客戶端加載運(yùn)行,這也就意味著發(fā)布風(fēng)險(xiǎn)的降低、效率的提升。

圖4 微內(nèi)核、插件化體系結(jié)構(gòu)

3. 面向特性的豎向架構(gòu):以特性為開(kāi)發(fā)粒度,提升開(kāi)發(fā)效率

傳統(tǒng)的產(chǎn)品技術(shù)架構(gòu)多為橫向的分層結(jié)構(gòu),而每一層又習(xí)慣于分配不同的人來(lái)負(fù)責(zé)。這直接帶來(lái)的一個(gè)問(wèn)題是,我們以特性為粒度進(jìn)行開(kāi)發(fā)、聯(lián)調(diào)、測(cè)試時(shí)會(huì)因?yàn)槿藛T耦合、層耦合帶來(lái)復(fù)雜性、引入風(fēng)險(xiǎn)。

圖5 傳統(tǒng)的橫向分層產(chǎn)品技術(shù)架構(gòu)

舉個(gè)例子,比如開(kāi)發(fā)一個(gè)login頁(yè)面登錄功能,可能需要Web前臺(tái)工程師開(kāi)發(fā)頁(yè)面、Web后臺(tái)工程師開(kāi)發(fā)CGI、Server后臺(tái)工程開(kāi)發(fā)用戶鑒權(quán)接口、數(shù)據(jù)庫(kù)工程師做數(shù)據(jù)庫(kù)表結(jié)構(gòu)開(kāi)發(fā)。那么這樣一個(gè)簡(jiǎn)單的login功能,在聯(lián)調(diào)、測(cè)試、發(fā)布方面就會(huì)牽扯很多的人力協(xié)作,而又因?yàn)槊恳粚佣夹枰膭?dòng)代碼,可能對(duì)這一層的其他功能代碼造成影響。試問(wèn)這樣的方式能快得起來(lái)嗎?

QQ寵物的新架構(gòu)則以特性為中心,采用豎向的架構(gòu)來(lái)解決這個(gè)問(wèn)題,每個(gè)特性一個(gè)組件,一個(gè)人負(fù)責(zé)開(kāi)發(fā),每個(gè)組件必須包括UI、邏輯、協(xié)議的代碼實(shí)現(xiàn)。

圖6 豎向產(chǎn)品技術(shù)架構(gòu)

這樣的方式,使得面向特性的開(kāi)發(fā)模式得以強(qiáng)制化,從而提升了效率,加快了節(jié)奏。

四、快需要手段

想快容易——做快難,除了產(chǎn)品、運(yùn)營(yíng)、技術(shù)上的能力,產(chǎn)品研發(fā)過(guò)程上需要有必要的手段保證整個(gè)研發(fā)快起來(lái)。

1. Scrum敏捷開(kāi)發(fā):發(fā)揚(yáng)光大

敏捷為快而生,快速響應(yīng)變化,這正是互聯(lián)網(wǎng)產(chǎn)品的發(fā)展需要。我們?cè)缭?005年就引入了敏捷開(kāi)發(fā),目前已經(jīng)將Scrum結(jié)合我們自身的產(chǎn)品、文化、團(tuán)隊(duì)特點(diǎn)形成了自己的敏捷研發(fā)管理框架。經(jīng)過(guò)自下而上的發(fā)展和騰訊人積極的探索和沉淀,逐步形成了“經(jīng)典迭代”、“極速”、“大象”、“運(yùn)營(yíng)”這四個(gè)比較有特色的敏捷研發(fā)管理模式。

我們?cè)诿艚莸耐茝V、實(shí)施方面,已經(jīng)有一套以運(yùn)營(yíng)為理念的推廣模式,把敏捷當(dāng)作產(chǎn)品來(lái)運(yùn)營(yíng),形成了“管理”、“工程”兩條線,在多個(gè)維度推行敏捷。

圖7 騰訊的Scrum敏捷開(kāi)發(fā)

2. CI:持續(xù)集成,快速體驗(yàn)

CI在產(chǎn)品開(kāi)發(fā)、測(cè)試階段提升自動(dòng)化效率方面非常有效。目前我們CI的發(fā)展水平還參差不齊,但從起初的自動(dòng)編譯已逐步加入了靜態(tài)代碼檢測(cè)、單元測(cè)試、自動(dòng)化部署等更多內(nèi)容,開(kāi)始為更多的研發(fā)團(tuán)隊(duì)所青睞。

作為加快產(chǎn)品的發(fā)布的能力,CI在以下幾個(gè)方面作用明顯。

1) 自動(dòng)編譯輸出報(bào)告,維護(hù)代碼可運(yùn)行,及時(shí)暴露風(fēng)險(xiǎn),降低集成成本。

2) Dailybuild日構(gòu)建系統(tǒng),讓產(chǎn)品經(jīng)理、測(cè)試人員可以盡早進(jìn)行體驗(yàn)和測(cè)試。

3) 作為一個(gè)自動(dòng)化系統(tǒng),利用靜態(tài)代碼檢查、單元測(cè)試報(bào)告等手段為團(tuán)隊(duì)提供報(bào)告,促進(jìn)編碼質(zhì)量不斷得到重視,降低缺陷解決成本、縮短解決時(shí)間。

3. 灰度發(fā)布:提升發(fā)布的頻率,降低發(fā)布風(fēng)險(xiǎn)

在互聯(lián)網(wǎng)行業(yè),灰度發(fā)布已經(jīng)成為最重要的發(fā)布控制手段。有時(shí)我們希望通過(guò)向小部分用戶開(kāi)發(fā)新功能,讓他們先來(lái)體驗(yàn)新功能、新特性。通過(guò)用戶反饋、數(shù)據(jù)運(yùn)營(yíng)的手段及早獲得反饋,及時(shí)改進(jìn)。以此方式,既可以降低發(fā)布風(fēng)險(xiǎn),也可以提升發(fā)布頻率,加快發(fā)布節(jié)奏。

總結(jié)

快是一種追求、一種習(xí)慣,更是一種能力,這種能力需要產(chǎn)品、技術(shù)、運(yùn)營(yíng)、研發(fā)管理多方面的支撐才能夠快得起來(lái)。這樣的快,就像是中國(guó)的高鐵,在高速的行駛中還必須讓你感到安全、舒適、服務(wù)、便利。

作者簡(jiǎn)介:

王晶,騰訊R&D項(xiàng)目總監(jiān)、敏捷教練。從事通訊、互聯(lián)網(wǎng)開(kāi)發(fā)、項(xiàng)目及研發(fā)管理多年,目前負(fù)責(zé)騰訊多個(gè)業(yè)務(wù)線重要產(chǎn)品的項(xiàng)目管理工作,探索并推行適合騰訊的敏捷研發(fā)及項(xiàng)目管理。

源地址:http://djt.open.qq.com/po……=view&aid=206

 

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!