復(fù)盤:在技術(shù)重構(gòu)項(xiàng)目中,產(chǎn)品應(yīng)該做什么?

晌午
0 評(píng)論 4161 瀏覽 30 收藏 11 分鐘

編輯導(dǎo)讀:在產(chǎn)品運(yùn)行過程中,因?yàn)橐恍I(yè)務(wù)或者技術(shù)上的問題需要通過代碼重構(gòu)來(lái)改善產(chǎn)品的性能,這就是技術(shù)重構(gòu)。那么在這個(gè)過程中,產(chǎn)品需要做些什么呢?文章結(jié)合案例從3個(gè)方面展開了說明,與大家分享。

Q2參與了公司一款客服細(xì)分場(chǎng)景下數(shù)據(jù)產(chǎn)品的技術(shù)重構(gòu),經(jīng)歷3個(gè)月左右的時(shí)間,在團(tuán)隊(duì)同學(xué)的齊心協(xié)力下比較順利的完成了目標(biāo)。想通過文章復(fù)盤在技術(shù)團(tuán)隊(duì)驅(qū)動(dòng)的重構(gòu)項(xiàng)目中,作為產(chǎn)品經(jīng)理,應(yīng)該為團(tuán)隊(duì)做的事。

01 什么是技術(shù)重構(gòu)?

先補(bǔ)充一下本次重構(gòu)的背景:

該產(chǎn)品在細(xì)分賽道內(nèi)擁有較大的用戶規(guī)模,上線后已經(jīng)穩(wěn)定運(yùn)行多年,面對(duì)不斷增長(zhǎng)的用戶數(shù)量,原有的技術(shù)方案出現(xiàn)了不足,基于這樣的背景,技術(shù)團(tuán)隊(duì)做出了使用新技術(shù)架構(gòu)、引入新技術(shù),以現(xiàn)有功能為主導(dǎo)作一次技術(shù)方案升級(jí)的決策。

從背景中可以發(fā)現(xiàn)一個(gè)隱藏的條件,技術(shù)重構(gòu)是有前提的,即產(chǎn)品是具有一定價(jià)值的,是已經(jīng)被用戶和市場(chǎng)驗(yàn)證過的,只是存在了不足和問題,需要通過重構(gòu)來(lái)解決

1. 技術(shù)重構(gòu)的定義和原因

對(duì)技術(shù)重構(gòu)做一個(gè)簡(jiǎn)單的定義:指代碼重構(gòu),通過代碼重構(gòu)來(lái)改善產(chǎn)品的性能,使產(chǎn)品的設(shè)計(jì)模式和架構(gòu)更加合理,提高了擴(kuò)展性和維護(hù)性。

那技術(shù)重構(gòu)的原因有什么呢?可以從業(yè)務(wù)和團(tuán)隊(duì)兩個(gè)角度來(lái)看。

(1)業(yè)務(wù)角度

業(yè)務(wù)體量的變化要求了產(chǎn)品需要進(jìn)行技術(shù)重構(gòu),不同的業(yè)務(wù)量級(jí)對(duì)技術(shù)方案的要求是不同的,最簡(jiǎn)單的一個(gè)例子,一款產(chǎn)品從MPV階段到成熟階段,肯定會(huì)經(jīng)歷技術(shù)重構(gòu),MPV階段用戶體量小,更注重的是驗(yàn)證功能的可行性,這一階段所選取的技術(shù)方案更側(cè)重考慮快速性;而在成熟階段,用戶體量大,這個(gè)階段就要求技術(shù)方案的穩(wěn)定性,以及所帶來(lái)良好的用戶體驗(yàn)

(2)團(tuán)隊(duì)角度

還可以從團(tuán)隊(duì)的角度來(lái)看是否需要進(jìn)行技術(shù)重構(gòu),當(dāng)現(xiàn)有技術(shù)方案影響到了團(tuán)隊(duì)的效率時(shí),也會(huì)考慮進(jìn)行新的技術(shù)方案替換和升級(jí)

我司這款產(chǎn)品進(jìn)行技術(shù)重構(gòu)就有從團(tuán)隊(duì)角度的考慮,從背景中可知原有的技術(shù)方案已經(jīng)存在很久了,一方面,日常維護(hù)和處理線上問題時(shí),研發(fā)同學(xué)經(jīng)常反饋代碼的久遠(yuǎn)性導(dǎo)致需要花較多時(shí)間來(lái)定位和處理問題;另一方面,日常迭代需求時(shí),產(chǎn)品提出的設(shè)計(jì)方案,研發(fā)同學(xué)也反饋現(xiàn)有框架不支持一些交互,導(dǎo)致方案妥協(xié),影響希望達(dá)到的預(yù)期效果

02 產(chǎn)品應(yīng)該做什么?

“技術(shù)重構(gòu)”雖然是有技術(shù)團(tuán)隊(duì)驅(qū)動(dòng)和主導(dǎo)的,但是作為產(chǎn)品,也需要我們做一些“正確”的事,來(lái)幫助“技術(shù)重構(gòu)”更好的完成,具體的表現(xiàn)為:不隨意增加新功能;梳理現(xiàn)有功能結(jié)構(gòu);思考未來(lái)功能需要的技術(shù)準(zhǔn)備

1. 不隨意增加新功能

技術(shù)重構(gòu)是在原有功能的基礎(chǔ)上進(jìn)行的技術(shù)方案升級(jí),“新功能”不屬于技術(shù)重構(gòu)的范疇。在技術(shù)重構(gòu)的同時(shí)進(jìn)行新功能迭代,從“時(shí)間”和“成本”兩個(gè)角度看,是性價(jià)比極低的行為

(1)時(shí)間因素

技術(shù)重構(gòu)的同時(shí),線上版本往往會(huì)保持“低頻率”的迭代,即以維護(hù)為主,只迭代影響核心功能的緊急業(yè)務(wù)需求。這就要求了技術(shù)重構(gòu)的開發(fā)周期在保持質(zhì)量的同時(shí)可以盡可能的短,因?yàn)榧词咕€上版本保持了“低頻率”的迭代模式,但還是存在功能迭代的可能性,拉長(zhǎng)開發(fā)周期會(huì)導(dǎo)致重構(gòu)結(jié)束后需要追的“需求”數(shù)量變多

增加新功能則會(huì)客觀拉長(zhǎng)了開發(fā)周期,一起模擬一個(gè)案例,有一款電商產(chǎn)品,其交易模塊是該產(chǎn)品的核心功能,原計(jì)劃該產(chǎn)品的重構(gòu)周期是3個(gè)月,但是因?yàn)榧尤肓诵鹿δ軐?dǎo)致重構(gòu)周期擴(kuò)展成了5個(gè)月,線上版本在每個(gè)月都迭代了一個(gè)交易模塊相關(guān)的功能。對(duì)比后就能很清楚的發(fā)現(xiàn),“不增加新功能”重構(gòu)完成后只需要追加3個(gè)功能,而“增加新功能”則需要追加5個(gè)功能,因此增加新功能是一件性價(jià)比低的決策

(2)成本因素

嚴(yán)格意義上,技術(shù)重構(gòu)對(duì)用戶應(yīng)該是無(wú)感的,而增加新功能,導(dǎo)致用戶發(fā)現(xiàn)差異,存在一定的解釋成本,如果增加的新功能數(shù)量很多,甚至需要版本遷移的工作,增加了開發(fā)成本。即使在一些特殊的技術(shù)重構(gòu)中,比如技術(shù)方案升級(jí)了前端組件的樣式和交互,對(duì)于用戶來(lái)說也只是體驗(yàn)式的不同,對(duì)于功能的實(shí)現(xiàn)度仍然是一致的

結(jié)合“時(shí)間”和“成本”的考慮,得出一個(gè)結(jié)論,在技術(shù)重構(gòu)中,增加新功能是性價(jià)比很低的行為

2. 梳理現(xiàn)有功能結(jié)構(gòu)

在技術(shù)重構(gòu)項(xiàng)目中,也是一次產(chǎn)品很好的梳理現(xiàn)有功能結(jié)構(gòu)的機(jī)會(huì),一方面可以幫助研發(fā)團(tuán)隊(duì)更明確哪些功能是產(chǎn)品的核心功能,哪些功能是產(chǎn)品的次要功能,可以更好的分配開發(fā)資源;另一方面可以找出現(xiàn)有功能中存在問題的模塊,并在本次重構(gòu)中進(jìn)行修復(fù)

(1)原有產(chǎn)品設(shè)計(jì)存在bug的功能

原有功能和最初產(chǎn)品設(shè)計(jì)方案存在出入的,這一類功能傳遞給用戶的信息并不是我們希望的,不僅沒有實(shí)現(xiàn)最初設(shè)計(jì)想解決某個(gè)問題的目的,還可能成為用戶產(chǎn)生“產(chǎn)品無(wú)法實(shí)現(xiàn)功能”甚至產(chǎn)生流失的定時(shí)炸彈,而對(duì)于b端產(chǎn)品,每流失一個(gè)用戶都有可能會(huì)給公司帶來(lái)不少的損失。對(duì)于這類功能,就需要我們?cè)O(shè)計(jì)新的方案來(lái)更替原有的設(shè)計(jì)

案例:線上版本提供了通過“柱形圖”來(lái)對(duì)比客服數(shù)據(jù)的功能,用戶可以選擇字段,通過柱形圖來(lái)分析不同客服的數(shù)據(jù)差異情況,但部分用戶的客服團(tuán)隊(duì)人數(shù)很多,客服數(shù)量變多后導(dǎo)致柱形圖非常擁擠,也沒有辦法觀察出差異情況

調(diào)研用戶的客服團(tuán)隊(duì)情況,用戶主要對(duì)比客服的場(chǎng)景時(shí),查看某一分組的客服(一般不超過50個(gè)人)最大值或者最小值部分?;谶@個(gè)情況,將原有的柱形圖改變成直方圖,提供升序和降序的切換功能

(2)原有產(chǎn)品設(shè)計(jì)影響效率的功能

產(chǎn)品功能實(shí)現(xiàn)了用戶需求,但是實(shí)現(xiàn)方式復(fù)雜,增加了用戶的操作成本,這一類功能對(duì)用戶效率產(chǎn)生了影響,對(duì)于這一類功能也是需要我們重新設(shè)計(jì)替換的

案例:線上版本提供了過濾“指定消費(fèi)者和客服聊天”產(chǎn)生行為數(shù)據(jù)的能力,目的是為了不讓一些特殊的消費(fèi)者(例如刷單、廣告等)數(shù)據(jù)對(duì)真實(shí)的客服團(tuán)隊(duì)數(shù)據(jù)產(chǎn)生影響。但是當(dāng)前添加完指定消費(fèi)者賬號(hào)后,表格是正序的,雖然提示了添加成功,但是不能很直觀的從表格上看到添加后的數(shù)據(jù)。而更改排序規(guī)則后,就能提升用戶對(duì)于確認(rèn)添加成功后的效率

這里我們可以得出一個(gè)結(jié)論,在技術(shù)重構(gòu)中,我們可以對(duì)原有的產(chǎn)品進(jìn)行梳理,找到存在問題的功能和改動(dòng)會(huì)明顯提升效率的功能,對(duì)這兩者進(jìn)行優(yōu)化、修復(fù)、更替

3. 思考未來(lái)功能需要的技術(shù)準(zhǔn)備

最后也需要我們產(chǎn)品思考未來(lái)迭代功能存在的可能性,并及時(shí)的將這一可能性告訴研發(fā)團(tuán)隊(duì),以便于他們?cè)诩夹g(shù)方案設(shè)計(jì)的時(shí)候,留下足夠的空間或者提前做技術(shù)準(zhǔn)備

案例:

某款產(chǎn)品正在進(jìn)行技術(shù)重構(gòu),存在一個(gè)問題:現(xiàn)有一級(jí)導(dǎo)航欄已經(jīng)非常臃腫了,想再加入新的導(dǎo)航菜單顯得非常困難,而后續(xù)還會(huì)有新的菜單加入的計(jì)劃,未來(lái)采取的做法是菜單會(huì)根據(jù)權(quán)重可配置展示、根據(jù)屏幕分辨率自適應(yīng)。這就需要在本次技術(shù)重構(gòu)中,提前告知研發(fā)團(tuán)隊(duì)未來(lái)期望實(shí)現(xiàn)的,那就可以提前將菜單不寫死,避免了菜單欄模塊二次重構(gòu)

總結(jié)

在面對(duì)技術(shù)重構(gòu)類型的項(xiàng)目時(shí),產(chǎn)品也不是無(wú)所事事的,需要我們幫助團(tuán)隊(duì)梳理原有的功能,同時(shí)想清楚未來(lái)迭代的計(jì)劃,提前在技術(shù)方案升級(jí)時(shí)做好準(zhǔn)備,留下口子。只有做了應(yīng)該做的事,才不會(huì)影響團(tuán)隊(duì)的進(jìn)度,提升團(tuán)隊(duì)的效率,避免出現(xiàn)二次重構(gòu)

 

作者:晌午,微信公眾號(hào):晌午自習(xí)室

本文由 @晌午 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自 Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!
专题
18078人已学习15篇文章
语音交互是基于语音输入的新一代交互模式,通过说话就可以得到反馈结果。本专题的文章分享了语音交互的入门指南。
专题
12062人已学习11篇文章
本专题的文章分享了消息通知系统设计指南。
专题
112370人已学习29篇文章
透过别人的项目总结,学习项目管理项目设计项目流程经验。
专题
19898人已学习13篇文章
本专题的文章分享了TO G产品的入门指南,包括什么是G端产品、产品的特点...