现代化传统企业软件面临的挑战 | AI生成和翻译

Home 2026.03

Question: 为什么团队(尤其是拥有 Legacy projects 的大公司团队)更换工具、升级 Library 或 Framework 特别困难?

Answer:

没错 —— 个人面临的困难在团队和组织层面会成倍增加。原因如下:


个人习惯 × 团队规模 = 指数级阻力

团队中的每一位 Developer 都有自己的肌肉记忆、Mental models 和舒适区。要让团队转型,你不是在说服一个大脑,而是在同时说服 N 个大脑,且每个人都有不同的 Sunk costs 和风险承受能力。


Legacy Project 的乘数效应

Legacy codebase 增加了完全不同层面的引力:

1. 未知的 Dependencies 没有人能完全搞清楚现在的依赖关系。升级一个 Library 可能会触发连锁反应,导致几年前由早已离职的人编写的 Module 崩溃。

2. 缺失 Tests / 缺少安全网 Legacy projects 通常 Test coverage 很低。没有安全网,任何改动都显得极其危险。团队会理智地选择冻结技术栈,而不是冒险引发 Production 环境事故。

3. “能跑就别动”的文化 这在大公司中几乎是通用的。系统正在 Production 环境运行并创造收入 —— 组织内部存在巨大的压力去不要搞坏能赚钱的东西,即使它构建在十年前的依赖项之上。

4. 知识孤岛 (Knowledge Silos) 理解原始 Architecture 的人可能已经离开了。留下的团队继承的是他们畏惧的代码,而不是他们理解的代码。升级需要理解,而理解需要没人愿意分配的时间。


组织与企业文化层面

除了代码本身,大公司还增加了:

因素 影响
风险规避 (Risk aversion) 追求稳定性;搞坏生产环境的大胆升级会导致你被解雇
预算周期 升级需要审批、人力和时间 —— 而这些都是稀缺资源
合规与审计 (Compliance & audits) 更改经过认证/批准的 Tech stacks 需要重新认证
多个 Stakeholders Infra、安全、QA、产品部门都拥有否决权
优先级压力 在 Sprint planning 中,业务功能永远优先于技术升级

技术债的复利效应

你每一年进行升级,差距就会进一步拉大:

这形成了一个恶性循环 —— 等待的时间越长,升级就越困难,于是你等得更久。


为什么大公司特别容易陷入困境

小型 Startups 可以推倒重写。大公司通常无法承受让船停下来整修引擎的代价。一个经典的隐喻:

“我们是在飞行过程中重建飞机。”

这就是为什么你仍能看到银行运行着 1970 年代的 COBOL,或者企业应用锁定在 Java 8,或者内部工具构建在几年前就已 Deprecated 的框架上。这并非因为无知,而是对规模化变革产生的实际成本和风险所做出的理智(尽管痛苦)的反应


什么才是促使改变的真正原因

就像个人一样,团队通常只有在以下情况才会行动:

否则,惯性通常会赢得胜利 —— 几乎每一次都是如此。


Back Donate