【給PM】產品,應該要定期砍功能,人生也是

【給PM】產品,應該要定期砍功能,人生也是

做為一個PM,我們常常在想要「加什麼功能」,但你有沒有固定回過頭檢視,什麼功能已經可以「砍掉」了呢?

「什麼?為什麼要砍掉?即使沒人用,放在那邊也不虧呀?」

當然虧,功能一直加上去的結果,產品會變得越來越複雜,其實會造成一些問題:

1. 吃掉開發資源:

每次規劃新功能時,都要考慮新功能對既有功能的影響,要考慮相容性問題,也要思考系統資源會不會越吃越多,甚至光是檔案越長越大,都可能遇到問題。

例如我待過的某A公司,做硬體產品,功能寫在韌體,用戶可以藉由升級韌體,獲得新功能,但常常遇到的問題是,功能越做越多,韌體越長越大包,但是舊有機種的硬體規格不變啊!升級就會爆掉了,所以每次都要花很多開發資源做韌體瘦身。

總之功能越多,後續的開發與維護越不容易。

2. 測試大發散:

由於增加新的功能,也可能影響到既有的功能,所以每一次進版測試,都不能只測試新增的功能,而是要從頭到尾測試一次,現在的平台又越來越多種,有網頁、電腦版、iOS app、Android app、手機上的網頁版等,所以會有測試項目越加越多的狀況。一般如果沒有發現這樣的狀況,測試人員人數不變,要測的越來越多,那就只有哭了啊!

3. 營運維護超費力:

由於1. 2. 的問題,導致潛在的bug,或是所謂的技術債,會越累積越多,前端客服、營運要解決的問題也越來越多,可能是客人不懂新功能就來問、亂按回不去原本要操作的頁面就來問、有bug就來問、看到介面複雜不會用就來問......各種疑難雜症,會成指數型成長,而新的客服人員要學的東西也會越來越多,要面對的狀況越來越複雜......

接著,bug回報給工程師時要釐清的東西越來越多,要解bug要考慮的狀況越來越多,修改與測試越來越久,回覆給顧客的時間越來越長,客戶滿意度越來越低......一切形成惡性循環。

所以,如果一個功能已經沒有什麼人在用了,沒有帶來價值,還要花一大堆力氣維護,其實是一種資源的浪費。

我在做產品的時候懂這個道理,但是有一天我驚覺,其實我自己的人生也陷入這樣的問題,而我不自知。

 

你的人生,是否被許多舊功能塞滿?

我的人生角色在這幾年增加得特別快。

在工作方面,30歲前後,正是能力成熟,能負擔更多責任的年紀。這幾年負責的工作項目越來越複雜,要跟更多人溝通,也要花更多心力在專案細節上。

在家庭方面,偏偏這個時候,也是差不多結婚生小孩的年紀,所以在家庭方面,我迎接了新的挑戰,結了婚要照顧、維運一個家、要陪小孩玩、要洗衣曬衣洗碗打掃整理,而且我最近還生了第二個孩子,生過兩個小孩的人都知道,因為兩個小孩會「交互作用」,帶來的疲累不是兩倍,而是平方,簡直像是遇到「隕石式開發」。

加上我經營Medium,開始有一批讀者,認識了許多新的人,然後開始有專欄邀約、講座邀約、出書邀約、或是「聊聊」的邀約。

接著,我開了線上課程,有了一批學生,為了這些學生的學習效果與權益,我回答課程問題、改作業,並營運一個學習社團,每兩天更新實務學習案例與大家討論。

同時,為了自己的成長,我也看書、上實體課、上線上課程、聽各種音頻,要學習與消化,其實非常消耗時間。

天啊!幾年內,我的「功能」越加越多、越疊越高,卻沒有加過資源、砍過功能,難怪我每天都睡不飽,我在超頻操我的系統啊!

而且,由於注意力不足,我的學習效率不彰,朋友找我我沒時間聚會,Medium文章越來越少更新,兒子覺得媽媽注意力不在他身上就大鬧......像產品流通出去的bug一樣,我要花更多時間心力處理,更加消耗我的注意力,浪費了我寶貴的資源。

同時我發現,一般人的思維是會檢視手上現有剩下的資源,再決定要不要嘗試新的事情,就像公司開發產品,也常常盤點自己有多少開發資源,再決定要做多少事,但是,在我目前已經滿檔的情況下,除非我要更操自己,否則我其實無法做新的、能帶給我下階段成長的事。我的人生被我滿檔的資源利用限制住了。

所以,要怎麼解決這些問題呢?時間管理對我來說有用嗎?到了這個程度,已經滿出來了,怎麼樣排列組合,優化的程度都有限。

 

解決人生資源問題的幾種方法

傳統上,大家會有什麼做法呢?

1. 加資源:

用更好的硬體規格來解決系統資源不足的問題,例如電腦CPU i5跑不動,換i7就更順、更快,或者是不升級硬體的話,做refactor程式重構,讓程式運作起來更有效率。

也就是說,我必須升級我自己的系統能力,例如之前寫一篇Medium文章要五小時(其實遠超過!),只要我有辦法寫一篇只花兩小時,我的人生不就多出三小時了嗎?

但是升級硬體要花很多錢,做程式重構要花很多時間,而且這段期間看起來沒啥產出,常遭到老闆的質疑。必須思考,我有這樣的餘裕做這件事嗎?

2. 開發自動化測試:

也就是盡量減少手動測試的項目,像一些按按按看反應的測試,其實可以由程式這邊運作就好,這可以解決測試人員不足的問題,維護程式的品質。

放到人生中,你可以思考-什麼事情是可以自動化的?例如工作上很忙碌,你嘗試交給部屬了嗎?家事很多,你買掃地機器人了嗎?(我還買了洗碗機!)但是,同樣地,要開發自動化測試的程式,也是要花資源的,在工作上,要訓練幫手也是要花時間的,要花的心力還不小。你有這樣的餘欲嗎?

其實,上面這兩個解法的前提,是你的功能還有價值,所以有維護的必要,才要花錢花時間,讓他能繼續運作。真的沒有人用、沒有帶來太大價值的產品,為什麼要為它花錢花時間呢?各方確認溝通之後,勇敢地砍掉吧!

怎麼判斷該不該砍?這就是數據的重要性了,你的產品應該設計一個方法,讓你可以知道使用者到底都使用什麼功能、不使用什麼功能、死在什麼功能。

放到生活上也是,你必須記錄並分析你把珍貴的資源,包含注意力、時間、金錢,都花在什麼事情上。是紀錄「並分析」喔!你記帳嗎?你記帳之後,有分析過自己怎麼花錢的嗎?還是只記不分析 ,或是指分析不行動,記安心的?

分析之後,檢視這些消耗你資源的活動,有哪些是可以砍的?

 

很少人用的功能,就是沒有需求、沒有價值的功能,這應該是最好砍的。

什麼,你說還是有少數客戶用,砍了他們會抱怨怎麼辦?

這就好像你在生活中要拒絕事情,總是會得罪人,如果客戶很少,你維護這個功能要花的力氣很大,那還是好好跟客戶溝通,然後勇敢地砍吧!重點是你自己的人生優先順序是什麼,Google砍掉這麼多人用的Inbox,這麼多人罵(包含我),還是砍了呀!

必須先認清,沒有什麼功能是必要的,用戶總是找得到替代方案,或者就乾脆捨棄掉「不適合」的少數用戶,率先追求自己人生的升級吧!

 

如果是很多人在用的功能,但是bug很多,要花很多力氣維護,那怎麼辦?

很多人在用,代表有需求,有需求就有價值,我不會砍它,但我會集中火力把它的bug解掉,因為很多人用還bug很多,是找死嗎?這就是消耗組織資源的大怪獸,解決這種問題,可以最大幅度拉高運作效率。

例如對我的生活來說,「兒子的安全感」對我來說就是最大要處理的事情,只要我花不夠的時間陪他,他就會為了吸引我的注意力,干擾我做任何事情,但是我總不可能把兒子砍掉(笑),所以最佳解是花時間養成他晚上九點睡的習慣,他睡了我才好做事,周末就花一點時間帶他去公園紮實地玩一輪,回家立刻睡倒,我就能做自己的事情。

 

定期評估「要不要繼續做」

資源這麼珍貴,要讓自己的「投資」更高效,我的思維是,既然投了資源就一定要看到回報。寧可在做每件事情時,累一點但有回報,也不要輕鬆,但是沒有讓人眼睛一亮的結果。而且,要建立「 check point」,定期檢視成效,然後很快地決定要不要往下投資,不適合就砍掉。

這跟敏捷的衝刺概念很像,短期間內全力衝刺,衝刺完一輪之後就改進取捨,而不是一個專案一股腦做到完。

其實近年興起一陣「斷捨離」風,嘗試丟了許多不需要但捨不得的雜物的我,也感受到了清爽與解放,當然要下定決定砍功能,必須做更多分析、確認、溝通,並不像丟東西這麼簡單,但我非常鼓勵大家,為了讓你的產品以及人生走得長久,釋放被浪費的資源,可以盤點一下,然後勇敢地砍吧!

0 則讀友回應