答應(yīng)我,Saas重構(gòu)前這10個坑一定要看完!

5 評論 4847 瀏覽 41 收藏 19 分鐘

我覺得重構(gòu)這個坑太大了,所以就從十個方向來說說,重構(gòu)前到底有哪些點是值得注意的。

如果你沒有做過重構(gòu),請看完這10個坑后收藏起來,下次要重構(gòu)前翻出來再仔細看一遍,順便給你的leader也看看;如果你正踩在重構(gòu)的坑上,也請看完這些坑,那些還沒踩的千萬要注意了!如果你不幸和我一樣做完了重構(gòu),來,我們握個手吧。

首先,我們明確下重構(gòu)這個定義:把之前的系統(tǒng)從里到外地重新做一遍,做完后就是2套獨立不相干的系統(tǒng),不是在之前的系統(tǒng)上部分重構(gòu),因為部分重構(gòu)的坑還不夠大。重構(gòu)是因為之前的技術(shù)框架不能支持后續(xù)新功能的迭代了。

下面就來說說這10大坑吧!

設(shè)計不合理,改不改?

2年前我入職,任務(wù)就是重構(gòu)系統(tǒng),之前的產(chǎn)品經(jīng)理不知道換了多少波,也沒有留下完整的文檔。要重構(gòu),肯定要對老系統(tǒng)了如指掌啊,沒辦法,我們只能先花2個禮拜的時間,把老系統(tǒng)的邏輯基本完整地梳理下來。

在一些業(yè)務(wù)流程方面,就發(fā)現(xiàn)很多不合乎邏輯的地方。比如藥房退藥以后,藥品的狀態(tài)不是已退藥,而是又回到了上一步:待發(fā)藥;治療師已經(jīng)開始治療了,醫(yī)生還能把醫(yī)囑項刪掉,這條記錄就突然消失了;待收費的項目幾天后就自動關(guān)閉了,這錢追不回來了……

作為一個嚴謹?shù)漠a(chǎn)品經(jīng)理,這些不合理肯定要改!于是我就把退藥后的狀態(tài)改成了已退藥,結(jié)果自家診所的藥師就炸了:“我藥發(fā)出去以后才發(fā)現(xiàn)醫(yī)生開錯了,把藥拿回來讓醫(yī)生改了重新發(fā),你現(xiàn)在退了藥直接就是已退藥,那醫(yī)生怎么改?”

我怎么會想到醫(yī)生老是會開錯藥呢,聽完突然心里怕怕的,退藥不應(yīng)該是患者不想要了嗎?為了保持我之前完美的邏輯,我又加了個功能:退回修改。我估計其他診所的藥師看了這個按鈕會有種莫名其妙的感覺吧。

遇到這些不合理時,真的挺糾結(jié)的,之前的產(chǎn)品經(jīng)理也不是傻子,故意弄個邏輯缺陷,肯定是被客戶逼的。但為了系統(tǒng)內(nèi)功能邏輯的一致性和合理性,我們還是改了之前不合理的地方,后面被吐槽也是在所難免的。

用戶習(xí)慣怎么破?

上面也說到,我們重構(gòu)的主要原因是:之前的技術(shù)框架太老,不能支持新功能的迭代。

但如果只是技術(shù)層面上去重做一套系統(tǒng),視覺和交互體驗上都沒有改變的話,領(lǐng)導(dǎo)如何感知到我們團隊的價值?技術(shù)是不能被直觀看到的東西,交互和視覺才是容易被感知到的東西。

我們經(jīng)常看到的是C端產(chǎn)品,過段時間就換一套視覺風(fēng)格,并一定對用戶友好,特別是一些低頻的必須品,比如說手機銀行,但這是能讓領(lǐng)導(dǎo)秀業(yè)績的好東西。

所以,重構(gòu)Saas,視覺和交互一定要改!但我們盡量不要改太多:

  1. 系統(tǒng)結(jié)構(gòu)框架和頁面上功能布局改動不要太大,方便快速找到功能;
  2. 菜單和頁面上的名詞盡量不要改動,且各模塊間保持一致;
  3. 交互形式和組件要全局統(tǒng)一的改,不然前后操作不一致,用戶使用時更懵。

我們真的不能太高估用戶的電腦水平,比如說我們就改了個時間控件,他們就不會用了。

之前的時間控件是這樣的,開始時間和結(jié)束時間分開選擇:

答應(yīng)我,Saas重構(gòu)前這10個坑一定要看完!

現(xiàn)在用的Element的組件,用戶說怎么不能選一段時間了?原來他以為是要雙擊選中,然后在一個日期上點了2次,就成了選中一天。

答應(yīng)我,Saas重構(gòu)前這10個坑一定要看完!

還有很重要的一點,在用戶切換系統(tǒng)前,請他們多使用新系統(tǒng),直到能習(xí)慣,最好能比較熟練地使用。不然工作一忙,系統(tǒng)又不會用,抱怨就更多了。

重構(gòu)內(nèi)容越做越多

Saas一般都不是一個單一的系統(tǒng),他會有運營平臺,還有和外部的對接,比如公司內(nèi)部其他業(yè)務(wù)的對接,第三方應(yīng)用的對接。

我們原本只是想重構(gòu)用戶端的系統(tǒng),其他都不動,但做著做著就發(fā)現(xiàn),運營平臺要重做,所有的外部對接也要重做,比如說聚合支付對接,檢驗外送對接。工作量比之前預(yù)想的翻了一倍不止。

所以,在評估重構(gòu)內(nèi)容時,最好把所有和他相關(guān)的東西都捋一遍,雖然想法很好,盡可能不改的就不要動,但要做好都重做一遍的打算。

功能必須>老系統(tǒng)才可推廣

重構(gòu)的系統(tǒng)和從0到1的系統(tǒng),很大的區(qū)別是:商用時間不同,推廣方案不同。

我們都知道MVP的道理,但這個在重構(gòu)系統(tǒng)時行不通。我們的用戶遷移到新系統(tǒng)使用,老系統(tǒng)有的功能新系統(tǒng)必須有啊,不然他們的工作沒法開展。

但我們開發(fā)時不可能招上幾十個人,所有功能同步開發(fā),肯定還是要分批做的。比如我們先做門診相關(guān)的功能,物資庫存管理的功能后面再做。如果是從0到1的產(chǎn)品,我們可以做完門診后就開始小范圍推廣,讓一些對庫存管理要求不高的小診所先用起來,在后續(xù)新功能開發(fā)時一起優(yōu)化老功能。

當(dāng)然,為了防止我們改動老功能和加入新功能時跑偏,我們每個版本上線后也會找一些用戶體驗,但畢竟和真實使用是有區(qū)別的。這個重構(gòu)的過程有點像半黑盒子,對產(chǎn)品經(jīng)理的要求更高,改動功能上面說過了,對于新加功能,還是建議遵循MVP的原則,不要一下子做全。

比如我們本來打算做健康管理的功能,設(shè)計的很完美,包括用戶自己在家測量數(shù)據(jù)后上傳,家庭醫(yī)生多對1的服務(wù)。但后面做的時候刪到了最簡,只給了一個健康指標庫。雖然這是一個發(fā)展方向,也有很多診所提,但現(xiàn)在真正有能力做起來的還是鳳毛麟角的,事實也證明我們是對的。

上線時間一延再延

我們原本打算用4個月的時間重構(gòu),這樣需求文檔必須要在1個月內(nèi)完成,在我們產(chǎn)品經(jīng)理每天加班到10點多的情況下,我們不負眾望地按時把PRD交給了開發(fā)。

從3月份開始,預(yù)計到6月份完成的重構(gòu),后來說要到10月份,后來又改成了第二年年初,后面又到了3月份。你猜,最后幾月份做完了?第二年10月份!整整用了1年半的時間。

項目延期是我們都不愿意看到的,但這里面的原因也不都是人為能規(guī)避的,我總結(jié)了這幾點:

  1. 原本只想重構(gòu)1個系統(tǒng)的,結(jié)果越做越多;
  2. 開發(fā)動手前只顧眼前版本的功能,沒有仔細看完所有文檔,導(dǎo)致開發(fā)后面功能時發(fā)現(xiàn)不支持了,再把之前的功能又重新做一遍;
  3. 開發(fā)過程中產(chǎn)品經(jīng)理還在不停調(diào)研用戶,導(dǎo)致需求變更;
  4. 分出部分人力繼續(xù)老系統(tǒng)功能的迭代,如果1年多的時間老系統(tǒng)一點不動,客戶流失率很高,還是要適當(dāng)?shù)纳闲拢?/li>
  5. 人員的變動:離職、調(diào)崗等,這方面我們還算基本穩(wěn)定,不然第二年10月份都做不完。

這段時間銷售、客服的壓力都很大,之前就積累了幾百條需求,答應(yīng)了客戶做。雖然我們在設(shè)計新系統(tǒng)時確實是做進去了,但是客戶用不了啊。一開始以為6月份能做完的時候,客戶催需求時,就告訴他們新系統(tǒng)做了,馬上就能用了。但到后來,銷售都不敢讓用戶知道我們有2套系統(tǒng)了,生怕一直問:新系統(tǒng)什么時候上線啊。

有個3年多的老客戶,在大會的時候一直拉著我說:我是你們第一批用戶,我就提了這2個需求,和我說會做的,讓我等等,結(jié)果一等就是2年,我真的快等不起了。

數(shù)據(jù)遷移是大坑

我們重構(gòu)的系統(tǒng)是一個完全新的系統(tǒng),和老系統(tǒng)沒有關(guān)系,那用戶想要用新系統(tǒng),就必須把老系統(tǒng)的數(shù)據(jù)都遷移到新系統(tǒng),不然客戶資料丟了、歷史病歷丟了,這個肯定是不行的。

數(shù)據(jù)遷移沒有想象的那么簡單:開發(fā)寫個腳本,批量跑一下就行。數(shù)據(jù)遷移前,產(chǎn)品經(jīng)理先要把遷移字段的對照關(guān)系寫清楚,我們寫了20幾頁文檔,千余個字段。

里面有很多需要注意的點,簡單的說幾個讓大家感受下其中的復(fù)雜度:

  1. 字段對不上。相同字段問題不大,缺少和增加的字段就要特別注明怎么處理。如果是之前比較重要的字段,但新系統(tǒng)去掉了,是否要保留過來?
  2. 業(yè)務(wù)類型有修改。比如老系統(tǒng)有方便門診,新系統(tǒng)沒有這個類型了,怎么處理老系統(tǒng)方便門診的數(shù)據(jù)?
  3. 數(shù)據(jù)遷移不過來。不是所有數(shù)據(jù)都能做遷移的,有的是因為沒法遷,要重新配置,比如外部對接;有的是因為數(shù)據(jù)量太大,成本太高,比如說統(tǒng)計報表。
  4. ……

我們把文檔給到開發(fā)后,每個模塊負責(zé)的開發(fā)分別寫數(shù)據(jù)遷移的代碼,這個工作量也不小,當(dāng)時6、7個開發(fā)差不多寫了1個多月。

終于,客戶可以申請遷移了,我們還不能一遷就成功,開發(fā)在正式遷移之前,會先試遷幾次,測試多次驗證數(shù)據(jù)沒有問題后,才會通知客戶正式遷移。數(shù)據(jù)量小的客戶可能2-3個小時就遷完了,數(shù)據(jù)量大的要6-7個小時。

但我們必須明白,2個系統(tǒng)就是不一樣的,不可能百分百沒差錯的做無縫連接。雖然我們會把遷移的注意事項提前告知客戶,并讓他們郵件確認已知曉風(fēng)險,但還是避免不了遷移后的問題,甚至還有要求要遷回去的。

做完數(shù)據(jù)遷移,標志著系統(tǒng)的重構(gòu)基本完成了。但別高興的太早,后面又是一場接一場的考驗。

新上系統(tǒng)不穩(wěn)定

雖然說新系統(tǒng)功能是分批做的,也是分批上線的,但一直不對外商用。沒有真實用戶的時候很多問題都不會爆發(fā)出來。當(dāng)我們重構(gòu)完成,正式對外商用時,一下子把這么一大個系統(tǒng)推出去,風(fēng)險還是極大的。

那時快過年了,診所的業(yè)務(wù)也特別忙,結(jié)果隔三差五的出現(xiàn)頁面加載速度極慢、服務(wù)器異常、系統(tǒng)登錄不了的情況,搞得客戶意見很大,在我們年終調(diào)研時給我們的打分很低。

新上系統(tǒng)有bug是很正常的事情,畢竟測試用例的覆蓋面有限,而且還有很多客戶意想不到的操作方式。但功能越多,出現(xiàn)bug的概率就越大;另一方面,不同的功能分散在不同的開發(fā)身上,修復(fù)bug時常常會因為同步不到位,改出更大的問題來。

那段時間還是過的挺心驚膽戰(zhàn)的,就怕早上還沒到公司,客戶群里就炸開了。差不多磨合了1個多月,新系統(tǒng)終于穩(wěn)定下來了,至少不會出現(xiàn)很大的bug,這時才稍稍松了口氣。

客戶老拿老系統(tǒng)說事

沒有對比,就沒有傷害。新簽客戶直接用新系統(tǒng),問題就少的多。遷移過來的老客戶,問題可多了,因為他們可以拿老系統(tǒng)說事。

比如上面說的,自家診所的藥師要求退藥后狀態(tài)變?yōu)榇l(fā)藥,因為老系統(tǒng)是這樣的;醫(yī)生說我要把患者的就診卡片用顏色區(qū)分出來,因為老系統(tǒng)的大色塊看著清楚,但新系統(tǒng)的風(fēng)格不是這樣的??;運營說為什么不能預(yù)約到科室,老系統(tǒng)可以,雖然我們已經(jīng)給出了替代方案……

我們必須要想好怎么說服他們適應(yīng)新功能,甚至指導(dǎo)他們規(guī)范自身業(yè)務(wù),不要一不習(xí)慣就要求改回老系統(tǒng)那樣,這樣的話新系統(tǒng)的意義在哪。我們的設(shè)計也不是憑空捏造的,也經(jīng)過了大量的客戶調(diào)研,而之前一些不合邏輯的功能,可能就是為了1-2家特殊診所。個性化定制本來就是Saas的大忌。

但如果真的是我們判斷失誤了,確實是老系統(tǒng)好,我們也要毫不猶豫地改回去。

驀然回首,落后競品一大截

重構(gòu)的1年半時間里面,我們會經(jīng)常去看競品的功能,每次他們上線的變更都會仔細的看,有時候看得心里癢癢的,這個我們也計劃做的啊,怎么被他們先做了去。

這段時間80%的精力都花在了系統(tǒng)重構(gòu)上,能被客戶感知到的新功能自然做不多,我們眼睜睜的看著一些剛起的新兵,在這一年多的時間里面把功能做的比較強大,開始和我們搶客戶了。

經(jīng)常客戶提需求時,我們都說,這個功能新系統(tǒng)實現(xiàn)了。他們戲稱我們在“憋大招”。雖然最后結(jié)果還不錯,新系統(tǒng)推出了,客戶滿意度還挺高的,申請遷移的客戶特別多。但我們在后面還是很心虛的,就怕什么都說在新系統(tǒng)能實現(xiàn)了,客戶對新系統(tǒng)的預(yù)期過高,真正使用時有點不滿意就產(chǎn)生很大的心理落差。所以,我們后面還做了些降預(yù)期的處理。

結(jié)局呢?你猜

都看到第10點了,朋友,辛苦你陪著我走完了這一遭,我們都希望像童話故事一樣:重構(gòu)圓滿完成,開始新的征程。

我們滿腔熱血地規(guī)劃未來,目標就是:同行NO.1。這個目標不高,畢竟我們的新系統(tǒng)目前能排前三。

上次有個客戶還說:你們這類系統(tǒng)有其他做的好一點的嗎,我知道的就你們和另外一家。

我想了想,還真想不出第三家來了,倒真不是王婆賣瓜、自賣自夸,這只是產(chǎn)品經(jīng)理實事求是的自信。

最后,你應(yīng)該猜到結(jié)局了吧,老板說:這條業(yè)務(wù)線虧損好幾年了,先stop吧。所有的人都懵了,這么一年半時間的心血,有種白費了的無力感。我們一個團隊二三十人,都咬著牙,天天加班在做,調(diào)休假都積了20多天沒時間休,還基本沒有人離職,這么苦都熬過來了,卻在剛看到光明的時候被扼殺了。

其實,站在公司的層面,我能理解老板的決定。但對于產(chǎn)品經(jīng)理來說,還是覺得不甘心。產(chǎn)品就像是自己的孩子,還沒養(yǎng)大就要放手了。

總結(jié)

雖說結(jié)局令人感到遺憾,但不得不說,這2年我的能力還是提升相當(dāng)多的,就是被上面的那些大坑磨的。系統(tǒng)重構(gòu)的過程,也是我重塑的過程。

#專欄作家#

司馬特小隊,公眾號:司馬特小分隊,人人都是產(chǎn)品經(jīng)理專欄作家。8年+互聯(lián)網(wǎng)資深產(chǎn)品經(jīng)驗,多年B端產(chǎn)品管理經(jīng)驗。具有多個從0到1的大型B端產(chǎn)品的孵化、重構(gòu)、迭代經(jīng)驗;主要教授產(chǎn)業(yè)互聯(lián)網(wǎng)產(chǎn)品相關(guān)的硬核知識點。

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 現(xiàn)在就在重構(gòu)內(nèi)部業(yè)務(wù)系統(tǒng),我們是AI平臺,提供對外接口。挺復(fù)雜的,希望我能堅持下去,現(xiàn)在已經(jīng)感覺到了事情沒那么簡單。最后一句話:系統(tǒng)重構(gòu)的過程,也是我重塑的過程。
    看哭了。

    來自上海 回復(fù)
  2. 用戶皆NC,ZZ、

    來自北京 回復(fù)
  3. 事有不協(xié),推倒重構(gòu)……

    來自上海 回復(fù)
  4. 深有體會,即便沒有進行重構(gòu),日常的開發(fā)過程中也會遇到很多類似的需求重做的情況,這一路的艱辛只有自己知道。

    來自上海 回復(fù)
  5. 深有體會

    來自中國 回復(fù)