B端產(chǎn)品,如何系統(tǒng)性進(jìn)行重構(gòu)?
產(chǎn)品經(jīng)理一定要經(jīng)歷完整的從0~n才能在產(chǎn)品設(shè)計方法上比較游刃有余嗎?這個想法還是太天真了。重構(gòu)產(chǎn)品的方法與從0~1區(qū)別非常大,難度與挑戰(zhàn)也遠(yuǎn)高于0~1。下面這篇文章作者就結(jié)合自己的經(jīng)歷,對產(chǎn)品重構(gòu)做了梳理總結(jié),想要了解產(chǎn)品重構(gòu)的小伙伴趕緊來看看哦。
一、背景
曾經(jīng)一度簡單的認(rèn)為產(chǎn)品經(jīng)理一定要經(jīng)歷完整的從0~n才能在產(chǎn)品設(shè)計方法上比較游刃有余,后來經(jīng)過一年多對一個產(chǎn)品重構(gòu)后,發(fā)現(xiàn)以前的認(rèn)知還是天真了,重構(gòu)產(chǎn)品的方法與從0~1區(qū)別非常大,難度與挑戰(zhàn)也遠(yuǎn)高于0~1,相信無論是做過還是正在做產(chǎn)品重構(gòu)的同學(xué),一定深有體會,這篇文章就結(jié)合自己的經(jīng)歷,對產(chǎn)品重構(gòu)做個梳理總結(jié)。
我所重構(gòu)的這個內(nèi)部系統(tǒng),在接手前已經(jīng)做了一年左右,曾經(jīng)的模式都是業(yè)務(wù)方一句話需求直接提到開發(fā)團隊,然后各個開發(fā)根據(jù)自己的理解哼哧哼哧做兩個星期,無論能不能用,好不好用,因為公司強制要求都在無奈使用,過程中也埋下無數(shù)坑,以致于用戶使用起來痛苦萬分,體驗極差,領(lǐng)導(dǎo)對這個現(xiàn)狀也不太滿意。
經(jīng)過一年多的改造和優(yōu)化,我們的北極星指標(biāo)–用戶滿意度(NPS)提升了49%,也達(dá)成了我們的預(yù)期目標(biāo),今天就把這個過程中總結(jié)出的方法、經(jīng)驗教訓(xùn)分享出來。
本文側(cè)重講解重構(gòu)步驟方法,涉及部分細(xì)節(jié)就不在此展開過多了。
二、重構(gòu)的方式
重構(gòu)一般有三種方式
- 推倒重來:在原系統(tǒng)基礎(chǔ)上重新開發(fā),僅保留數(shù)據(jù)庫等基礎(chǔ)內(nèi)容,上層代碼重新開發(fā);
- 另起爐灶:原系統(tǒng)保持運行,另起新項目,重新做個新系統(tǒng)替換,做數(shù)據(jù)遷移;
- 運行中改造:保持現(xiàn)有系統(tǒng)持續(xù)、穩(wěn)定運行,同時對所需模塊持續(xù)改造,直至達(dá)成目標(biāo)
這里對這三種方式做個對比:
方式一是在原系統(tǒng)打算或已經(jīng)廢棄的時候才適用,而這種情況其實比較少,更多時候,我們所面臨的重構(gòu)場景是在方式二、三中選擇。
從業(yè)務(wù)方和領(lǐng)導(dǎo)們的角度,通常傾向方式三,因為風(fēng)險更小,感覺上成本更低,但實際上如果需要改造的模塊較多,方式三的成本其實更高,因為有很多兼容、填坑、還技術(shù)債的事情;而從產(chǎn)研的角度,通常傾向方式二,因為不用考慮過多的歷史包袱,處理起來更方便,如果需改造內(nèi)容多,綜合成本也更小。
至于最終選擇哪種,就得結(jié)合實際情況來判斷了。不過很明顯方式三的挑戰(zhàn)會更大,對產(chǎn)品經(jīng)理的要求也更高,后面的內(nèi)容,將基于方式三總結(jié)。
三、重構(gòu)步驟
1. 前期調(diào)研
(1)內(nèi)容
業(yè)務(wù)調(diào)研
所有的調(diào)研都是先從業(yè)務(wù)開始,在這部分的調(diào)研中,我們需要了解兩部分:
- 業(yè)務(wù)所在行業(yè)的通用玩法,知道行業(yè)內(nèi)一般都是怎么運作的,有行業(yè)認(rèn)識;
- 公司的整體業(yè)務(wù)流程、業(yè)務(wù)特色、形成的歷史淵源,其中要特別注意公司與行業(yè)的不同之處,一旦忽略就容易在后面改造中照搬行業(yè)玩法,導(dǎo)致與實際業(yè)務(wù)需求不符。
這兩部分學(xué)習(xí)、調(diào)研的內(nèi)容是相互促進(jìn)的,通過觀察公司業(yè)務(wù)運作可以更好的理解行業(yè)做法的含義,通過將行業(yè)玩法作為參考系可以發(fā)現(xiàn)公司當(dāng)前所處位置及優(yōu)劣。
用戶調(diào)研
首先需要了解有哪些用戶在使用現(xiàn)有系統(tǒng),通過提煉用戶差異性,將用戶從多個維度進(jìn)行分群(后面細(xì)聊如何做B端用戶分群),然后就能找出對應(yīng)群體中一些典型用戶,通過一對一訪談深度了解他們使用系統(tǒng)的目的、路徑、痛點、期望
不過一對一訪談效率還是比較低,所以需要增加問卷等方式,大批量收集用戶目前的需求、槽點
(2)目的
- 從業(yè)務(wù)方、領(lǐng)導(dǎo)層、用戶各方充分了解為什么要進(jìn)行重構(gòu)
- 對現(xiàn)有系統(tǒng)情況做一個整體的摸排,初步形成較為全面的認(rèn)識
(3)輸出
- 公司業(yè)務(wù)流程
- 公司業(yè)務(wù)特色總結(jié),形成文檔記錄
- 各角色用例圖
- 用戶調(diào)研報告。包含用戶體驗地圖
- 用戶問題/需求池
2. 舊邏輯梳理
(1)內(nèi)容
對系統(tǒng)現(xiàn)有主體邏輯進(jìn)行梳理,包括系統(tǒng)主流程、產(chǎn)品架構(gòu)、產(chǎn)品結(jié)構(gòu)、功能模塊、功能點等。
由于還沒到具體模塊的改造,所以有些細(xì)節(jié)暫時可以不用太深入,等到改造到那塊時再梳理即可,一方面因為有些細(xì)節(jié)即使提前了解了,時間長了到后面可能也忘了,另一方面是可能由于文檔缺失或更新不及時,已經(jīng)沒有人能記得很清楚了,需要開發(fā)通過代碼看出原有邏輯,所以細(xì)節(jié)梳理需要耗費巨大的時間、人力成本,影響前期進(jìn)展。
(2)目的
這一步的目的是為了對系統(tǒng)現(xiàn)有功能、邏輯有整體認(rèn)知,便于后續(xù)對比業(yè)務(wù)需求,發(fā)現(xiàn)全局性、架構(gòu)上、偏底層的一些問題。
(3)輸出
- 產(chǎn)品主流程圖
- 產(chǎn)品架構(gòu)圖
- 產(chǎn)品結(jié)構(gòu)圖(腦圖)
- 通過表格整體的各模塊功能邏輯清單
3. 對比分析
(1)內(nèi)容
通過對比業(yè)務(wù)實際需求與現(xiàn)有規(guī)則的差異,發(fā)現(xiàn)、挖掘出系統(tǒng)現(xiàn)存的一些問題,明確后續(xù)需改造的內(nèi)容。
(2)目的
很多同學(xué)在對現(xiàn)有系統(tǒng)做重構(gòu)時,需改造內(nèi)容的信息來源是調(diào)研結(jié)果或自我感受,但從我的經(jīng)歷來看,這些信息還不夠,主要原因有兩個:
- 很多調(diào)研內(nèi)容用戶無法告知你應(yīng)該怎么做,相當(dāng)大比例的問題是普通用戶意識不到的,用戶反饋由于自身的很多局限,認(rèn)識不夠全面,同時也認(rèn)識不到系統(tǒng)底層問題,更多的還只是一些交互、視覺層面的問題;
- 很多看起來不合理的邏輯,其實是符合業(yè)務(wù)特點和要求的,也有其特殊背景,只有最適合你的業(yè)務(wù)需求的才是好的設(shè)計。
這就是專門對比業(yè)務(wù)需求與現(xiàn)有規(guī)則差異的目的。
(3)輸出
補充用戶問題/需求池。通過對比發(fā)現(xiàn)的系統(tǒng)現(xiàn)存問題清單,與前面調(diào)研結(jié)果進(jìn)行合并在一張表里
4. 問題/需求整理與分層
(1)內(nèi)容
問題/需求整理
通過前面的調(diào)研、分析,我們就有了一份用戶問題/需求池,內(nèi)容非常多,這就需要對這份問題/需求池進(jìn)行整理。
- 按功能模塊歸納
- 將重復(fù)問題/需求合并
- 將明顯不合理問題/需求刪除
問題/需求分層
除了將這些問題/需求按模塊劃分,還要對它們進(jìn)行提煉總結(jié),然后將這些問題按數(shù)據(jù)層–模型層–領(lǐng)域(業(yè)務(wù)邏輯)層–交互層–UI層五個層次進(jìn)行分層
- UI層:純視覺問題,如icon語義、顏色、樣式問題等;
- 交互層:頁面交互上的問題,常見的如菜單結(jié)構(gòu)、操作控件;
- 領(lǐng)域?qū)樱焊鞣N業(yè)務(wù)邏輯問題;
- 模型層:底層模型設(shè)計相關(guān),如原設(shè)計不合理,與業(yè)務(wù)需求不匹配,擴展性差
- 數(shù)據(jù)層:常見如數(shù)據(jù)混亂,不統(tǒng)一、來源不一致等
(2)目的
問題/需求的整理是大多同學(xué)都會做的,就不做過多解釋,但分層則是很多同學(xué)沒有意識到,其實非常重要的事情,接下來就說一下為什么要對問題/需求進(jìn)行分層?
當(dāng)我們面對大量的問題、需求時,往往會是一臉懵逼、茫然無措的狀態(tài),主要有兩個原因:
- 問題太多,不知道從何下手,先從哪里開始;
- 當(dāng)我們深入這些問題/需求會發(fā)現(xiàn),很多問題/需求都是相互依賴的,由于是對現(xiàn)有系統(tǒng)改造,很多功能已經(jīng)成型,當(dāng)我們選定一塊內(nèi)容時,往往牽扯其他很多部分,一類是橫向關(guān)聯(lián),即模塊與模塊間的關(guān)聯(lián)影響,另一種是縱向關(guān)聯(lián),即表面上是交互問題,但很可能會涉及業(yè)務(wù)邏輯層、甚至模型層的改動。
而我們在對已有系統(tǒng)改造時,很容易出現(xiàn)影響面評估不足導(dǎo)致線上bug的情況,所以除了將問題/需求從橫向功能上整理歸類,還要從縱向涉及層次劃分,這樣可以更好的分析出關(guān)聯(lián)影響面,另外,不同層次的問題改動成本、策略、方法、時間差異很大,對我們后面優(yōu)先級評估也有較大影響,所以需要有縱向劃分。
(3)輸出
整理分類后的用戶問題/需求反饋清單
5. 明確重構(gòu)目標(biāo)與指標(biāo)
(1)內(nèi)容
重構(gòu)不是為了改而改,需要有目標(biāo)的改,改造的范圍、最終希望達(dá)成的結(jié)果,如何衡量,都是在改之前要考慮清楚的問題。
明確了目標(biāo),就需要定義相應(yīng)的指標(biāo)進(jìn)行量化評估,包括評估最終結(jié)果的全局指標(biāo)和評估每塊功能的功能指標(biāo),以便有數(shù)據(jù)支撐。
根據(jù)明確的指標(biāo),需要做好前期數(shù)據(jù)收集工作,提前做好埋點等,才能對比優(yōu)化前后的結(jié)果。
(2)輸出
數(shù)據(jù)指標(biāo)定義:
6. 分析優(yōu)先級
(1)內(nèi)容
對用戶問題/需求整理后,就要分析優(yōu)先級,確定改造重構(gòu)的先后順序,主要從四個方面綜合評估:
- 價值收益。在看重構(gòu)價值時,需要同時看短期和長期兩方面,短期收益大(如交互體驗上吐槽較多的問題)和長久的事情(如模型、數(shù)據(jù)層的動作)需要同時做,不要完全擱置某一類;
- 依賴關(guān)系。根據(jù)依賴關(guān)系,一方面可以明確先后順序,另一方面對于依賴過多的內(nèi)容,尤其底層的改動,需要多花時間好好分析、好好討論;
- 改造成本。需要根據(jù)成本評估ROI
- 資源支撐。
(2)輸出
用戶問題/需求反饋清單中的優(yōu)先級結(jié)論
7. 模塊調(diào)研
(1)內(nèi)容
第一步的調(diào)研,主要是為了形成整體認(rèn)知,還沒深入到具體模塊的細(xì)節(jié)中,當(dāng)我們確定要重構(gòu)的內(nèi)容及優(yōu)先級后,再對具體要改造的內(nèi)容有針對性的做用戶、競品調(diào)研,就會更有收獲,集中精力琢磨透一塊內(nèi)容,用戶的痛點有哪些,使用的場景有哪些,同時看看其他競品的針對這些問題的處理方式,也可以稱為功能調(diào)研。
(2)輸出
- 對應(yīng)場景用戶調(diào)研結(jié)論
- 對應(yīng)功能競品調(diào)研結(jié)論
8. 制定、實施優(yōu)化方案
接下來就是根據(jù)規(guī)劃的優(yōu)先級來逐步改造優(yōu)化了。
無論是一個產(chǎn)品還是模塊的重構(gòu),這個流程方法都是通用的
四、感悟
最后從產(chǎn)品設(shè)計和心態(tài)分享幾點在重構(gòu)中體會比較深的感悟。
1. 產(chǎn)品設(shè)計
(1)敬畏用戶習(xí)慣
重構(gòu)需要改很多內(nèi)容,當(dāng)涉及到交互層,需要改變用戶原有的使用習(xí)慣時,一定要三思而后行,首先要考慮的是能否保留用戶的使用習(xí)慣,哪怕這個習(xí)慣不那么符合規(guī)范,與通用做法不太一樣,也要首先考慮保留,其實很多交互方式?jīng)]有對錯之分,只有是否合適之分,用戶用得舒服才叫合適。
如果實在需要改,就要好好考慮如何延續(xù)系統(tǒng)的風(fēng)格,過渡更平緩,怎么更好的告知。
用戶習(xí)慣不是僅僅“考慮過”就足夠了,是真的需要敬畏的心態(tài)面對,否則用戶會用中華國粹回敬你。
(2)不可避免的“浪費”
為了節(jié)約成本,我們大多希望一步,盡量減少后面的反復(fù)變動,不過產(chǎn)品重構(gòu)有時候會出現(xiàn)一些不得不做的“浪費”,主要有兩個原因:
- 為了讓用戶、數(shù)據(jù)平穩(wěn)過渡,有時會增加一段過渡期,這段過渡期可能是臨時方案,等后面時機成熟會再變化;
- 因為是在進(jìn)行中改造,所以有時需要兼容新舊兩套邏輯,從而增加額外成本
(3)用戶價值=(新體驗-舊體驗)-替換成本-感知門檻
所有產(chǎn)品動作根本上都是用戶價值驅(qū)動的,俞軍老師的用戶價值公式大家應(yīng)該都很清楚了,在這個公式的基礎(chǔ)上我在后面增加了一個【感知門檻】,即用戶感知到你新體驗帶來價值的門檻有多高,門檻越低,帶來的價值越大。
可能俞軍老師已經(jīng)把【感知門檻】算到【替換成本】里了,這里我單獨列出來,目的是想強調(diào)這部分,因為有時候會出現(xiàn)自己感動自己的情況,覺得我們做了一個非常棒的優(yōu)化,用戶這群白眼狼怎么就不領(lǐng)情呢,原因可能你這個優(yōu)化確實很好,但用戶沒感知到。
(4)隨時可回滾
沒有人能保證每一次改動都是向好的,哪怕不出bug,可能由于有的場景沒考慮到導(dǎo)致新功能產(chǎn)生負(fù)面影響,所以從功能上要保證隨時可回滾,從數(shù)據(jù)上每次數(shù)據(jù)庫刷數(shù)據(jù)前有備份。
功能回滾基于現(xiàn)在的代碼管理能力大多都具備,只要分支與需求關(guān)聯(lián)比較規(guī)范,不過數(shù)據(jù)庫備份是容易忽略的,所以要特別提醒服務(wù)端同學(xué),做大改造需要刷數(shù)據(jù)前,做好數(shù)據(jù)備份以便數(shù)據(jù)回滾。
(5)小細(xì)節(jié)能有大回報
產(chǎn)品重構(gòu)很多是用戶使用太痛苦,而改變這種痛苦不一定都是要做大的變動才能讓用戶減輕痛苦,很多細(xì)節(jié)優(yōu)化能有大的回報,例如增加最近使用、操作記憶等。
2. 心態(tài)
(1)重構(gòu)是對產(chǎn)品能力淬火的絕佳機會,而不是火坑
接手一個前人留下的產(chǎn)品,是很多同學(xué)極不情愿的事情,就覺得是一個大火坑,都不知道怎么下手,都希望自己可以從0~1做一款產(chǎn)品,挖的坑讓后面的人填。
我最開始的心態(tài)也是如此,但隨著一年多的重構(gòu),會發(fā)現(xiàn)這其實不是火坑,而是對你產(chǎn)品能力二次打磨的火爐,當(dāng)你深度長時間跟進(jìn)后,你會對用戶、場景、業(yè)務(wù)這幾個詞的理解更深。
(2)鍛煉大心臟
產(chǎn)品重構(gòu)確實很容易變成吃力不討好的事情,你會隨時受到多方的壓力:
- 用戶會噴你。因為改了用戶習(xí)慣被噴,因為加了些“亂七八糟”的被噴,因為不被理解被噴,總之有各種理由;
- 前人留下的坑。你永遠(yuǎn)都不知道下個坑會在哪里,測試也回歸不到,等到線上用戶發(fā)現(xiàn),就成了線上事故;
- 上級壓力與用戶適應(yīng)節(jié)奏矛盾。上級希望在短時間內(nèi)看到變化,但其實這比從0~1花的時間要更長,除了各種挑戰(zhàn)外,更重要的是要給用戶適應(yīng)的時間,不適合在短時間做大幅度的變動,而這種矛盾難以調(diào)和;
- 不確定的風(fēng)險。你也不知道這個版本的改造、優(yōu)化上去能不能被用戶接受,最終能否拿到你要的結(jié)果。
你需要同時面對更多的壓力,所以調(diào)整好心態(tài),鍛煉大心臟才能更面對各種質(zhì)疑和壓力。
專欄作家
周翔,微信公眾號:B端產(chǎn)品周翔,人人都是產(chǎn)品經(jīng)理專欄作家。暢銷書《不枯燥的B端產(chǎn)品實戰(zhàn)課》作者,前釘釘產(chǎn)品經(jīng)理
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
文章不錯,經(jīng)歷過深有體會!