今天要來聊聊一個有點年代感,但我覺得超值得一再提起的「末日危機」—— Y2K,也就是千禧蟲危機。現在講這個,可能很多 00 後的朋友會覺得「蛤?那是什麼?」,但對我們這種經歷過 90 年代的人來說,那可是個跟世界末日差不多的存在。
當時各種預言滿天飛,說什麼 2000 年 1 月 1 日午夜一到,全球電腦會大當機,銀行系統癱瘓、電力中斷、飛機還會從天上掉下來... 聽起來很像災難片對吧?但那時候大家是真心相信,而且超級焦慮。我自己... 呃,應該說我認識的一個朋友,他當時就在科技業的核心,整個被捲進這場風暴裡。
先說結論
結果呢?2000 年的太陽照常升起,飛機沒掉、ATM 也能領錢,世界一片祥和。所以千禧蟲是個騙局嗎?是大家窮緊張嗎?老實說,這是我聽過最大的誤解。真相是:危機沒有發生,不是因為它不存在,而是因為有超級多人在你看不到的地方,燃燒生命幫你擋下來了。 這根本是一場人類史上少見的、超大規模的全球合作勝利典範。
等等,所以「蟲」到底在哪?
這個問題現在聽起來可能有點蠢,但在當時可是個大哉問。這「蟲」不是真的蟲,它是一個...呃,歷史共業,一個當年工程師為了省錢省出來的麻煩。
很簡單的道理。在電腦剛發展的早期,記憶體跟儲存空間超級無敵貴,比黃金還貴吧我想。當時的工程師真的是一個 byte、一個 byte 在省。所以他們在設計日期欄位的時候,就想說「年份嘛,記後面兩位數就好啦,1985 就記 85,1999 就記 99,誰會想到用超過 2000 年啊?」
這個決定在當時很合理,省了兩個字元,就省了一點點儲存空間,幾百萬筆資料累積下來就很可觀。像以前那種 IBM 大型主機,整個系統的儲存空間可能就幾 MB,對,你沒看錯,是 Mega-Byte,不是你手機動不動就幾百 GB 的 G。每分空間都要計較。
結果問題來了。當時間走到 1999 年要跨到 2000 年時,電腦裡的年份會從 `99` 變成 `00`。對電腦來說,`00` 代表的到底是 2000 年?還是 1900 年?天曉得。如果一台計算利息的銀行主機把 2000 年當成 1900 年,那你的存款利息可能會瞬間變成負一百年份... 事情就大條了。
更麻煩的是,這些程式碼很多都是用一種叫 [COBOL (Common Business-Oriented Language)] 的古老語言寫的。那都是 1950、60 年代大型主機的程式碼,當初寫這些 code 的阿公級工程師,搞不好都已經退休去環遊世界了,誰還找得到人來改啊!這簡直是科技業的考古學。
那全世界是怎麼拆炸彈的?
既然知道問題了,總得解決。大概從 1998 年開始,全世界的企業和政府就動起來了。這不是單一公司或單一國家的事,因為大家的系統都是串在一起的。你家的銀行系統修好了,但跟你連線的另一家沒修,錢轉過去,資料一樣會亂掉。
所以那兩年,全球上演了一場「史上最大規模程式碼除錯運動」。我那個朋友的公司也是,成立了各種 Y2K 專案小組,把一堆人,甚至外面找來的約聘人員,全部丟進去「抓蟲」。
那個過程真的很枯燥。就是一行一行地去檢查幾十年前的程式碼,找到那個兩位數的年份欄位,然後把它改成四位數。聽起來簡單?不,超痛苦。有些程式一環扣一環,你改了 A,結果 B 就爆了,然後 C 也跟著出問題。簡直是惡夢。
當時的專案管理大概是這樣運作的:
- 全面盤點: 把公司所有系統、所有程式全部列出來,一個都不能少。
- 分工合作: 每個業務單位指派一個負責人,每天回報進度。對,每天。
- 燈號系統: 沒錯,就是紅綠燈。我們用綠、黃、紅燈來標示進度。綠燈代表安全,進度順利;黃燈是警告,有點落後;紅燈就完了,表示這個系統極有可能在 Y2K 當天出包。大家每個禮拜看著那個狀態報告,心情跟著上上下下。
- 向上匯報: 從基層的開發者,回報給部門主管,主管再回報給事業部總監,總監再往上... 一路報到最高層,甚至還要跟政府的主管機關匯報。整個國家,不,是整個世界就像一個巨大的專案團隊。
說到這個,就不能不提一下各國的應對。大家最常聽到的是美國的例子,像是 [US Senate committee dedicated to the Y2K problem] 這種參議院等級的委員會都成立了。他們發表的報告裡就說,資訊共享、供應商關係的關注、還有緊急應變計畫,是那次能安然度過的關鍵。
但這真的不是只有美國在緊張。我記得當時在台灣,政府也成立了「千禧年資訊年序問題服務團」之類的單位,到處去輔導企業,特別是中小企業,確保大家的系統都準備好了。那種全民總動員的感覺,真的很特別。不像現在,好像什麼事都能吵成一團... 唉,題外話了。
當年說的跟後來發生的,差多少?
我自己是覺得,Y2K 最有趣的地方,就是這種「預言 vs 現實」的巨大反差。我整理了一下,當年大家最怕的幾件事,跟最後的結果:
| 末日預言 😱 | 實際情況 😎 |
|---|---|
| 全球銀行系統崩潰,大家領不到錢,金融海嘯plus版。 | 嗯...1月1號銀行放假,反正也領不到。1月2號開門,一切正常。 |
| 飛機因為導航系統失靈,會從天上掉下來。 | 沒有,一架都沒掉。機長們應該覺得蠻無聊的。 |
| 核電廠、發電廠大爆炸或停擺,全球陷入黑暗。 | 大家家裡的電燈都還亮著,還能看電視跨年特別節目。 |
| 醫院維生系統失效,病患陷入危險... | 完全沒聽說。醫療設備商在那之前早就把東西都搞定了。 |
| 你家的微波爐、錄影機可能會因為日期錯亂而爆炸!(對,真的有人這樣說) | 我的天,這是最扯的。當然沒爆,頂多就是時間閃爍而已吧。 |
決戰之夜:1999 年的最後一天
所以,1999 年 12 月 31 號那天,全世界的 IT 人員大概都沒辦法在家裡跟家人吃團圓飯。我朋友也是,他被叫去公司的「戰情室」(Command Center)待命。
那畫面蠻酷的。整個辦公室擺滿了螢幕,有的在轉播各國的跨年煙火,從澳洲、日本、一路看著時區前進;另外更多的螢幕,則是顯示著公司內部所有系統的狀態燈號。空氣中瀰漫著一種既緊張又興奮的氣氛。
大家就這樣,眼睛死盯著螢幕。當雪梨的午夜鐘聲響起,沒事。東京,沒事。北京、香港... 都沒事。輪到台灣的時區了,心跳開始加速...然後,午夜一過,所有系統燈號,一片綠!
那一瞬間,整個戰情室從鴉雀無聲變成一片歡呼。大家開始擁抱、握手,原本準備拿來敲鍵盤的手,全都伸向了桌上的洋芋片。公司準備的無酒精香檳「啵」一聲打開,那可能是我朋友喝過最甜美的一杯「香檳」。
那一晚,他們什麼事也沒做,就只是吃吃喝喝,拍照留念。因為全世界的 IT 人員,已經在那之前的兩年,把所有能做的事情都做完了。這不是幸運,這是準備的結果。
所以,我們從 Y2K 學到了什麼?
20 多年過去了,現在回頭看 Y2K,它不再是一個技術問題,反而更像一個...嗯,社會學或管理學的課題。如果當年沒有那種「全世界都在同一條船上」的共識,如果每個公司、每個政府都自掃門前雪,那災難片可能真的會上演。
Y2K 的成功,證明了幾件事:
- 預防遠勝於治療: 花大錢、花大力氣去預防一個危機,雖然成功後會被不懂的人笑「窮緊張」,但這絕對比災難發生後再來收拾殘局,成本要低太多了。
- 溝通與合作是萬能的: 無論是公司內部跨部門,還是企業之間,甚至是跨國的政府合作,透明的溝通和無私的資訊共享,才能解決這種牽一髮動全身的系統性風險。
- 永遠要尊重「看不見的工程」: 我們現在能享受便利的數位生活,背後有無數的工程師在維護、更新、修補。這些努力平常看不到,但少了他們,一切都會崩塌。
所以下次再有人跟你說「千禧蟲根本沒什麼」,你可以跟他分享這個故事。那不是一場虛驚,而是一場被成功阻止的完美風暴。我們現在面對的很多問題,不管是氣候變遷還是資訊安全,或許都能從 25 年前那場全球總動員中,學到點什麼吧。
最後想問問大家,1999 年的跨年夜,你正在做什麼呢? 你當時也為了 Y2K 感到焦慮嗎?還是在外面狂歡,完全沒在怕?在下面留言分享一下你的「千禧回憶」吧!
