银行政务大量遗留老系统,薪资不低,为什么年轻人不愿意接手?聊聊遗留系统背后的技术人职业困境
导语在银行、政务、保险、制造业的核心业务中,大量已经运行十几年甚至数十年的遗留系统依旧在 7×24 小时运转。其中最出名的便是 COBOL 语言编写的主机系统:全球 95% 的 ATM 交易、80% 线下刷卡业务都要经过这套系统,每天承载数万亿美元资金流转。
这些系统稳定不出事故,岗位薪资待遇并不差,却出现一个尴尬局面:懂维护的老程序员逐步退休,年轻程序员却很少愿意入局。2020 年美国新泽西州疫情期间失业金系统崩溃,政府公开高薪急聘 COBOL 开发,来面试的人员最年轻已经 63 岁,成为行业非常经典的案例36氪。
并不是老语言技术本身有多烂,这是一场业务风险、技术债、职业流动性叠加出来的现实困境。本文拆解遗留系统为什么很难直接替换,年轻人抗拒维护老系统的真实原因,同时给到技术从业者选择技术方向的思考框架。
一、明明老旧却不敢直接换掉的遗留系统
很多人会疑惑:既然语言老旧,直接全部重写一套现代化系统不就解决问题?现实情况是重写运行多年的核心遗留系统,风险极高、成本巨大。
1. 代码里沉淀的是几十年业务事故换来的隐形规则
老系统里面不只是代码,还沉淀大量没有文档记录的业务逻辑:利息计算规则、跨行清算流程、账务错账冲正逻辑、各类历史监管特殊处理。这些逻辑不是写在文档,而是藏在一行行补丁代码中,是过去无数次故障、事故打磨出来的。很多业务边界,现在的产品经理都讲不清楚。想要重写,首先要把这套看不见的业务规则完整复刻出来,难度极高。
2. 重写项目代价惨重,失败案例比比皆是
澳大利亚联邦银行曾经下决心替换 COBOL 核心银行系统,项目耗时 5 年,投入超 7.5 亿美元,严重超预算,迁移过程多次出现交易故障。英国 TSB 银行迁移核心系统,周末切换新版本,直接数百万用户账户异常,损失数亿资金,高管引咎辞职。
通俗比喻:相当于飞机正在万米高空飞行,一边飞一边更换发动机。老系统不能停机,新系统开发的时候老系统还在不停打补丁迭代,你要追赶一个持续变化的目标。一旦切换失败,金融、政务业务直接停摆,后果难以承受。
3. 渐进式现代化也存在人才鸿沟
行业现在推崇绞杀者模式、逐步拆分改造遗留系统,但这里有一道很难跨越的鸿沟:懂老系统业务细节的是即将退休老一辈工程师;懂云原生、微服务新架构的是年轻工程师。两拨人知识体系完全不一样,一个熟悉主机、COBOL 账务逻辑,一个熟悉分布式、容器。既懂几十年老业务规则,又懂现代技术架构的复合型人才极度稀缺,导致渐进改造推进依旧举步维艰。
二、薪资并不低,年轻人依然不愿接手的 4 个现实原因
注意:不是工资低,而是岗位的综合职业收益很差。
1. 技能可迁移性极低,职业流动性被锁死
学会 Java、Python,市场上成千上万公司都可以投递,跳槽选择面广阔。精通 COBOL 或者某套行业私有遗留系统,能接纳你的企业非常有限,基本局限银行、保险、部分政务外包。一旦行业收缩,跳槽出路很少,相当于把自己绑定在极小赛道上。哪怕短期薪资不错,也要考虑 5‑10 年后自己的职业退路。
2. 学习资源枯竭,社区几乎消亡
主流编程语言网上教程、开源项目、问答社区海量资料,遇到 bug 可以全网检索解决方案。而很多遗留技术,高校课程不再教授,网络教程稀少,GitHub 几乎没有活跃开源社区。遇到疑难故障,搜索引擎搜不到答案,只能靠老师傅口口相传的经验,新人自学入门难度巨大。
3. 工作成就感低,功劳很难被看见
维护遗留系统,最高的褒奖就是 “系统平安无事,没有出故障”。不出事故是本分,很难做出亮眼业绩;一旦出问题,就要背锅。对比做全新业务系统:功能上线、性能提升、产品迭代都可以写进简历,升职加薪的显性成果丰富。老系统维护岗位,产出很难量化,在企业内部晋升通道往往相对狭窄。
4. 技术视野容易被封闭
长期深陷老旧单体遗留系统,大量时间花在阅读晦涩旧代码、处理历史 bug,接触不到现代架构、开源生态。长期下来个人技术栈容易与主流行业脱节。
客观现实:市场供需规律确实生效,稀缺的老系统维护人员时薪、项目外包报酬持续走高;但高薪只能解决当下收入,解决不了未来职业选择权问题,这是年轻人望而却步的核心矛盾。
三、评估一门技术值不值得投入学习的三维框架
遗留系统的困境,可以提炼一套通用标尺,程序员在选择学习方向、选择岗位的时候可以参考:
[*]需求持久性:这个业务问题会不会长期存在?
遗留系统业务需求满分,金融账务、政务业务几十年不会消失。
[*]技能可迁移性:学会之后,换行业、换公司这套本事还能不能复用?
COBOL 这类遗留语言得分很低;而底层原理:事务、状态管理、故障容错、数据存储,是高可迁移的底层能力。
[*]知识公开与社区活跃度:有没有公开文档、社区、开源生态,简历上的能力能不能被市场广泛认可?
老旧遗留技术得分很低;主流技术栈拥有庞大社区,能力更容易被市场验证。
核心启示:具体编程语言、框架都会衰老,今天大火的框架,二三十年后一样会成为遗留系统。真正不会过时的,是底层解决问题的原理:数据怎么存储、状态如何流转、故障怎么容错。主机大型机时代成立,云原生分布式时代同样成立。
四、从业者如何理性看待遗留系统岗位
[*]不要全盘否定遗留系统价值遗留系统不等于烂技术,很多老系统经过几十年打磨,稳定性极强。社会离不开维护这些核心系统的工程师,外包专家短期收入非常可观。可以作为阶段性工作,但需要提前规划长期职业路线。
[*]区分:做遗留系统≠只能学老旧语法优秀工程师维护老系统,重点吃透业务规则、事务账务、故障恢复、历史踩坑经验,把这些底层业务能力沉淀下来,而不是只拘泥老旧语法本身。把业务认知和现代架构知识结合,恰恰是非常稀缺的复合型人才。
[*]警惕纯 “救火修 bug” 岗位如果岗位只要求你不停修补老系统 bug,完全没有现代化改造、架构学习机会,长期只消耗不成长,就要警惕个人技术栈逐渐封闭的风险。
五、常见认知误区澄清
[*]误区:COBOL 等遗留语言没人学,只要学会就可以躺平高薪。纠正:短期项目薪资确实高,但就业市场极其狭窄,行业岗位总量有限,年龄增长之后跳槽难度会持续上升,不存在躺平。
[*]误区:遗留系统就应该全部重写,重写就能解决一切问题。纠正:核心金融政务系统直接整体重写风险极高,大量失败案例证明,更多时候采用渐进式改造才是务实路线。
[*]误区:维护老系统的工程师都是技术落后跟不上时代。纠正:很多老工程师精通复杂账务、事务容错业务逻辑,只是使用工具老旧;业务认知是非常宝贵资产,只是很难在开源社区体现出来。
[*]误区:新技术永远优于老技术。纠正:技术好坏要看场景,COBOL 针对大批量账务处理稳定可靠;现代分布式系统擅长弹性扩容,各有取舍,不存在绝对优劣。
文末总结
银行、政务的遗留系统,一边是社会离不开、薪资待遇可观,另一边年轻人却不愿意接手。根源并不是编程语言本身太差,而是技能迁移性差、社区凋零、晋升成就感不足,综合职业回报并不理想。
直接全盘重写核心遗留系统风险巨大,所以大量机构只能选择继续维持老系统运行。这件事给所有技术人的启示:不要把职业生涯绑定在某一门特定语言或者某一套框架上。框架和语言终将过时,真正保值的,是理解业务、理解存储、事务、故障容错这些底层通用原理。
如果接手遗留系统相关工作,尽量把重点放在沉淀通用业务与架构能力,而不是仅仅局限在老旧语法,才能避免被时代锁死在小众赛道。
页:
[1]