返回档案库

案例库 · 软件与 IT · 技术决策 · 2000

全球花了巨资修补 Y2K,结果几乎什么都没坏——这恰恰说明问题

计算机把年份只存两位,所以 2000 看起来像 1900。全世界担心系统崩掉,砸下巨资去修,结果正因为修了,最后几乎没出事。

比尔·克林顿 · 2000

怎么回事

几十年来,为了节省宝贵的内存和存储空间,程序常把年份只记后两位,比如 1985 记成 85。这个做法在 2000 年逼近时开始翻车:计算机看到 00 时,分不清是 2000 还是 1900。凡是依赖日期逻辑的银行、公用事业、政府和无数系统,凡涉及年份的计算都可能乱套。

随着千禧年临近,Y2K 漏洞成了全球性恐慌。外界对损失的估计从严肃到近乎末日级别不等——有人估算修复成本会高达 4000 亿到 6000 亿美元,也有人开始囤食物、囤水和发电机,担心电脑导致系统性崩溃。世界各国政府和公司展开了一场持续数年的大规模排查与修补,目标是找出并修掉系统里每一个两位数日期。

2000 年 1 月 1 日到来时,几乎什么都没出问题。只有少数小故障,没有大崩盘。支持者的说法是,问题不是被夸大了,而是庞大的修复行动奏效了。程序员和 IT 团队在它咬人之前,悄悄把坑补上了。比尔·克林顿称 Y2K 是「21 世纪第一个成功应对的挑战」。

Y2K 现在被当作预防成功的经典案例,也说明了防患未然有多不讨好:当你把活干完而什么坏事都没发生时,人们很容易以为这活根本没必要。没发生的灾祸是看不见的,阻止它的人也很难拿到什么功劳——可实际上,灾祸没有发生,正是成功的证据,而不是没风险的证据。

为什么会这样

  • 最初的错误是一个可以理解的省钱捷径:用两位数表示年份,发生在内存很贵、2000 年还很远的时候。
  • 随着系统越铺越广、回拨日期越来越近,这个捷径慢慢变成了潜伏的定时炸弹。
代价数千亿美元,用来避免一场灾祸侥幸躲过

教训

Y2K 之所以像没发生过,只是因为它被修了。漏洞是真的,修复也成功了,所以最后才没翻车。被提前化解的灾祸,看起来和从未存在过的灾祸一模一样。

后来呢

Y2K 现在常被当作成功预防的典型案例,也被当作预防灾祸不讨好的典型案例。那场耗资数千亿美元的全球修复行动,普遍被认为阻止了真实故障的发生;而平稳跨年,也被视为这项工作的价值证明,而不是威胁本来就虚张声势。它留下的长期教训是技术债和隐形成功:出于好意留下的捷径,可能会变成系统性风险;而那些默默把坑补上的人,往往拿不到多少感谢,因为被挡掉的灾祸,看起来就像从来没存在过。

资料来源

发现哪里写错了?告诉我们。

Comments · 0

    登录 后就能评论。

    类似的案例

    这家公司栽倒的地方,别处有人漂亮地解开过。 第二意见 →