Healthcare.gov 養兵千日、用在一時
美國政府醫療網站 Healthcare.gov,自2013年10月1日起啟用,但公開後一直受到技術問題困擾,連總統也不得不親自出來解畫,便特別任命了 Red Hat 、Google 和 Oracle 三家有 Linux 背景的公司派出技術人員搶救。在竊聽技術方面出類拔萃的美國,在架設一個正常的醫療網站卻錯漏百出,究竟當中發生了什麼問題?
身在美國以外的朋友,也許很難體會問題有多嚴重。Healthcare.gov 公開首天有超過 280 萬人到訪,同時在線上的人數達 25 萬,遠超出管理層 5 到 6 萬人的估計,更比實際上系統能同時處理的人數 1,100 為多。政府本來以 2013 年 10 月底處理 27 萬人的申請為目標,但在首天成功申請的只有 6 個人,簡直比中獎還要難。申請帳號的過程也匪夷所思,有用戶在輸入一大堆資料後才發現保險費算錯了,原因是系統忘記問用戶取得出生日期,只利用一個對話框來判斷用戶是否年滿 50 歲,系統更因此向不合資格的申請人,顯示錯誤的保險種類和補助金額。
接下來的連鎖反應便是錯誤的申請資料,被轉送至保險公司的系統中。「幸運」的是現在成功申請的人數有限,保險公司尚可以用人手修正,但到系統「正常」運作時,人手修正將成為系統的另一個瓶頸。更大的問題出現在系統安全上,作為保存大量個人資料的系統,確保其安全性是技術人員的職責。但 Healthcare.gov 卻被揭發在系統投入運作前,竟然沒有作過任何系統安全的測試,有報告更加顯示,不少用戶登入網站後,看到的竟然是另一名用戶的個人資料。其他問題還包括數據中心出問題令服務受影響、網站刊登的醫生資料不正確等等,難怪引起如此大的風波。
Healthcare.gov 弄到如此田地,政府要顧及政治角力的考慮是最大的原因。醫療改革是現屆美國政府堅持推行的政策,但政府卻遲遲不公開醫療改革的內容,目的為了避免令改革方案內容成為共和黨攻擊政府的口實,但負責架設系統的團隊亦因此一直無法取得相關資料。到醫療改革成功取得參眾兩院支持時, Healthcare.gov 團隊又被迫馬上交貨,以突顯政府的行政效率。加上原來由每個州架設獨立系統的提案被否決,令團隊最後要架設一個中央系統,以應付聯邦政府 36 州的需要,但此時經費又因為共和黨議員的反對而無法增加,網站能及時面世,可能已經是一個奇蹟。
當然系統在規劃階段也有一定的問題,例如承建商太多,令系統結構過度複雜、網站將全部功能一下子推出,而不是逐步增加新特性,這些都是任何專案管理者不應該犯的錯。加上網站沒有有效的方法在多層組件中管理臭蟲追蹤,令開發人員難以識別問題的根源,這些「先天」的缺陷「後天」要修補非常困難。縱使Red Hat等公司派出三位專家,相信問題並不容易在短期內解決。 有關方面表示 Healthcare.gov 的程式碼多達 5 億行,如果大家還是對這個數字沒有什麼概念的話,筆者可以告訴大家的是 Linux 3.1 核心、Windows NT 4.0、Android、Firefox、Google Chrome、MySQL 與 OpenOffice 的程式碼只在 500 萬到 1,000 萬行之間,Facebook 再多也只有1億行。要在一個月時間內從 5 億行程式碼找出 200 多個臭蟲,將會是一個前所未有的挑戰,且看後事發展如何。
主筆
麥經倫
2013年12月