AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

马斯克“逼疯”DOGE 团队:限时数月内“闪电式”重构 6000 万行代码,老程序员和 IT 专家吓傻了!

  • 2025-04-01
    北京
  • 本文字数:4286 字

    阅读完需:约 14 分钟

大小:2.09M时长:12:10
马斯克“逼疯”DOGE 团队:限时数月内“闪电式”重构6000万行代码,老程序员和IT专家吓傻了!

马斯克领导的 DOGE 团队正酝酿一场豪赌:他们计划在短短几个月内重写一套运行了数十年的核心代码库。该代码库包含数千万行 COBOL 代码,以及部分汇编语言。按理来说,要安全、完整地重写这些代码,至少需要数年时间,而将这一过程压缩到几个月几乎是不可能完成的任务。

 

如果他们真的成功了,这将彻底颠覆传统 IT 领域的认知,足以让任何经验丰富的程序员和 IT 专家感到脊背发凉、难以置信。

 

快刀斩乱麻式的重构?

 

前两天,据《连线》杂志报道,DOGE 正着手组建新团队,负责在未来数月之内将社会保障管理局(SSA)计算机系统所使用的古老编程代码中迁移出来。

 

该项目由马斯克的副手史蒂夫·戴维斯牵头,负责将全部 SSA 系统从 COBOL(最早的主流面向业务编程语言之一)迁移到更为现代的替代性语言如 Java 上,而且工期只有短短数月——典型的时间紧、任务重。

 

无论从哪个角度来看,此等规模的迁移都将是一项艰巨的任务,而过度强调迁移速度很可能导致目前正在领取社保福利的 6500 多万美国民众受到影响。“当然,其中最核心的风险还不是多付或少付了款项,而是系统压根没有向某人付款且未能察觉出异常。总之,看不见的错误和遗漏才是最致命的。”一位 SSA 技术专家告诉《连线》杂志。

 

与众多传统的遗留 IT 系统一样,SSA 系统包含使用 COBOL 编写的代码。COBOL 是一款由 Grace Hopper 于 1950 年建立雏形的编程语言。COBOL 诞生后不久,美国国防部开始推动该语言在私营企业中的应用,促使其得到广泛普及,并在 1970 年代成为大型机(即能够快速处理和存储大量数据的计算机系统)中使用最广泛的语言之一。然而,近年来,在“去 DEI”行动中,与 Hopper 成就相关的一些网站逐渐下线(Grace Hopper 是女性计算机编程的先驱)。

 

直到 2016 年,SSA 基础设施当中仍包含超过 6000 万行用 COBOL 编写的代码,外加数百万行使用其他传统语言编写的代码。事实上,根据 SSA 自己的 2017 年现代化计划里的说法,自 1980 年代其开发自有数据库系统 MADAM(主数据访问方法,此系统采用 COBOL 加汇编语言编写而成)以来,SSA 的核心程序系统与架构就再未进行过“大幅度”更新。

 

SSA 的核心“逻辑”也主要用 COBOL 编写。一位曾在 CIO 办公室工作的前 SSA 高级技术专家表示,这些代码主要用于发布社保号码、管理付款乃至计算受益人所应申领的总福利金额。因此,即使是微小的变化也有可能在整个程序内引发连锁故障。

 

目前尚不清楚软件升级工作何时开始。据《华盛顿邮报》本周报道,在过去几周里,由于 DOGE 大幅削减了 SSA 预算,导致其官方网站经常崩溃、电话咨询的等待时间也大大延长。

 

最近发现,美国社保系统中显示竟然有“150岁”的老人仍在领取福利,这显然不正常。有怀疑声称,他们社保系统中可能存在大量的欺诈和错误,例如某些已故人士的社保福利仍在继续发放。马斯克领导的“DOGE”团队目前有约 10 人在 SSA 工作,他们的任务是清理这个系统中的“死人”账户,将这个系统与其他部门的数据库连接,方便核对信息,并通过电话确认领款人是否还活着,以防止欺诈。此外,DOGE 还希望法院授权其全面访问 SSA 系统,以完成这一任务。

 

在组织将新应用程序部署到生产环境之前,必须对软件进行错误测试。Wired 援引的这位前 SSA 技术专家表示,DOGE 提议的 COBOL 重写的测试阶段本身就需要几年时间。如果在几个月内进行重写,DOGE 的开发人员可能需要跳过重要的质量保证步骤,这将增加技术问题的风险。

 

这位 SSA 技术专家还补充道,在几年之内解决所有潜在极端情况已经相当困难,压缩到几个月简直是难以想象。

 

曾在 CIO 办公室工作的 SSA 前高级技术专家在采访中也坦言,“SSA 原本的系统几乎就是用铁丝和胶带勉强固定起来的。领导层必须要清楚,他们面对的是一座本就摇摇欲坠的「纸牌屋」。一旦像他们宣称的那样从中抽出纸牌,整个体系都有可能瞬间坍塌。”

 

原计划“五年”完成核心系统现代化

 

此次拟议的迁移,已经不是 SSA 第一次尝试放弃 COBOL 代码。早在 2017 年,SSA 就曾公布一项计划,希望申请数亿美元经费来更换其核心系统。但随着 2020 年疫情爆发,该机构放弃了这项工作,转而专注更多面向公众的项目。

 

该计划指出,SSA 系统每年需处理超过 3700 万通电话,并发布高达 2.66 亿份收入报告,这对技术基础设施提出了极高的要求。然而,SSA 的核心系统大多已运行超过 30 年,部分嵌入式软件组件甚至更为老旧。

 

同时,在这 30 年的时间里,SSA 的系统经历了不断的变化,以融入立法、法规和政策的变化。多年来,新技术和功能已被修补到核心系统中,但没有进行根本性的重新设计。每次修补和变通都会使系统变得更加脆弱,从而使下一次变更变得更加“昂贵”。

 

“多年来,新技术已被集成到这些遗留系统中,但这些集成并未对系统和操作环境进行根本性的重新设计。如今,在这个遗留环境中运营的成本非常高。”

 

为了应对庞大的用户基数和复杂的业务需求,SSA 深知其 IT 系统现代化改造是一项高风险的重大投资,如同“飞行中重建飞机”,预计需要五年左右的时间才能完成整体系统的现代化转型。为了实现这一目标,SSA 制定了一个“IT 现代化计划”:“IT 现代化计划代表了 SSA 在一个拥有数百万个个人和数千名员工的大型联邦机构中推动 IT 改进的方案。”

 

他们计划在五年内投资 6.77 亿美元,用于六个关键转型项目以及支撑这些项目的基础设施建设。

 

当时的计划是让业务系统能够在云端运行,并且能够跨多个平台操作。同时将旧的 z/OS 主机系统迁移到更灵活的 Linux 环境,摆脱旧系统的束缚。另外,还会进行 DevOps 转型 这样才能更快地推出新功能,提高软件质量。

 

他们还需要推进数据存储方案的现代化改造,以解决遗留系统带来的信息孤岛、技术限制和效率低下等问题,并特别强调了改造内部批处理数据库系统 MADAM 所面临的挑战。

 

“与今天市面上商业关系数据库产品相比,MADAM 已经在技术上过时,功能上也相对原始。该机构的核心数据系统是围绕当时广泛使用的磁带存储技术的局限性设计的。由于磁带技术不允许随机数据访问,所有更新都通过定期合并在临时存储区排队的更新进行管理。尽管磁带存储已经被淘汰,且更先进的能力已经可用,但夜间合并模型依然存在。

 

多年来,我们的数据存储已经发展到在多个地方捕捉到相似的数据,且其含义稍有不同。这种情况发生是因为随着我们遗留系统的演变,机构经常重复数据以获得更好的性能。此时,我们的分析师和开发人员需要反复进行详细分析,以理解在特定应用程序中使用哪些数据源以及如何将这些数据与其他数据源进行对比。

 

开发新功能本应快速实现,但却需要系统分析师、开发人员和政策专家进行广泛的分析,以确保变更正确。这增加了我们的项目时间表,也使开发成本更高。当我们希望使用我们的广泛数据进行管理报告或业务分析时,我们发现类似数据之间的细微差别导致分析结果的不一致。这意味着我们得到的答案可能会出现不一致的情况。”

 

在改造过程中,SSA 也面临着其他大型项目常见的多重风险。

 

例如,新旧系统需要并行运行数年,因此会面临混合环境的挑战,如何培训员工同时掌握两套系统的操作和维护是亟待解决的问题。其次,数据完整性是另一个关键风险。新旧数据源的整合,特别是批处理过程中驱动的数据转换,容易出现错误,从而影响数据的准确性。接下来是代码质量问题,部署新软件后可能会出现问题,需要快速回滚到先前版本,这就要求在开发过程中进行充分的测试,并建立完善的回滚机制。此外,网络安全风险不断升级,外部攻击和内部威胁不断增加,需要不断更新安全措施,以确保交易和数据的安全。

 

这些 SSA 在原改造计划中提到的挑战,DOGE 同样需要面对,一个也逃不了。

 

社交媒体一致唱衰:“这不可能!”

 

对于维护过旧系统的开发者而言,一个深刻的教训是:贸然修改不了解历史背景的代码,往往会导致灾难性后果。那些充满热情想要重构“遗留代码”的程序员,常常因为忽略系统间的依赖关系而引入新 bug,甚至破坏经过时间考验的核心功能。

 

面对 COBOL 这门古老的编程语言,作为“面向业务的通用语言”,它的语法结构接近英语日常表达,甚至不需要四年计算机专业训练就能掌握。但真正的挑战隐藏在运行时环境这个“黑匣子”中。程序员需要面对活化石般的大型机架构、源自打孔卡时代的作业控制语言(JCL)、CICS 交易处理系统等。

 


这部分相对简单,但真正的难点在于理解所有这些“拼图”如何组合起来,哪些程序提供的输出是其他程序的输入。大多数大型机系统会为其他程序创建“文件”(数据集),而不是直接调用其他程序,它们依赖 JCL 来提供运行作业所需的输入和输出参数。比如,程序 A 并不知道它正在写入一个名为 output.txt 的文件,它只知道它在写入名为 output 的输入参数,而 output 是由 JCL 在调用程序时控制的。这种设计范式与现代系统截然不同,形成了真正的认知鸿沟。

 

这种系统架构带来的直接后果是,即便能够读懂 COBOL 代码,你依然无法理解它是如何工作的。正如网友所说,目前美国大量关键系统仍在使用 COBOL,但主流做法是用现代语言编写一个新界面,这个界面仍然调用所有旧的东西,避免触碰旧代码,因为天知道他们会破坏什么随机的东西。

 

针对 DOGE 团队重建 SSA 系统的计划,社交媒体上几乎呈现一边倒的负面评价,大家普遍认为“成功的可能性为零”。而且,这些评论无一例外地都获得了大量点赞,可见大家对此事的看法高度一致。

 


“DOGE 团队的计划,在我看来,注定会以失败告终。我曾多次成功领导类似项目,深知其中的复杂性......DOGE 团队中,没有人具备承担如此重任的资质。他们的计划,充斥着麦肯锡式的夸夸其谈和技术专家的想当然,成功的可能性几乎为零。”

 


从用户和所有者(也就是我们这些小人物)的角度来看,这里成功的机会几乎是 0.00000000000%。我刚刚迁移了一个类似的系统,尽管它规模更小。我迁移的那个是一个主机系统,大约有 1000 万行代码。祝你好运,Elon。

 


看到这个标题,老程序员和 IT 专家们都吓傻了:“DOGE 想在几个月内重写 SSA 的全部代码!”[SSA 的代码是用 COBOL 写的。那帮幼稚的 DOGE 团队,根本看不懂,更别说重写了。]

 

很多网友都认为 DOGE 团队在几个月时间里重建根本不切实际,要想妥善完成这项任务,至少需要一支由数百名经验丰富的专家组成的团队,并且耗时数年。

 

更有网友爆料,根据 USAToday 的报道,马斯克计划在今年春天离开 DOGE 团队。这意味着,如果 SSA 系统重建成功,他可以独揽功劳,甚至名垂青史,而一旦项目失败,他也能全身而退。这位网友不禁感叹:“马斯克真是个天才!”

 

参考链接:

https://arstechnica.com/tech-policy/2025/03/what-could-possibly-go-wrong-doge-to-rapidly-rebuild-social-security-codebase/

https://www.reddit.com/r/technology/comments/1jlwil2/doge_plans_to_rebuild_ssa_codebase_in_months/

2025-04-01 14:514554

评论 2 条评论

发布
用户头像
外包给中国的软件公司,2百万刀就给你完全重写一个,比以前的还快还好用,doge 还能有的赚。
2025-04-16 20:37 · 北京
回复
用户头像
长痛不如短痛。
2025-04-02 10:15 · 江苏
回复
没有更多了

看完这篇异地多活的改造,我决定和架构师battle一下 / 得物技术

得物技术

架构 容灾 双活 双活容灾 异地多活

DataPipeline:让数据生产力的历史进程,再前进一步

DataPipeline数见科技

DataOps 数据管理

使用Sonar来优化您的基础架构代码

龙智—DevSecOps解决方案

漏洞 SonarQube

MixNet解析以及pytorch源码

AI浩

人工智能 6月月更

StrategyPattern-策略模式

梁歪歪 ♚

设计模式

为什么PO的角色在Scrum框架中不可替代

ShineScrum

Scrum 产品经理 PO 产品负责人

字节跳动数据库的过去、现状与未来

火山引擎开发者社区

数据库 微服务 分布式数据库

云图说丨应用宕机怎么办?MAS帮您实现业务无缝切换

华为云开发者联盟

云计算 MAS 宕机 多云高可用服务

雅加达利用SAS优化抗疫救助资金发放,帮助中小微企业度过难关

E科讯

那些年,我们在Apache SeaTunnel 2.1.0部署中踩过的坑【含源码分析】

Apache SeaTunnel

Apache 大数据 开源 workflow Seatunnel

对话ACE第三期:数据库技术生态应如何构建

OceanBase 数据库

oceanbase

了解es6语法简介

小恺

6月月更

从冬奥跳台飞跃向千家万户:联通“臻宽带”的起跳瞬间

脑极体

应用实践|Lifewit 数据平台基于Apache Doris的建设实践

SelectDB

数据库 数据仓库 apache doris SelectDB

深入剖析 | HeartBeat方案的标准设计

九叔(高翔龙)

架构 dubbo 源码解析 HeartBeat 心跳设计

TemplateMethodPattern-模板方法模式

梁歪歪 ♚

设计模式

关键点标注的酷炫,你想象不到

澳鹏Appen

人工智能 数据标注 数据训练 关键点检测 关键点

孩子上网冲浪更安全,这份儿童节礼物值得拥有

最新动态

InfoQ 极客传媒 15 周年庆!无限生长未来可期!

InfoQ写作社区官方

热门活动 InfoQ极客传媒15周年庆

将虚幻引擎5与Perforce Helix Core集成使用吧!

龙智—DevSecOps解决方案

perforce 虚幻引擎5 Helix Core

换个角度带你学C语言的基本数据类型

华为云开发者联盟

开发 C语言 数据类型位数

C#入门系列(一) -- 初识C#语言

陈言必行

C# 6月月更

八大误区,逐个击破:担忧安全防护与合规性?这可能是您对云最大的误解

龙智—DevSecOps解决方案

Atlassian atlassian云版 Atlassian白皮书

MSVC编译动态库

Loken

音视频 5月月更

字节跳动一站式数据治理解决方案及平台架构

字节跳动数据平台

数据治理 元数据

将不费吹灰之力成为卷王的秘籍传授于你!

龙智—DevSecOps解决方案

Jira插件 龙智自研插件 Jira飞书插件

特别的儿童节,OceanBase 送上一份特别的惊喜

OceanBase 数据库

oceanbase

儿童节,和 AI 一起通关 “超级马里奥兄弟”

华为云开发者联盟

常遇到读多写少,教你用ReadWriteLock实现一个通用的缓存中心

华为云开发者联盟

缓存 高并发 开发 ReadWriteLock

leetcode 547. Number of Provinces 省份数量(中等)

okokabcd

LeetCode 搜索

对不起,我错了,这代码不好写

捉虫大师

Java Go sentinel 6月月更

马斯克“逼疯”DOGE 团队:限时数月内“闪电式”重构6000万行代码,老程序员和IT专家吓傻了!_技术选型_Tina_InfoQ精选文章