復盤:在技術(shù)重構(gòu)項目中,產(chǎn)品應該做什么?
編輯導讀:在產(chǎn)品運行過程中,因為一些業(yè)務(wù)或者技術(shù)上的問題需要通過代碼重構(gòu)來改善產(chǎn)品的性能,這就是技術(shù)重構(gòu)。那么在這個過程中,產(chǎn)品需要做些什么呢?文章結(jié)合案例從3個方面展開了說明,與大家分享。
Q2參與了公司一款客服細分場景下數(shù)據(jù)產(chǎn)品的技術(shù)重構(gòu),經(jīng)歷3個月左右的時間,在團隊同學的齊心協(xié)力下比較順利的完成了目標。想通過文章復盤在技術(shù)團隊驅(qū)動的重構(gòu)項目中,作為產(chǎn)品經(jīng)理,應該為團隊做的事。
01 什么是技術(shù)重構(gòu)?
先補充一下本次重構(gòu)的背景:
該產(chǎn)品在細分賽道內(nèi)擁有較大的用戶規(guī)模,上線后已經(jīng)穩(wěn)定運行多年,面對不斷增長的用戶數(shù)量,原有的技術(shù)方案出現(xiàn)了不足,基于這樣的背景,技術(shù)團隊做出了使用新技術(shù)架構(gòu)、引入新技術(shù),以現(xiàn)有功能為主導作一次技術(shù)方案升級的決策。
從背景中可以發(fā)現(xiàn)一個隱藏的條件,技術(shù)重構(gòu)是有前提的,即產(chǎn)品是具有一定價值的,是已經(jīng)被用戶和市場驗證過的,只是存在了不足和問題,需要通過重構(gòu)來解決
1. 技術(shù)重構(gòu)的定義和原因
對技術(shù)重構(gòu)做一個簡單的定義:指代碼重構(gòu),通過代碼重構(gòu)來改善產(chǎn)品的性能,使產(chǎn)品的設(shè)計模式和架構(gòu)更加合理,提高了擴展性和維護性。
那技術(shù)重構(gòu)的原因有什么呢?可以從業(yè)務(wù)和團隊兩個角度來看。
(1)業(yè)務(wù)角度
業(yè)務(wù)體量的變化要求了產(chǎn)品需要進行技術(shù)重構(gòu),不同的業(yè)務(wù)量級對技術(shù)方案的要求是不同的,最簡單的一個例子,一款產(chǎn)品從MPV階段到成熟階段,肯定會經(jīng)歷技術(shù)重構(gòu),MPV階段用戶體量小,更注重的是驗證功能的可行性,這一階段所選取的技術(shù)方案更側(cè)重考慮快速性;而在成熟階段,用戶體量大,這個階段就要求技術(shù)方案的穩(wěn)定性,以及所帶來良好的用戶體驗
(2)團隊角度
還可以從團隊的角度來看是否需要進行技術(shù)重構(gòu),當現(xiàn)有技術(shù)方案影響到了團隊的效率時,也會考慮進行新的技術(shù)方案替換和升級
我司這款產(chǎn)品進行技術(shù)重構(gòu)就有從團隊角度的考慮,從背景中可知原有的技術(shù)方案已經(jīng)存在很久了,一方面,日常維護和處理線上問題時,研發(fā)同學經(jīng)常反饋代碼的久遠性導致需要花較多時間來定位和處理問題;另一方面,日常迭代需求時,產(chǎn)品提出的設(shè)計方案,研發(fā)同學也反饋現(xiàn)有框架不支持一些交互,導致方案妥協(xié),影響希望達到的預期效果
02 產(chǎn)品應該做什么?
“技術(shù)重構(gòu)”雖然是有技術(shù)團隊驅(qū)動和主導的,但是作為產(chǎn)品,也需要我們做一些“正確”的事,來幫助“技術(shù)重構(gòu)”更好的完成,具體的表現(xiàn)為:不隨意增加新功能;梳理現(xiàn)有功能結(jié)構(gòu);思考未來功能需要的技術(shù)準備
1. 不隨意增加新功能
技術(shù)重構(gòu)是在原有功能的基礎(chǔ)上進行的技術(shù)方案升級,“新功能”不屬于技術(shù)重構(gòu)的范疇。在技術(shù)重構(gòu)的同時進行新功能迭代,從“時間”和“成本”兩個角度看,是性價比極低的行為
(1)時間因素
技術(shù)重構(gòu)的同時,線上版本往往會保持“低頻率”的迭代,即以維護為主,只迭代影響核心功能的緊急業(yè)務(wù)需求。這就要求了技術(shù)重構(gòu)的開發(fā)周期在保持質(zhì)量的同時可以盡可能的短,因為即使線上版本保持了“低頻率”的迭代模式,但還是存在功能迭代的可能性,拉長開發(fā)周期會導致重構(gòu)結(jié)束后需要追的“需求”數(shù)量變多
增加新功能則會客觀拉長了開發(fā)周期,一起模擬一個案例,有一款電商產(chǎn)品,其交易模塊是該產(chǎn)品的核心功能,原計劃該產(chǎn)品的重構(gòu)周期是3個月,但是因為加入了新功能導致重構(gòu)周期擴展成了5個月,線上版本在每個月都迭代了一個交易模塊相關(guān)的功能。對比后就能很清楚的發(fā)現(xiàn),“不增加新功能”重構(gòu)完成后只需要追加3個功能,而“增加新功能”則需要追加5個功能,因此增加新功能是一件性價比低的決策
(2)成本因素
嚴格意義上,技術(shù)重構(gòu)對用戶應該是無感的,而增加新功能,導致用戶發(fā)現(xiàn)差異,存在一定的解釋成本,如果增加的新功能數(shù)量很多,甚至需要版本遷移的工作,增加了開發(fā)成本。即使在一些特殊的技術(shù)重構(gòu)中,比如技術(shù)方案升級了前端組件的樣式和交互,對于用戶來說也只是體驗式的不同,對于功能的實現(xiàn)度仍然是一致的
結(jié)合“時間”和“成本”的考慮,得出一個結(jié)論,在技術(shù)重構(gòu)中,增加新功能是性價比很低的行為
2. 梳理現(xiàn)有功能結(jié)構(gòu)
在技術(shù)重構(gòu)項目中,也是一次產(chǎn)品很好的梳理現(xiàn)有功能結(jié)構(gòu)的機會,一方面可以幫助研發(fā)團隊更明確哪些功能是產(chǎn)品的核心功能,哪些功能是產(chǎn)品的次要功能,可以更好的分配開發(fā)資源;另一方面可以找出現(xiàn)有功能中存在問題的模塊,并在本次重構(gòu)中進行修復
(1)原有產(chǎn)品設(shè)計存在bug的功能
原有功能和最初產(chǎn)品設(shè)計方案存在出入的,這一類功能傳遞給用戶的信息并不是我們希望的,不僅沒有實現(xiàn)最初設(shè)計想解決某個問題的目的,還可能成為用戶產(chǎn)生“產(chǎn)品無法實現(xiàn)功能”甚至產(chǎn)生流失的定時炸彈,而對于b端產(chǎn)品,每流失一個用戶都有可能會給公司帶來不少的損失。對于這類功能,就需要我們設(shè)計新的方案來更替原有的設(shè)計
案例:線上版本提供了通過“柱形圖”來對比客服數(shù)據(jù)的功能,用戶可以選擇字段,通過柱形圖來分析不同客服的數(shù)據(jù)差異情況,但部分用戶的客服團隊人數(shù)很多,客服數(shù)量變多后導致柱形圖非常擁擠,也沒有辦法觀察出差異情況
調(diào)研用戶的客服團隊情況,用戶主要對比客服的場景時,查看某一分組的客服(一般不超過50個人)最大值或者最小值部分?;谶@個情況,將原有的柱形圖改變成直方圖,提供升序和降序的切換功能
(2)原有產(chǎn)品設(shè)計影響效率的功能
產(chǎn)品功能實現(xiàn)了用戶需求,但是實現(xiàn)方式復雜,增加了用戶的操作成本,這一類功能對用戶效率產(chǎn)生了影響,對于這一類功能也是需要我們重新設(shè)計替換的
案例:線上版本提供了過濾“指定消費者和客服聊天”產(chǎn)生行為數(shù)據(jù)的能力,目的是為了不讓一些特殊的消費者(例如刷單、廣告等)數(shù)據(jù)對真實的客服團隊數(shù)據(jù)產(chǎn)生影響。但是當前添加完指定消費者賬號后,表格是正序的,雖然提示了添加成功,但是不能很直觀的從表格上看到添加后的數(shù)據(jù)。而更改排序規(guī)則后,就能提升用戶對于確認添加成功后的效率
這里我們可以得出一個結(jié)論,在技術(shù)重構(gòu)中,我們可以對原有的產(chǎn)品進行梳理,找到存在問題的功能和改動會明顯提升效率的功能,對這兩者進行優(yōu)化、修復、更替
3. 思考未來功能需要的技術(shù)準備
最后也需要我們產(chǎn)品思考未來迭代功能存在的可能性,并及時的將這一可能性告訴研發(fā)團隊,以便于他們在技術(shù)方案設(shè)計的時候,留下足夠的空間或者提前做技術(shù)準備
案例:
某款產(chǎn)品正在進行技術(shù)重構(gòu),存在一個問題:現(xiàn)有一級導航欄已經(jīng)非常臃腫了,想再加入新的導航菜單顯得非常困難,而后續(xù)還會有新的菜單加入的計劃,未來采取的做法是菜單會根據(jù)權(quán)重可配置展示、根據(jù)屏幕分辨率自適應。這就需要在本次技術(shù)重構(gòu)中,提前告知研發(fā)團隊未來期望實現(xiàn)的,那就可以提前將菜單不寫死,避免了菜單欄模塊二次重構(gòu)
總結(jié)
在面對技術(shù)重構(gòu)類型的項目時,產(chǎn)品也不是無所事事的,需要我們幫助團隊梳理原有的功能,同時想清楚未來迭代的計劃,提前在技術(shù)方案升級時做好準備,留下口子。只有做了應該做的事,才不會影響團隊的進度,提升團隊的效率,避免出現(xiàn)二次重構(gòu)
作者:晌午,微信公眾號:晌午自習室
本文由 @晌午 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于CC0協(xié)議
- 目前還沒評論,等你發(fā)揮!