這個(gè)需求很簡(jiǎn)單,為什么卻要開(kāi)發(fā) N 天?.
- 標(biāo)簽 :

當(dāng)產(chǎn)品經(jīng)理和后臺(tái)開(kāi)發(fā)提需求時(shí),本以為小迭代、小需求簡(jiǎn)簡(jiǎn)單單,但在后臺(tái)開(kāi)發(fā)眼中卻有些麻煩。那么在需求實(shí)現(xiàn)的角度上,是什么原因?qū)е碌哪兀课覀冇衷撊绾螐暮笈_(tái)開(kāi)發(fā)的視角去理解需求的實(shí)現(xiàn)過(guò)程呢?
作者:Lisa Deng,教育公司產(chǎn)品總監(jiān)
題圖來(lái)自 Unsplash,基于 CC0 協(xié)議
—————— BEGIN ——————
在產(chǎn)品同質(zhì)化嚴(yán)重的當(dāng)下,競(jìng)爭(zhēng)的主戰(zhàn)場(chǎng)早已從產(chǎn)品價(jià)值轉(zhuǎn)移到了開(kāi)發(fā)效率與運(yùn)營(yíng)策略:運(yùn)營(yíng)策略經(jīng)過(guò)幾番摸爬滾打總能找到節(jié)奏,但開(kāi)發(fā)效率卻是很難在短時(shí)間內(nèi)提升。
作為一名產(chǎn)品經(jīng)理,你不僅需要了解技術(shù),用開(kāi)發(fā)小哥能聽(tīng)明白的話(huà)語(yǔ)描述需求,更重要的是讓技術(shù)團(tuán)隊(duì)與你一條心一起走。
所以,一個(gè)略懂技術(shù)的產(chǎn)品經(jīng)理會(huì)非常占優(yōu)勢(shì)。
無(wú)數(shù)個(gè)夜晚,你會(huì)不會(huì)在月光前發(fā)愿,要是技術(shù)小哥每次對(duì)我說(shuō)這句話(huà)就好了:這個(gè)需求很清晰,我們隔天就能上線。
可殘酷的現(xiàn)實(shí),就像你的丈母娘一樣總在啪啪打你的臉:
你認(rèn)為“很簡(jiǎn)單”的小需求,開(kāi)發(fā)小哥評(píng)估至少要N天才能完成;明明別人都已經(jīng)實(shí)現(xiàn)的功能,怎么在我們這里就實(shí)現(xiàn)不了了?你認(rèn)為只是優(yōu)化的小迭代,在開(kāi)發(fā)小哥這里怎么就變成了動(dòng)架構(gòu)了?
今天我們一起走進(jìn)后臺(tái)技術(shù)小哥的內(nèi)心世界,一起去開(kāi)悟之坡~
01
一個(gè)需求
后臺(tái)到底在做什么?
舉個(gè)例子:一個(gè)英語(yǔ)學(xué)習(xí)的APP,我們希望用戶(hù)發(fā)布了錄音后,可以讓他的粉絲也能看到他發(fā)布的錄音。

在這個(gè)看似簡(jiǎn)單的需求里,后臺(tái)開(kāi)發(fā)會(huì)如何處理這些數(shù)據(jù)呢?
第一步,將流程里包含的信息拆解為:用戶(hù)(小A、小B)、行為(錄音、發(fā)布、收聽(tīng))、數(shù)據(jù)(讀音)
第二步,維護(hù)好用戶(hù)數(shù)據(jù),確保在需要的時(shí)候可以快速地訪問(wèn)到。

這下,你明白了嗎?
當(dāng)你在表達(dá)一個(gè)需求的時(shí)候,其實(shí)是在描述一個(gè)現(xiàn)象;而后臺(tái)小哥就會(huì)把這個(gè)現(xiàn)象結(jié)構(gòu)化地拆解為:用戶(hù)、行為、數(shù)據(jù)以及之間的運(yùn)轉(zhuǎn)邏輯。
所以在今后的需求溝通中,我們不妨也可以提前做一下這樣的拆解,這樣溝通效率就會(huì)大大提升了。
02
這個(gè)需求很簡(jiǎn)單
為什么要開(kāi)發(fā)N天?
某一天,你跟開(kāi)發(fā)小哥說(shuō):既然我們已經(jīng)實(shí)現(xiàn)了粉絲可以聽(tīng)到錄音,那么再增加一個(gè)粉絲可以看到視頻的功能吧,這個(gè)需求應(yīng)該很簡(jiǎn)單,交互邏輯之前都是一樣的,是不是很快就能上線呀?
開(kāi)發(fā)小哥一番評(píng)審告訴你:2天~
此時(shí)在你心里是不是覺(jué)得:不是一樣的東西嗎?好像半天就能搞定的事情,為啥要花兩天?
那么,這兩天后臺(tái)小哥到底在做什么呢?

在我們看來(lái)錄音和視頻現(xiàn)象都是一致的,但在后臺(tái)小哥的開(kāi)發(fā)中是非常不同的。
前文提到,后臺(tái)開(kāi)發(fā)主要是處理用戶(hù)行為,維護(hù)用戶(hù)數(shù)據(jù),這個(gè)不同就是在于數(shù)據(jù)上。
如果最開(kāi)始開(kāi)發(fā)沒(méi)有考慮擴(kuò)容性,那么錄音數(shù)據(jù)與視頻數(shù)據(jù)就是兩個(gè)截然不同的接口,所以開(kāi)發(fā)周期當(dāng)然是一樣的。

但是,如果我們?cè)谝婚_(kāi)始就告訴開(kāi)發(fā)小哥,未來(lái)業(yè)務(wù)的邏輯是需要支持錄音也有可能支持視頻的——這種情況下,數(shù)據(jù)接口就可以在一開(kāi)始的時(shí)候就做好適配設(shè)計(jì)。
什么叫適配設(shè)計(jì)?
其實(shí)就是增加一個(gè)數(shù)據(jù)適配器(類(lèi)似電腦的轉(zhuǎn)接頭),讓功能可以支持更多類(lèi)型的數(shù)據(jù)。

這樣一對(duì)比,我們就知道了:
同樣的需求,如果開(kāi)發(fā)方式是,來(lái)一個(gè)需求做一個(gè)需求,那么開(kāi)發(fā)時(shí)間是:2 天錄音 + 2 天視頻 = 4 天如果一開(kāi)始就告訴開(kāi)發(fā)小哥未來(lái)業(yè)務(wù)可能的擴(kuò)展性,一開(kāi)始就考慮了數(shù)據(jù)接口適配,那么總體的開(kāi)發(fā)時(shí)間是:2 天錄音 + 0.5 天擴(kuò)展性 + 0.5天視頻 = 3 天
怎么樣?以后不要再抱怨你們開(kāi)發(fā)小哥能力不行或者效率太低了哦,最根本的原因還是在于產(chǎn)品經(jīng)理是否足夠有預(yù)見(jiàn)性與規(guī)劃性。
03
為什么同樣的功能
體驗(yàn)總是不盡如人意?
還是前面的例子:讓粉絲聽(tīng)到關(guān)注者的錄音的功能。
有時(shí)候你發(fā)現(xiàn),完全一樣的功能,在人家的產(chǎn)品上和自己的產(chǎn)品上體驗(yàn)怎么會(huì)差很多?好像我們的頁(yè)面總是不那么順滑,那真正的原因到底是什么?
其實(shí)主要的問(wèn)題就出在開(kāi)發(fā)方式上:
開(kāi)發(fā)方式A:用戶(hù)點(diǎn)擊發(fā)布錄音,后臺(tái)保存錄音,并為每個(gè)粉絲逐個(gè)生成數(shù)據(jù),然后通知用戶(hù)發(fā)布成功。
從邏輯上來(lái)看流程很簡(jiǎn)單,速度應(yīng)該很快??墒牵坏┻@個(gè)用戶(hù)擁有百萬(wàn)粉絲,那么② ~ ④ 的過(guò)程變?yōu)樾枰o百萬(wàn)粉絲都生成完數(shù)據(jù)后,再反饋用戶(hù)成功,這中間的等待時(shí)間非常非常非常長(zhǎng)——這個(gè)時(shí)候你不慢誰(shuí)慢?

而開(kāi)發(fā)方式B:用戶(hù)點(diǎn)擊發(fā)布錄音,后臺(tái)保存錄音,立刻反饋用戶(hù)發(fā)布成功;然后,再逐個(gè)為粉絲生成數(shù)據(jù),通知粉絲。
妙就妙在:這個(gè)過(guò)程中,我們將粉絲收到錄音過(guò)程的實(shí)時(shí)性舍棄掉了,而發(fā)布錄音者卻能很快得到反饋,在使用感官上,體驗(yàn)就非常棒了。

明白了嗎?
同樣的功能,如果你能清晰的交代清楚:哪些場(chǎng)景是需要實(shí)時(shí)的,哪些場(chǎng)景是不需要實(shí)時(shí)的,用戶(hù)量的情況等等,開(kāi)發(fā)小哥就可以引入異步化或者其他的開(kāi)發(fā)方式,極大地優(yōu)化產(chǎn)品的用戶(hù)體驗(yàn)。
04
功能剛上線響應(yīng)還很快
后來(lái)怎么逐漸變慢了?
還是這個(gè)錄音數(shù)據(jù)的例子:這個(gè)功能上線一段時(shí)間之后,突然某一天有用戶(hù)反饋說(shuō),怎么加載越來(lái)越慢了——前兩天還好好的呀,問(wèn)題又出在了哪里?
其實(shí),主要的問(wèn)題是出在數(shù)據(jù)量上。
我們?cè)倩貧w到功能本身:一個(gè)有百萬(wàn)粉絲的大V發(fā)布錄音,那么產(chǎn)生的數(shù)據(jù)量 = 錄音數(shù) * 100萬(wàn),這個(gè)過(guò)程中數(shù)據(jù)膨脹是非??斓?。
如果你要去查詢(xún)數(shù)據(jù),就必須從1~100w一個(gè)一個(gè)去查——就算你把數(shù)據(jù)進(jìn)行了分類(lèi)檢索,還是會(huì)不可避免的慢。

如果,我們改變一下開(kāi)發(fā)方式:同樣的錄音,我們只把數(shù)據(jù)推給近期活躍的用戶(hù),而對(duì)于不活躍用戶(hù),我們?cè)谒暇€時(shí)再推,情況會(huì)不會(huì)好很多呢?

根據(jù)早些年新浪微博和騰訊微博的用戶(hù)分析結(jié)果,大V的僵尸粉或不活躍用戶(hù)占比均達(dá)到16.96%和56.73%,這部分僵尸粉基本不上線,或者不查看信息。
使用這種方案,可以極大地減緩數(shù)據(jù)膨脹的速度,實(shí)際產(chǎn)生的數(shù)據(jù)量會(huì)指數(shù)級(jí)下降。
所以,明白了嗎?
一個(gè)功能慢或者不慢,其實(shí)主要差距就是在對(duì)數(shù)據(jù)的處理方式上。一名優(yōu)秀的產(chǎn)品經(jīng)理,如果能了解這部分原理,就能與開(kāi)發(fā)小哥一起設(shè)計(jì)一款體驗(yàn)良好,并且維護(hù)成本極低的產(chǎn)品。
05
增加一個(gè)小功能
開(kāi)發(fā)小哥怎么看起來(lái)很為難?
有沒(méi)有試過(guò),當(dāng)你與開(kāi)發(fā)小哥提一個(gè)你看起來(lái)覺(jué)得很小的需求時(shí),他們會(huì)滿(mǎn)臉畏難:這不好搞啊~代碼改起來(lái)非常惡心。
惡心?Why?
其實(shí)就像下面這兩個(gè)例子:A、B分別代表了兩個(gè)功能的代碼邏輯,這時(shí)有一個(gè)需求——需要在流程結(jié)束前,增加一個(gè)操作。

這個(gè)時(shí)候你會(huì)有什么感受?
哈哈哈~~
在代碼流程A里,需要在4個(gè)不同的部分增加這個(gè)操作,而代碼流程B,只需要增加1個(gè)操作,這就是為什么代碼改得很“惡心”的主要原因——因?yàn)槿绻婚_(kāi)始代碼流程邏輯就是混亂的,新需求會(huì)變得非常復(fù)雜且繁多。
同樣是開(kāi)發(fā)功能、寫(xiě)代碼,為什么會(huì)導(dǎo)致這樣的差別呢?主要原因以下3點(diǎn):
功能設(shè)計(jì)不合理,代碼邏輯不清晰,擴(kuò)展性差業(yè)務(wù)迭代,功能不斷更新,模塊逐漸臃腫時(shí)間不夠,先上線、后優(yōu)化
對(duì),你想的沒(méi)錯(cuò),其實(shí)就是代碼寫(xiě)得“差”,敞開(kāi)你的嗓子,放心地懟開(kāi)發(fā)小哥就好,哈哈哈哈~
相信我,把這篇文章看明白,拿著需求好好評(píng)審,“怒懟”開(kāi)發(fā)小哥一百遍。
孫子曰:用兵者,役不再籍,糧不三載。
一次把事情做對(duì),一次搞定,不返工,就是最高的效率,一起加油哦~
天津市犀思科技有限公司是專(zhuān)業(yè)從事web應(yīng)用定制開(kāi)發(fā)的一家公司,主營(yíng)業(yè)務(wù)包括定制功能型網(wǎng)站建設(shè)開(kāi)發(fā)、微信小程序開(kāi)發(fā)、微信公眾號(hào)開(kāi)發(fā)、APP定制開(kāi)發(fā)、天津企業(yè)微信開(kāi)發(fā)、ERP、CRM、OA等企業(yè)應(yīng)用場(chǎng)景信息化解決方案等服務(wù),致力于成為中國(guó)領(lǐng)先的IT服務(wù)及行業(yè)解決方案的提供商。

