有人說,千禧蟲危機的最大受惠者將是替眾人打索賠官司的律師;而最大受害者,自然是身負「抓蟲」重任的資訊人了。
「要做好會被累死,做不好則會被打死,」一位抓蟲人如是說。到底,抓蟲人如何殺蟲?什麼是他們真正的困擾?他們的心聲又有誰知道?
為了喚起企業主的高度重視,千禧蟲專家在演講時總是強調,「Y2K絕不只是技術問題!」
沒錯,Y2K不只是技術問題。不過光談技術,就足夠讓全球資訊工作者抓狂了。
「酷斯拉」再現?
理論上來說,Y2K問題,不過就是電腦日期中的年份,必須由現行的兩欄改為四欄,資訊工程師只要將程式碼中的日期符號一個個搜尋出來改正就好了。
話是沒錯,動起手來卻發現不是那麼一回事。在《別被千禧蟲咬死》這本書中,作者弗萊契用「換燈泡」來比喻抓千禧蟲:換一個燈泡誠然不難,然而,擺在眼前的是要將整個社區裡的每盞燈泡都換掉,包括怚芊B六怚芊B一百瓦的;省電燈泡、日光燈、鹵素燈、車頭燈、霓虹燈、手電筒燈、聖誕樹裝飾燈……。這些燈上天入地、位置不明,還有些深鎖空屋,外人不得其門而入,更有的早已燈座朽爛、停產多年……。尤其糟糕的是,所有的工作必須於兩星期內完成,一分鐘都延遲不得!
用燈泡來比喻千禧蟲,其實失之過簡,因為電腦系統網網相連,比單個燈泡複雜何止千百倍,千禧蟲之所以被視為一種「病毒」,也是因為它們具有傳染的特性。
譬如許多國家的稅務部門已普遍接受企業及民眾上網報稅,然而報稅者的電腦未必都符合Y2K標準;一旦有錯誤的日期進入稅務系統,系統要有能力辨識、隔離並作修正,否則讓錯誤日期「混」進來後,不僅應納及滯納稅款等計算會出問題,系統本身也會受到損害。
再說,再怎樣的藝術燈泡,也還有個燈泡的樣子,可是電腦裡的日期表示方法卻可能千奇百怪,逃過搜尋者的法眼。
事實上,儘管在使用者看來,電腦的日期顯示方式似乎大同小異,然而深入程式中會發現,有些日期的順序是日月年(DDMMYY),有些是年月日(YYMMDD),以及各式各樣的三者組合。有些程式為了運算方便,將日期以數字型式代表,譬如8796代表本世紀(一九○○年元旦)以後的第8796天;還有些數字代表從今年初開始推算的第幾天。有些應用軟體配合公司的作業而有不同的日期設計,譬如會計系統可能使用十三期、每期四周的日曆。最教人啼笑皆非的是,有些工程師會突發奇想,用自己孩子的名字代表孩子出生的那個年份……。
「以前以為是小蟲,現在卻覺得好像有一大群酷斯拉正在暗中潛伏、伺機而出,」中衛發展中心Y2K專案經理姜述尚形容自己的抓蟲感想。
別驚訝,這些酷斯拉可不是世紀末的新種怪獸,其實早在六○年代,它們就曾引起騷動。
誰能不短視?
在六○年代記憶體極其昂貴的時候,不少工程師慣用一個欄位來代表年份,譬如用「五」代表一九六五年,結果要進入七○年代時,大家才紛紛修正改寫。
七○年代的教訓為什麼沒有讓世人警覺?這個疑問如今已成為資訊史上一段不可考的公案。有人推測是因為當時電腦應用不普及、也或許當時的資訊人員覺得自己寫的程式絕不可能「存活」到下世紀,更或許資訊界一直有份樂觀的憧憬,認為「船到橋頭自然直」,到世紀末總會有人神來一筆,將所有的年序問題一筆勾消吧?
遺憾的是,離下一世紀只剩二百多天了,神奇的仙女棒依舊芳蹤杳然,而因循拖延的結果,徒然使得千禧蟲問題層層疊疊、難以解套。
為了抓蟲,每天要看上千行舊程式的凌群電腦市場處總工程師陳建國就半開玩笑地埋怨,有時忍不住邊改邊罵:「哪個蠢蛋,寫這些缺德沒大腦的程式!」
要當心的是,短視心態並不是前人的專利,而現在的「被害者」也可能搖身變成「加害人」。只要檢視眼前東拼西湊、削足適履的各式Y2K解決方案,就知道日後的資訊人還有得苦頭吃呢。
「本來年序的欄位,兩欄不夠,就應該增為四欄。這是最徹底安全的方法,」陳建國指出,只是這種方法必須要將所有程式及歷年堆積如山的資料檔都一併修改,檔案的格式要變更、容量要加大,不僅工程浩大,而且所費不貲,超乎多數企業的能力。因此國外估計,目前採用此法的企業,不會超過百分之二十。
為了取巧省錢,許多人改採「區間法」:因應個別的業務需要,選取一個基準年份,據此區分為不同的世紀。譬如某家銀行現存的最早開戶記錄是一九五八年,於是以五○年為基準年份,超過五○的,像是五八,就視為一九五八年;小於五○的,像是四八,就視為二○四八年。
「區間法」只修改程式而不必修改資料檔,然而它的業務涵蓋範圍只有一百年;而且在一套大型的應用系統裡,可能不同的程式會需要不同的基準年。再說,隨著時間推移,基準年份說不定還得跟著調前移後。這種「挖東牆補西牆式」的修改法,維護起來徒增困擾,然而卻是眼前最受歡迎的作法。
西元九九九九年時……
還有一種修改方式,則是藉西曆的日期和星期對應每二十八年將重複一次的特性(例如今年一月一日是星期五,二十八年後又是如此),將系統倒退二十八年,重回一九七○年代。等電腦內部按正常方式進行各種計算排序後,又再加上二十八後才輸出,因此使用的人不會發覺電腦暗藏的「返老還童」把戲。
和「倒退二十八年」有異曲同工之妙的,則是有人將台灣慣用的民國紀年,以西元年份表示。譬如民國八十七年,就將電腦主機系統日期設定為一九八七(而非正確的一九九八)。還有人把民國年的計算方式(西元年份-11)改為西元年份+89,譬如一九九九年是99+89=188,而民國年欄位只有兩欄,剛好等於民國八十八年,這樣可以拖延個十一年,將迫在眼前的千禧蟲改裝為民國一百年才會發作的「百年蟲」。
令人驚訝的是,電腦年序問題何等重要,為什麼資訊界想不出斧底抽薪的辦法,卻任憑大家各出奇招,但求「矇混」過眼前的難關呢?
這樣的問題,得到的回答只有沈默。然而,「最慘的還不是我們——誰要去管九九九九?!」一位資訊工作者開玩笑說,如果到時候地球依然運轉、科技依然發達,電腦想必更在人類驅動下遍佈火星與外太空。那時面對由千禧蟲升格的「萬年老蟲」,資訊界的徒子徒孫們可不知道要如何咬牙切齒了!
考古工程?
「蟲」的演變有趣,抓蟲尖兵──資訊人的心路歷程也同樣耐人尋味。
用「剝洋蔥──越剝越想流眼淚」來形容抓蟲工作的惠普科技公司顧客服務處軟體支援服務部協理、同時也是惠普Y2K專案負責人的吳增峰表示,這幾年工作下來,讓他對科技的奧秘更加心存敬畏。
「We don't know what we don't know.」(我們不知道我們所不知道的),吳增峰強調,壓力大,正是來自太多的 「unknown」(未知)。
而身為各家客戶寄予重望的資訊設備及服務廠商,每個人都期望他們能夠負起完全責任。可是「軟體問題,是沒辦法百分之百打包票的,」吳增峰坦承,即使每一行程式都看得到、修正好,也沒辦法保證執行結果一定完美無缺。
再說,Y2K危機雖然使得資訊人員炙手可熱,身價暴漲,然而這份工作之枯燥繁瑣,使得高薪都不足以構成吸引力。
「每個工程師都想學新東西,可是Y2K卻是一板一眼做苦工,重新研究早就過時的程式語言(COBOL、FORTRAN等),替前人收拾爛攤子,毫無創新可言,」陳建國指出。
惠群電腦公司董事長傅武雄就表示,許多企業為了Y2K而登門拜託,但他都一律拒絕。
「這種案子只能接到今年年底,我為什麼要做短期生意?為Y2K增聘的人手,到時候難道又要解雇?」傅武雄表示,軟體的潛力無窮、科技進展更是日新月異,如果把時間耗在千禧蟲堆裡,不出兩年就落伍了,誰願意自我犧牲?
而台灣企業對Y2K認知不足、重視不夠,也間接降低了資訊廠商的抓蟲意願。在國外,抓蟲的代價是以「一行程式碼一元美金」來估算的,且這個價碼隨著二千年「大限」逼近而在持續高漲中。可是在國內,「大概只有三分之一的價錢,」冠佳資訊公司協理陳輝龍不諱言,他們目前正想跨海去接美國的案子來做。
報喪的烏鴉?
資訊廠商可以拒絕接案,可是企業內的資訊人員卻毫無選擇,必須投身其中。
裕隆汽車前副總經理林茂寅,去年曾經兼任資訊室主任,因此對箇中甘苦深有體會。由於裕隆為因應Y2K而決定更新整個電腦架構,因此資訊部門可謂人仰馬翻。
「有段日子,每天晚上到了十一點,大夥就出去吃宵夜,放著程式自己跑。吃完宵夜回來後繼續幹,熬到兩眼發直,才披星戴月回宿舍,」林茂寅笑道,「那時我們常常自嘲,『是啊,我們比別人早下班──我們早上三點就下班了!』」
對企業來說,Y2K既不能創造業績,也無法研發新產品,多數企業主都視之為不得不負擔的累贅,平時少有聞問,但一旦聽到問題還沒解決,卻又難免動怒。在這種氣氛下,「報喜不報憂」,其實是企業內資訊部門的普遍心態。
一家員工規模達到二千人的服務業公司資訊部專員,被指派來聽Y2K演講後大吃一驚,原來千禧蟲如此棘手,而他的公司截至目前還有沒做任何因應動作。然而要不要將聽講內容據實回報呢?
「現在提這些,太遲了吧?」他一臉猶疑地說,「我可不敢當報喪的烏鴉,搞不好還會害(資訊部)老闆被炒魷魚!」
中衛中心經理姜述尚透露,不少公司的資訊人員早已準備在今年六月底前辦理退休,美其名要把握Y2K良機,自己創業,其實是想在大難爆發前藉機開溜。
惠普的系統工程師詹德瀚則說了一個普遍流傳在業界的笑話:有個資訊人員受不了Y2K的壓力,決定辭職跳槽,沒想到問來問去,每家老闆都要他去抓千禧蟲。無處可逃之下,他乾脆找個冷凍櫃把自己凍進去,還把解凍時間設定在西元二千年後。不過這位可憐的資訊人從此再無下文──原來他忘了要先解決冷凍櫃的千禧蟲問題!
請給我們鼓勵
換一個角度,台灣IBM公司大中華地區公元二千年綜合策進處協理林獻仁還是希望同業用積極的心態思考,用使命感來肯定自己的價值。
由於Y2K人手缺乏,IBM正進行招聘。今年過年時,林獻仁就陸續接到一些同業的電話,希望跳槽過來。可是他說,「對不起,我不要你來。你如果離開,你的公司怎麼辦?誰能接手你的工作?」林獻仁在一場演講中,對台下二百多名資訊同業表示,「不管你的老闆多惡劣、多無知,但你要想到公司裡的數百位同事,他們未來的生計可能都得靠你今天的苦工。做Y2K就像跑馬拉松,成也好、敗也罷,你要咬牙跑完它!」
林獻仁的話令人動容。而在抓蟲尖兵們默默付出之際,旁人是否也能不吝於多給些掌聲呢?
p.22
在有關Y2K的演講會場外,常見各家資訊廠商向企業界推銷、解釋自己的Y2K解決方案。(卜華志攝)
p.25
Y2K危險日期一覽表
日期 發病原因
1999/1/1 跨年度計畫開始日;「99」可能代表特殊涵意,導致當機。
1999/4/9 今年第九十九日,羅馬日誌為9999,「9999」可能代表特殊涵意,導致當機。
1999/9/9 日期表示為9999,「9999」可能代表特殊涵意,導致當機。
1999/12/31 1999最後一天。
2000/1/1 西元二千年第一天。
2000/1/3 西元二千年第一個營業日。
2000/1/10 欄位第一次出現七位數日期。
2000/2/29 西元二千年為潤年。
2000/10/10 欄位第一次出現八位數日期。
2000/12/31 西元二千年最後一天。
2001/1/1 西元2001年第一天。
備註:
*每月月底、每季季末均應注意。
*1999/8/21為 GPS (全球定位系統)計時器歸零日。除非完成修正,否則當日許多GPS接受器日期將歸零為1980/1/5,無法發揮定位功能,飛機船隻可能迷航。