B端產(chǎn)品,如何進行系統(tǒng)重構(gòu)?
本次會員新課我們邀請到了前釘釘高級產(chǎn)品經(jīng)理@周翔老師,作為7年B端產(chǎn)品人,具有豐富的從0~N、產(chǎn)品重構(gòu)的成功經(jīng)驗,對B端產(chǎn)品有著深刻的理解和豐富的實戰(zhàn)經(jīng)驗,沉淀出系統(tǒng)的B端產(chǎn)品方法論。本文由課程內(nèi)容整理,內(nèi)容有刪改。
大家好,我是周翔,曾在釘釘任過高級產(chǎn)品經(jīng)理,現(xiàn)在某知名獨角獸公司做資深B端產(chǎn)品經(jīng)理,有著豐富的B端產(chǎn)品從0到N及重構(gòu)經(jīng)驗。
本次分享主要分為四部分:第一部分是為什么要講B端產(chǎn)品的重構(gòu);第二部分是系統(tǒng)重構(gòu)的三種類型;第三部分是本次分享的核心內(nèi)容,即B端產(chǎn)品重構(gòu)的九大步驟;第四部分是分享在重構(gòu)過程中應(yīng)注意哪些點,以及在重構(gòu)過程中的個人思考和主要感悟。
一、為什么要講系統(tǒng)重構(gòu)?
本次分享重構(gòu)的原因主要有三個:
第一、重構(gòu)在B端產(chǎn)品中十分常見,因為有很多軟件系統(tǒng)已在公司運行很長時間,尤其在成立時間比較長的公司,通常都會有運營時間比較長的產(chǎn)品,但隨著業(yè)務(wù)的發(fā)展,很多原本的設(shè)計或邏輯已不能滿足現(xiàn)在新業(yè)務(wù)的訴求,這時就會產(chǎn)生重構(gòu)的訴求。
第二、對產(chǎn)品經(jīng)理來講,重構(gòu)比從0到1更具有挑戰(zhàn)性,因為重構(gòu)可能需要從-1甚至-N來變成1。
第三、重構(gòu)是產(chǎn)品能力的進階,當掌握好重構(gòu)方法后,再去應(yīng)對從0-1時,就會更加游刃有余,屬于降維操作。
二、系統(tǒng)重構(gòu)的三種類型
第一種類型是保留原來的系統(tǒng)地基,然后重建上層建筑,即在原系統(tǒng)基礎(chǔ)上重新開發(fā),保留或加固系統(tǒng)原有的底層架構(gòu)、數(shù)據(jù)庫,僅對上層代碼包括業(yè)務(wù)邏輯、頁面交互等部分重新開發(fā)。
第二種類型是另起爐灶,即原系統(tǒng)繼續(xù)保持運行,另起新的項目,重新做個新系統(tǒng)替換,然后再做數(shù)據(jù)的遷移;該類型模式在重構(gòu)中很常見,也是B端產(chǎn)品重構(gòu)方法中重點提及的一種方式。
第三種類型是在運行中改造,即保持現(xiàn)有的系統(tǒng)持續(xù)、穩(wěn)定運行的情況下,同時對所需要的模塊進行持續(xù)性的重構(gòu),直至達到系統(tǒng)重構(gòu)的最終目標。
3種重構(gòu)方式的對比:
第一、從形式上看,第一種方式是保留地基,重建上層建筑;第二種方式是另起爐灶;第三種是在運行中改造。
第二、適用場景,第一種方式適用于原系統(tǒng)已決定被廢棄或即將廢棄,不需要再繼續(xù)維護,但還需保留部分數(shù)據(jù);第二種方式適用于原系統(tǒng)的業(yè)務(wù)仍需要持續(xù)運行,且對新系統(tǒng)有較充足的等待時間;第三種方式適用于原系統(tǒng)業(yè)務(wù)需要持續(xù)運行,只需要優(yōu)化部分模塊,不需要對整個系統(tǒng)進行徹底的重構(gòu)。
第三、優(yōu)勢和不足,第一種方式的歷史包袱較小,重構(gòu)速度也相對更快,但是場景會比較局限;第二種方式相比于方式三,歷史包袱較小,重構(gòu)時間也更快、成本更低,但是不足之處在于一方面用戶遷移幅度大,沒有過渡期適應(yīng),當用戶從老系統(tǒng)遷移到新系統(tǒng)時會產(chǎn)生非常大的不適感,特別對SaaS或商業(yè)化產(chǎn)品會有較大風險,用戶會逐步用腳投票從而棄用原來的產(chǎn)品。
另一方面是風險高,因為缺少中間驗證的過程,直接讓用戶使用新系統(tǒng),對最終結(jié)果比較難控制;第三種方式的優(yōu)勢在于用戶可以逐步接受改造,有較平緩的過渡期,還可以通過小步快跑或迭代的方式逐步驗證和優(yōu)化,風險較小。不足之處一是歷史包袱沉重,因為在原有的舊系統(tǒng)基礎(chǔ)上改造需要考慮更多,而且在用戶側(cè)還保留著之前的使用習慣。
二是依賴、關(guān)聯(lián)的影響更多,因為改變的只是其中的某個模塊,需要牽扯到現(xiàn)有、已實現(xiàn)的部分功能;三是部分場景需要同時兼容新、舊兩套邏輯,從而增加很多額外、非必要的成本;四是部分功能會存在過渡期,但實際上會有重復(fù)的工作量,增加額外成本。
第四、綜合成本的高低總體是方式1<方式2<方式3。
綜上,方式一是在原系統(tǒng)打算或已經(jīng)廢棄的時候才適用,而這種情況其實比較少,更多時候所面臨的重構(gòu)場景是在方式二、三中選擇。
從業(yè)務(wù)方和領(lǐng)導(dǎo)們的角度出發(fā),通常都會傾向于方式三,因為風險更小,感覺上成本也更低,但實際上如果需要改造的模塊較多,方式三的成本其實會更高,因為會有很多兼容、填坑、還技術(shù)債的事情;而從產(chǎn)研的角度,通常傾向方式二,因為不用考慮過多的歷史包袱,處理起來更方便,如果需要改造的內(nèi)容較多,綜合成本也會更小。
但無論采用哪種方式,都需要結(jié)合現(xiàn)狀以及公司對于產(chǎn)品的要求綜合決定。
三、系統(tǒng)重構(gòu)的九大步驟
系統(tǒng)的重構(gòu)可以分為九大步驟:
- 第一步是需要做大量的前期調(diào)研;
- 第二步是需要對現(xiàn)有的舊邏輯做系統(tǒng)性梳理;
- 第三步是需要把需求和舊邏輯做對比分析;
- 第四步是需要對前期收到的問題或需求進行整理和分層;
- 第五步是需要基于前面的信息明確最終的重構(gòu)目標,以及衡量最終重構(gòu)目標的指標;
- 第六步是需要分析優(yōu)先級,分析完后會有對應(yīng)的模塊優(yōu)先順序;
- 第七步是需要基于具體的模塊做更加詳盡和針對性的調(diào)研;
- 第八步是需要基于調(diào)研結(jié)果制定和實施優(yōu)化策略;
- 第九步是需要在上述步驟完成后,處理大量的歷史數(shù)據(jù)。
當完成以上步驟后,就可以形成整個系統(tǒng)重構(gòu)步驟的閉環(huán),然后不斷地在下一步的行為中推進。
第一步:前期調(diào)研
前期調(diào)研主要分成業(yè)務(wù)調(diào)研和用戶調(diào)研。
其中業(yè)務(wù)調(diào)研需要了解兩部分內(nèi)容:
一是業(yè)務(wù)所在行業(yè)的通用玩法,知道行業(yè)內(nèi)一般都是怎么運作的,需要有行業(yè)認識,這部分也作為指導(dǎo)整個系統(tǒng)運行的核心業(yè)務(wù)知識和體系。
二是需要了解公司的整體業(yè)務(wù)流程、業(yè)務(wù)特色和形成的歷史淵源,其中需注意的是行業(yè)通用性和公司的不同之處,一旦忽略就容易在后面改造中照搬行業(yè)玩法,導(dǎo)致與實際業(yè)務(wù)需求不符,因此無論行業(yè)在做相關(guān)業(yè)務(wù)時的操作如何,都需要注意公司是否有限制或條件要求。
而用戶調(diào)研則主要分為三大類用戶:
第一類是干系人,主要側(cè)重于在系統(tǒng)中對產(chǎn)品有決定性作用的人,比如業(yè)務(wù)領(lǐng)導(dǎo)或?qū)ο到y(tǒng)相關(guān)有決策權(quán)的領(lǐng)導(dǎo)層,這類人群可能對具體的功能不是太關(guān)心,甚至都不是最終用戶,卻對產(chǎn)品有著關(guān)鍵性的決策作用,所以對這類人群需要優(yōu)先做調(diào)研,了解其對最終的重構(gòu)結(jié)果有怎樣的預(yù)期,需要結(jié)合這些預(yù)期做后面的行為。
第二類是典型用戶,是指有具體產(chǎn)品操作的用戶,對該類人群需要做用戶分群,因為在B端產(chǎn)品中,不同的用戶群體訴求完全不相同,甚至于完全沖突,所以需要基于不同的用戶群體區(qū)分的維度做劃分。比如在B端產(chǎn)品中,不同的管理層級的訴求差異較大,基層員工對工具的訴求和管理層對工具的訴求完全不同,這時就可以基于管理層級做劃分。
再比如按照部門或業(yè)務(wù)線、產(chǎn)品線的維度做劃分,因為不同產(chǎn)品線、業(yè)務(wù)線的訴求也不相同,所以可以在找到幾個核心的維度后,再對用戶群體做多維切割,切割完后就可以得到不同群體,得到群體后,再從中挑選不同群體的典型用戶做1V1的深度訪談。
第三類是普通用戶,即除了典型用戶外,還需要對普通用戶做調(diào)研,這時可以通過問卷方式做大批量的問題收集和需求收集,了解普通用戶通用或較高頻的痛點。
在完成上述兩大類調(diào)研后,就需要輸出對應(yīng)內(nèi)容,主要包括公司業(yè)務(wù)流程、業(yè)務(wù)特色總結(jié)形成的文檔記錄、各角色用例圖、用戶調(diào)研報告、用戶體驗地圖和用戶問題/需求池。
第二步:舊邏輯梳理
梳理內(nèi)容主要包括系統(tǒng)現(xiàn)有主流程的產(chǎn)品架構(gòu)和產(chǎn)品結(jié)構(gòu),此處需注意,架構(gòu)和結(jié)構(gòu)屬于兩種類型的東西,很多人容易混淆;當梳理好產(chǎn)品架構(gòu)和結(jié)構(gòu)后,就需要梳理具體的功能模塊;再往下是細節(jié)的功能點具體的邏輯,基于此,通過由上到下逐級細化的過程,逐步梳理清楚舊邏輯。
當梳理完后,在結(jié)果上就會有四個呈現(xiàn):一是產(chǎn)品的主流程圖,二是產(chǎn)品架構(gòu)圖,三是產(chǎn)品結(jié)構(gòu)圖(腦圖),四是通過表格整理的各模塊功能邏輯清單。尤其對復(fù)雜系統(tǒng)而言,清單是必不可少的工作量,因為在前期時B端會有很多的復(fù)雜邏輯,如果沒有清單記錄,到了后期時就容易出現(xiàn)遺漏的情況,從而影響到開發(fā)節(jié)奏。
第三步:對比分析
當了解清楚業(yè)務(wù)和用戶痛點、需求、業(yè)務(wù)現(xiàn)狀和系統(tǒng)現(xiàn)有規(guī)則后,就可以對這兩部分進行對比,通過對比即可發(fā)現(xiàn)業(yè)務(wù)實際需求和現(xiàn)有規(guī)則的缺口在哪里,比如業(yè)務(wù)有需求A,但實際系統(tǒng)規(guī)則實現(xiàn)的卻是需求B,基于對比可以發(fā)現(xiàn)很多新問題和新功能缺口,而這些都是在前期調(diào)研時,用戶出于遺忘或沒有意識到等原因而沒有反饋,但通過對比分析可以得出。
另外需要結(jié)合業(yè)務(wù)規(guī)則來判斷舊系統(tǒng)規(guī)則的合理性,很多同學(xué)會直接基于原有經(jīng)驗或競品的處理方式,強硬判斷老系統(tǒng)規(guī)則是否合理,但實際上這種判斷方式有很嚴重的問題,因為原有系統(tǒng)的設(shè)計邏輯之所以如此,很大概率都是為了迎合當時的業(yè)務(wù)訴求或有很多業(yè)務(wù)限制條件在里面。
所以在第三步時就需要把這部分規(guī)則梳理出來,避免在后續(xù)改造時把不應(yīng)該改的地方給改了,這也是第三步對比分析中重要目的之一。在對比完成后就可以輸出最終的系統(tǒng)現(xiàn)存問題清單,在輸出清單后,就可以和第一步中的用戶問題需求池相結(jié)合,從而得到最終系統(tǒng)或老系統(tǒng)現(xiàn)有問題的大池子,即需要一一去解決的內(nèi)容。
第四步:問題/需求整理與分層
如果每個問題都需要解決,大部分同學(xué)在看到大池子的問題時都會頭皮發(fā)麻,比如之前在進入某家公司做產(chǎn)品重構(gòu)時,一進去已有100多條需求的文檔在等著,再加上后期調(diào)研時的需求不斷累加,最終形成了三四百條需求的文檔,這無疑工作量很大,所以需要對問題和需求進行整理。
整理可以從三個方面入手:
一是按照功能模塊進行歸納。
二是需要把重復(fù)問題或需求進行合并,因為有時同個問題會有不同人基于不同角度去反饋,在合并問題或需求的過程中,需要對反饋同個問題或需求的人數(shù)做記錄,因為反饋人數(shù)可以代表痛點的普遍性,對于后續(xù)分析優(yōu)先級時非常有幫助。
三是需要把明顯不合理的問題或需求刪掉,因為有很多用戶的反饋比較局限,因其并不清楚業(yè)務(wù)的要求或管理上的要求就是這樣,所以對于這種明顯不合理的問題,可以直接做刪除處理。
問題或需求需要按照以下5個層次劃分:
- 第一、最底層是數(shù)據(jù)層,比較常見的比如數(shù)據(jù)混亂、不統(tǒng)一、來源不一致等問題。
- 第二、模型層,是指與產(chǎn)品設(shè)計的底層模型相關(guān)的問題,而作為B端產(chǎn)品經(jīng)理,都需要掌握關(guān)于底層模型設(shè)計的知識。
- 第三、領(lǐng)域?qū)?,又稱為業(yè)務(wù)邏輯層,即常見的各類業(yè)務(wù)邏輯問題。
- 第四、交互層,主要是指頁面的交互問題,比如菜單結(jié)構(gòu)、頁面/操作流程、控件等,這是很多介紹產(chǎn)品重構(gòu)方法時比較集中的地方,但實際上的問題或需要重構(gòu)的地方遠不止這一層的內(nèi)容。
- 第五、UI層,屬于純視覺問題,比如icon語義、樣式、頁面布局等。
在重構(gòu)時,除了需要清楚重構(gòu)的目標,更重要的點是還需要知道在重構(gòu)時可能會產(chǎn)生的關(guān)聯(lián)影響,這也是對所有問題進行分層的原因。因為在原有系統(tǒng)上做重構(gòu)時會有很多已有邏輯,不能出現(xiàn)改了一個問題卻引發(fā)剩下的10個問題或10個BUG的情況,這在重構(gòu)中需要極力避免。
分析關(guān)聯(lián)性最為常見的方式是通過模塊之間的橫向關(guān)聯(lián)和縱向關(guān)聯(lián)去分析,比如分析出A模塊和B模塊之間的橫向關(guān)聯(lián)有哪些,縱向關(guān)聯(lián)是指在頁面上看到的某個問題,比如數(shù)據(jù)顯示不對,這不僅是純交互層的問題,還會往下涉及到數(shù)據(jù)層或其他層級,可能業(yè)務(wù)邏輯出現(xiàn)問題所以導(dǎo)致頁面上展示的數(shù)據(jù)不對,需要一層層去分析。
故問題分層實際上是需要做縱向關(guān)聯(lián)的分析,因為表面看到的問題會涉及到不同層級,而不同層級需要解決的問題或成本時間完全不一樣。
分層的價值主要有兩個:一是通過橫向、縱向的關(guān)聯(lián),更容易分析出影響面;二是不同層級的改造成本都不相同,通常都是由上到下的成本逐漸增加,策略則是從左到右。
比如之前需要調(diào)整對象的狀態(tài)機,最開始以為是操作邏輯即領(lǐng)域?qū)拥膯栴},但在往下分析時才發(fā)現(xiàn),真正的原因在于原有的底層模型設(shè)計不合理,從而導(dǎo)致上層業(yè)務(wù)邏輯的不合理,這時就會涉及到改動模型層,就會牽扯到原有數(shù)據(jù)的調(diào)整,這是非常典型的表象問題。
第五步:明確重構(gòu)目標和指標
第六步:分析優(yōu)先級
第七步:模塊調(diào)研
第八步:設(shè)計、實施優(yōu)化方案
第九步:歷史數(shù)據(jù)處理
四、系統(tǒng)重構(gòu)的Tips
在接下來的部分,周翔老師講解了第五步-第九步的詳細做法,以及在最后根據(jù)自己的經(jīng)驗分享了幾個系統(tǒng)重構(gòu)時的Tips。
囿于篇幅有限,想要觀看完整視頻的朋友可掃描下方二維碼添加會員學(xué)習顧問@betty老師的微信,并備注“周翔”,即可獲得觀看鏈接。
五、三月會員新課回顧
本次會員新課,周翔老師為我們詳細講解了B端產(chǎn)品如何進行系統(tǒng)重構(gòu),希望大家都能有所收獲~
起點課堂會員全年將圍繞12大電商/B端/SaaS/運營等主題,全年共計更新48門新課,邀請一線的互聯(lián)網(wǎng)產(chǎn)品、運營實戰(zhàn)派專家,與大家分享最新的產(chǎn)品行業(yè)動態(tài)、運營玩法和干貨知識。
不僅是技術(shù)架構(gòu)層面,在數(shù)字化轉(zhuǎn)型項目中,業(yè)務(wù)也要重構(gòu),邏輯相似