什么是遺留系統(tǒng)?
遺留釋義:
(以前的事物或現(xiàn)象)繼續(xù)存在;(過(guò)去)留下來(lái):解決~問(wèn)題。許多歷史遺跡一直~到現(xiàn)在。
如何判斷這是“以前”,“過(guò)去”的系統(tǒng)?
當(dāng)我們?nèi)フf(shuō)“以前”,“過(guò)去”的時(shí)候,我們常常要表達(dá)的是,和“現(xiàn)在”不一樣了,我們也不全部了解。因此,我個(gè)人比較傾向于定義遺留系統(tǒng)為:
隨著團(tuán)隊(duì)能力的提升,當(dāng)團(tuán)隊(duì)發(fā)現(xiàn)做過(guò)的一些技術(shù)決策(系統(tǒng)架構(gòu),代碼風(fēng)格,技術(shù)棧,業(yè)務(wù)流程實(shí)現(xiàn))可以做的改進(jìn)時(shí),或者項(xiàng)目的一些上下文已經(jīng)丟失時(shí),這個(gè)系統(tǒng)就是個(gè)遺留系統(tǒng)。
是不是所有的遺留系統(tǒng)都需要改造?
站在公司的角度,我們一般會(huì)把業(yè)務(wù)/產(chǎn)品分為4大類
- 明星業(yè)務(wù)/產(chǎn)品 - 高增長(zhǎng)率、高市場(chǎng)占有率的業(yè)務(wù)/產(chǎn)品,這類產(chǎn)品可能成為企業(yè)的現(xiàn)金牛產(chǎn)品,需要加大投資以支持其迅速發(fā)展。
- 現(xiàn)金牛業(yè)務(wù)/產(chǎn)品 - 低增長(zhǎng)率、高市場(chǎng)占有業(yè)務(wù)/產(chǎn)品,屬于成熟期業(yè)務(wù)/產(chǎn)品,可以為企業(yè)提供資金,而且由于增長(zhǎng)率低,也無(wú)需增大投資。
- 問(wèn)題業(yè)務(wù)/產(chǎn)品 - 高增長(zhǎng)率、低市場(chǎng)占有率業(yè)務(wù)/產(chǎn)品,前者說(shuō)明市場(chǎng)機(jī)會(huì)大,前景好,而后者則說(shuō)明在市場(chǎng)營(yíng)銷上存在問(wèn)題。
- 瘦狗業(yè)務(wù)/產(chǎn)品 - 低增長(zhǎng)率、低市場(chǎng)占有率業(yè)務(wù)/產(chǎn)品,無(wú)法為企業(yè)帶來(lái)收益。對(duì)這類產(chǎn)品應(yīng)采用撤退戰(zhàn)略
可以看出,如果我們的系統(tǒng)想要支持明星業(yè)務(wù)/產(chǎn)品,才需要進(jìn)行改造。
改造策略
常用的改造模式主要有:
- 修繕者模式
對(duì)于現(xiàn)有系統(tǒng)新增一層進(jìn)行封裝,然后在保證新層對(duì)外提供功能不變的情況下,對(duì)系統(tǒng)內(nèi)部進(jìn)行改造,常用改造手法有:重構(gòu),模塊解耦合,技術(shù)提升。 - 絞殺者模式
又稱作“停止挖坑”模式,原有的系統(tǒng)停止更新和維護(hù),新來(lái)的需求使用新的技術(shù)棧,重新實(shí)現(xiàn)。從而慢慢讓新系統(tǒng)替代老系統(tǒng)。這個(gè)過(guò)程會(huì)比較長(zhǎng)。 - 拆遷者模式
基于原有的業(yè)務(wù),新寫(xiě)一套系統(tǒng),然后,一次性將舊系統(tǒng)的數(shù)據(jù),功能遷移到新系統(tǒng)上。
策略選擇的依據(jù)
對(duì)于策略的選擇,我們一般會(huì)進(jìn)行2方面思考對(duì)比。
- 改造完的收益VS不改造的收益
- 市場(chǎng)響應(yīng)力提高帶來(lái)的收益
- 系統(tǒng)質(zhì)量提高帶來(lái)的收益
- 系統(tǒng)可用性好帶來(lái)的收益
- 系統(tǒng)開(kāi)放性好帶來(lái)的收益
- 使用不同策略的成本對(duì)比
| 修繕者模式成本 | 絞殺者模式成本 | 拆遷者模式成本 |
|---|---|---|
| 了解現(xiàn)有業(yè)務(wù)的成本 | 原有系統(tǒng)新增功能成本 | 了解現(xiàn)有業(yè)務(wù)的成本 |
| 新增測(cè)試的成本 | 新增功能實(shí)現(xiàn)成本 | 重寫(xiě)現(xiàn)有系統(tǒng)的成本 |
| 讀懂現(xiàn)有代碼的成本 | 新系統(tǒng)和舊系統(tǒng)集成的成本 | 數(shù)據(jù)遷移的成本 |
| 現(xiàn)有系統(tǒng)新增功能實(shí)現(xiàn)成本 | 兩個(gè)系統(tǒng)同時(shí)演進(jìn)的成本 | |
| 封裝現(xiàn)有功能的成本 |