遗留系统:重写还是逐步改造——给 CEO/CTO 的 ROI
客户后台很慢。1C 靠周五 CSV 喂网站。新产品塞不进旧数据模型。会上有人说魔法句:「我们从零重写吧。」半年后——两套系统、重复录入、上线延期。
遗留系统:重写还是逐步改造不是工程师抬杠,而是 CEO/CTO 关于钱、风险和 6–18 个月窗口的决策。下面是 ROI 框架,以及何时该重写、何时该分层抽出。
要点。先写清真正卡住收入的切片。没有切换与试点的全面重写,几乎总是贵过在旧系统旁交付后台/API。

先交付能赚钱的切片——再谈「全部重写」
用业务语言理解「遗留」
遗留不是「旧语言」,而是挡住增长的系统:
- 新销售渠道或客户角色不靠补丁塞不进去;
- 与 CRM/1C 的交换靠人工或夜间文件;
- 高峰或投放时后台 503;
- 一半冲刺在修绕路,而不是做产品。
若痛点是 Excel 和「最终版_3」——先统一流程和后台,而不是为重写而重写。见 Excel 已不够用 与 B2B 后台 MVP:7 个屏幕。
三种策略:修补、抽出一层、全面重写
1. 继续修补(局部修复)。以周计又快又便宜。根因是一个 bug 或一个屏幕时有效。数据模型和集成已到天花板时无效。
2. 分层重构(绞杀者模式)。在旧系统旁上新切片:后台、订单 API、1C 同步。旧系统保留,直到按角色/门店验证切换。业务每 4–8 周看到价值。
3. 从零重写。当核心客观上已死(无测试、无数据负责人、无法安全改动),且一年修补成本 ≥ 新系统时才合理。否则只是用高价再拖一年一年。
- 修补 — 一个屏幕/bug,业务未停
- 分层 / strangler — 后台、API、集成;试点 → 切换
- 重写 — 核心挡住增长;有范围负责人与切换日
如何按 12–24 个月算 ROI
先答:比的不是「开发价」,而是完整 TCO——加上停机、重复录入和丢单。
- 开发 / 外包 — 重写预算 vs 切片 + 维持旧系统。
- 运营 — 员工在绕路、CSV、手工对账上的工时(常 0.5–2 FTE)。
- 停机与错误 — 后台/核算一小时不可用;中小企业常是数万到数十万 ₽,见 停机一小时的成本。
- 延期风险 — 无试点的大爆炸,会把新渠道收入推迟一两个季度。
若修补去不掉根因(数据、集成、性能),一年后又开同样的会——重写在 ROI 上更优。否则抽出后台/API 更便宜、更快回本。
构建器上的类似规模陷阱见 No-code vs 定制:快速起步却没有退出计划。
几乎肯定不该重写的情况
- 没有产品负责人,也没有「完成」标准——只有「写漂亮一点」。
- 没有集成与数据清单(谁写到哪里)。
- 旺季切换或没有回滚。
- 团队一边修生产一边写「新世界」,却没有独立轮廓。
- 预算只算代码——不算培训与历史迁移。
经典翻车:两年「新」后台,订单仍在旧系统——因为 1C 同步留到了「以后」。
何时分层重构是正确选择
先答:有一个能在 4–12 周交付并可度量的薄切片(后台转化、同步耗时、手工修正占比)。
- 选钱的路径:客户/经销商后台、订单状态、单据。
- 定义 API 与角色;旧 UI 可暂时保留。
- 在一个角色或门店试点。
- 切换 + 回滚;再做下一层(CRM/1C、报表)。
这样你不是抽象争论「要不要重写」——而是一块块买可用系统。1–2 周范围评估是正常第一步:获取评估。
CEO/CTO 清单:重写还是继续维护
- 写明卡住收入的切片(不是「整个单体」)。
- 算清 12–24 个月 TCO:开发 + 绕路 + 停机 + 延期风险。
- 一页纸集成清单与数据负责人。
- 切换标准与回滚在写代码前写好。
- 有限受众试点后再全量切换。
- 一个负责人跟到移交。
- 若「修补一年」≈ 新切片预算——抽出一层,别拖痛。
本周做什么
约一小时:CTO、产品负责人、泡在 1C/CRM 的人。写下三个花钱痛点与第一个切片候选。若列表为空——需要的是优先级,不是重写。若候选清楚——评估切片,而不是「全部遗留」。
关于遗留系统重写与重构的高管问答
当核心每个季度都卡住业务(新产品、集成、负载),12–18 个月的修补预算接近新系统成本, 且团队一半以上时间花在绕路上。没有范围负责人和切换标准的重写,比任何修补都贵。
不是「全部重写」,而是抽出薄切片:后台/API、与 CRM/1C 的交换、报表——旧系统继续运行。 业务每 4–8 周看到价值,而不是等一年大爆炸上线。
在 12–24 个月比较:开发成本 + 停机/重复录入 + 丢单 + 上线延期风险。若修补去不掉根因 (数据、集成、性能),重写更划算;否则有计划地抽出一个轮廓更便宜。
两套系统并行却没有清晰切换点,数据分叉,员工在旺季学新界面。没有单门店/角色试点 和回滚计划,项目拖延并吃掉增长预算。
锁定「钱的路径」(后台、订单、与核算同步),做 1–2 周评估,抽出切片并放在 API 后。 其余排队。没有切片的「总有一天全重写」是最贵的路。