以做菜為例來看為什么動不動要系統(tǒng)重構(gòu)?

0 評論 947 瀏覽 1 收藏 7 分鐘
🔗 B端产品需要更多地依赖销售团队和渠道合作来推广产品,而C端产品需要更多地利用网络营销和口碑传播来推广产品..

從簡單的功能優(yōu)化到復(fù)雜的架構(gòu)升級,系統(tǒng)重構(gòu)往往伴隨著高昂的時間成本和技術(shù)挑戰(zhàn)。本文通過一個生動的做菜場景,深入淺出地解釋了系統(tǒng)重構(gòu)的重要性和必要性。

相信在產(chǎn)品經(jīng)理的職業(yè)生涯中,大家不止一次聽過系統(tǒng)重構(gòu)這個詞。

而且所有產(chǎn)品經(jīng)理都經(jīng)歷過這樣的魔幻時刻:明明只是加個篩選條件,技術(shù)評估卻要3個月;想優(yōu)化某個功能按鈕,卻被告知整個頁面都要重寫。

一問原因:因為要系統(tǒng)重構(gòu)!

那到底什么是重構(gòu)呢?

如果用一個我親身經(jīng)歷過的例子來解釋重構(gòu)的重要意義就是:

我當(dāng)年所在某電商平臺在一次促銷活動時,導(dǎo)致每秒峰值訂單突破5000萬時,訂單系統(tǒng)響應(yīng)速度從200ms驟升至2秒,注意是每單哦!

最后一番排查發(fā)現(xiàn):優(yōu)惠計算模塊與庫存模塊存在循環(huán)調(diào)用,核心業(yè)務(wù)邏輯與日志模塊深度耦合。

想象這樣的場景:炒鍋師傅(優(yōu)惠模塊)每做一份宮保雞丁,都要跑到倉庫(庫存系統(tǒng))確認(rèn)花生庫存,再折返調(diào)料臺(日志系統(tǒng))記錄操作日志。高峰期這樣的折返跑,不出餐慢才是奇跡。

同過這個做菜的例子大家很容易理解,這并不是因為軟件設(shè)計失誤,而是廚房(系統(tǒng))擴(kuò)張后的必然代價,單多了你就要優(yōu)化的工序,要么加人要么提前做準(zhǔn)備,相信沒有人會去說廚師你怎么怎么樣對吧?

不過很多時候,在我做咨詢走訪很多公司時,第一時間這個團(tuán)隊的信息化負(fù)責(zé)人的結(jié)論都是會把這個問題甩到“初代”產(chǎn)品經(jīng)理身上,聲稱是“初代”系統(tǒng)的產(chǎn)品經(jīng)理的設(shè)計不合理所導(dǎo)致了今天的一切。

但是我想說:重構(gòu)系統(tǒng)是不可避免的!初期就沒有幾個客人的時候你要做一個航母出來也沒有用啊?

那今天我就給大家盤點一下重構(gòu)的觸發(fā)條件(避免在規(guī)劃會上被甩鍋):

01【產(chǎn)品驅(qū)動】功能疊加困境:新需求開發(fā)周期超過3個月

【大白話解讀】你是一家賣燒烤的店,當(dāng)某天老板讓你推出酸菜魚的時候,你要做的就是需要重建灶臺,先把一部分烤爐改成煤氣灶。

02【產(chǎn)品驅(qū)動】協(xié)作效率低下:跨團(tuán)隊需求需修改5個以上模塊,這背后往往是領(lǐng)域劃分不到位。

【大白話解讀】三個廚師擠在一個灶臺炒菜,你覺得會不會打架?

03【技術(shù)驅(qū)動】系統(tǒng)性能瓶頸:核心接口成功率低于99%

【大白話解讀】相當(dāng)于廚房出餐錯誤率超過10%

那我們要如何處理系統(tǒng)重構(gòu)呢?

實時上按照現(xiàn)在企業(yè)的要求:重構(gòu)就像在一家正常營業(yè)的餐廳去升級后廚——客人們照常吃著火鍋,后廚卻在悄然更換排風(fēng)系統(tǒng)。

所以要求我們決不能停機!為此具體的執(zhí)行步驟可以定義為下面的三大部分:

Step1:先搭臨時灶臺(顧舊立新)

在后廚角落搭建一個新的煤氣灶,保持老系統(tǒng)不再迭代,在旁邊根據(jù)新的產(chǎn)品規(guī)劃重新設(shè)計整個功能并實現(xiàn)。

Step2:食材統(tǒng)一分裝(接口翻譯層)

老顧客依然要吃到熟悉的”麻辣香鍋”,即便后廚已經(jīng)改用智能炒菜機。

我們知道很多時候在重構(gòu)的時候由于新的方案的應(yīng)用,比如用戶希望取消早已經(jīng)不用的某個字段,很多老系統(tǒng)的交互還是用生成一個文件的形式定時去查詢(很多銀行系統(tǒng)現(xiàn)在還是這樣)。

注意這個時候我們要做的是必須保證提供的數(shù)據(jù)消費方式和命名方式都是之前的(比如之前叫userID),我們要做的是必須額外建設(shè)一個新的翻譯模塊,把所有新的數(shù)據(jù)格式與接口翻譯成之前的模式,這么做的最重要一點是,避免當(dāng)某天下游報錯的時候,別人可以直接把一本糊涂賬扔到你頭上,都是因為你重構(gòu)系統(tǒng)導(dǎo)致的,我數(shù)據(jù)都亂了(別問我怎么知道的,血和淚換來的)。

Step3:動線魔法改造(數(shù)據(jù)雙寫+灰度發(fā)布)

就像在傳菜通道加裝自動分揀機,先讓新模塊處理5%的流量,同時保持老系統(tǒng)運轉(zhuǎn)。當(dāng)新模塊的到達(dá)率穩(wěn)定在99.97%后,才逐步關(guān)閉老舊代碼。

所以總結(jié)一下就是:

  • 蓋新屋子:保持老房子對外輸出不變,在旁邊另起爐灶;
  • 保持對外輸出不變:翻譯成現(xiàn)有接口的輸出格式:字段叫法/字段類型/消費方式;
  • 灰度切換流量:逐步將老系統(tǒng)的流量切換至新系統(tǒng),最后關(guān)停老系統(tǒng);

當(dāng)然在文章的最后結(jié)尾,必須給大家補充一個我的經(jīng)驗教訓(xùn):

重構(gòu)這件事在任何一家公司都是出力不討好的事,活又多,風(fēng)險又高,如果你不幸接手了,那你要做的必須要讓你的業(yè)務(wù)可感知,也就是通過重構(gòu)給業(yè)務(wù)側(cè)帶來新的業(yè)務(wù)價值提升(速讀/解決舊歷史問題/解決之前業(yè)務(wù)不能實現(xiàn)的需求),否則重構(gòu)的過程就將無比艱難!

下次再聽到”需要重構(gòu)”時,請記住:這不是在否定你的設(shè)計,而是邀請你參與指揮一場廚房革命。畢竟,在數(shù)字化生存時代,不會用架構(gòu)思維武裝自己的產(chǎn)品經(jīng)理,終將成為被重構(gòu)的對象。

本文由人人都是產(chǎn)品經(jīng)理作者【三爺茶館】,微信公眾號:【三爺茶館】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!
专题
87440人已学习18篇文章
沉住气,学做事,更要学会做人。
专题
112344人已学习29篇文章
透过别人的项目总结,学习项目管理项目设计项目流程经验。
专题
14202人已学习13篇文章
互联网IT技术与产业的结合,衍生出了许多生命力强大的平台经济,货运领域就是如此衍生而来的。本专题的文章帮助大家了解货运平台。
专题
12763人已学习13篇文章
在产品的不同生命周期,需要有对应的产品战略以应对市场。本专题的文章分享了如何做好产品战略规划。
专题
17249人已学习14篇文章
本专题的文章分享了如何设计B端SaaS产品及B端SaaS产品方法论。
专题
11582人已学习12篇文章
任何理论都有它的局限性和前提条件,没有一种方法论是永远有效的。品牌方法论一直处在变化阶段,它随着时代发展的变化而变化。本专题的文章分享了品牌方法论。