從台鐵售票系統看 Public Money Public Code 的必要性

*Public Money, Public Code (PMPC): 用納稅人的錢所製作的軟體系統,應該要開放源碼供大眾檢驗並再利用。

五月份是報綜合所得稅的季節,每逢這時期想必大家心裡都不怎麼好過。然後今天早上剛好又看到臉書動態牆上有這麼一則抱怨:

「台鐵訂票系統還是很讓人佩服啊!!只要其中一站沒座位,就會直接噴無坐票給你看;搞得我還要一個一個區間慢慢查,從高雄到花蓮要買四張車票。阿不是說有『自動分段湊票』功能???」


朋友的臉書動態
朋友的臉書動態,順便曬一下我的 ezgo 桌面

這個貼文當然立刻讓我想到,四月份協會裡的前輩找我去參加記者會的事情。其實前輩並不是臨時找我,我們最早在一月左右就已經在討論這個問題了。我們看到的問題很簡單:為什麼十億預算做出來的系統,跟原來的台鐵購票系統感覺不出任何差異?到底這十億改進了什麼?

在這幾年到各地討論開放文件格式政策與數位路平等議題時,其實我也看到了類似的問題。政府單位開了標案,花了錢找了廠商,做出了一套系統。或許該系統一開始是符合要求的;但隨著時間的演進,自然也有可能出現新的需求。就以公文系統為例,一開始公文製作、簽核、交換等系統通通綁在 IE 瀏覽器上,或許不是什麼問題。但隨著新的系統、新的瀏覽器出現,公文系統卻仍然被綁在 IE8 上,還不能升級到 IE9,否則就崩潰給你看!為此許多學校、單位不得不留一台 XP 並保留 IE8;而政府單位向開發廠商提出希望將公文系統改版成可以跨瀏覽器時,開發廠商的反應是雙手一攤,「我們不會做!」最讓人匪夷所思的是,政府單位面對這樣的廠商,居然完全沒辦法!

當然,各地軟體、硬體廠商有各地的生態、舒適圈,裡面盤根錯結的結構糾葛我也不是不知道;而台鐵的這個「新」售票系統在我看來,也是相同的結構放大之後的產物。硬體設備上有改進,很好,這是看得見的,也容易被監督。但軟體系統呢?改了什麼?我們感覺不出來,那麼我們可以進去檢視嗎?如果不行,為什麼不行?如果不行,我們要怎麼知道在軟體開發這個層面上,有哪些問題,是否可以透過民間力量解決?

因此,在一月那次的討論中,我向前輩與在場的朋友們提出了在台灣推動 PMPC 立法的概念。因為一方面,PMPC 政策能讓這個一向存在於黑盒之中的結構透進一些陽光,減少這類問題,甚至推動產業升級;另一方面 PMPC 也正是我們推動軟體自由運動所追求的目標。

回到台鐵這個系統,其實今天這個系統所呈現出來的最大的問題,就是這一句話:「這個系統的價格價值有嚴重的落差!」雖說價格是客觀數字,價值是主觀感受;但再怎麼主觀,總有些很基本的要求應該被滿足,本文一開始舉的例子就屬於此。說好的「自動分段湊票」功能,可能是一般民眾最直接可以感受到新舊系統間差異的功能。結果仍然不行!那麼,這個系統的軟體開發到底在做些什麼?

所以,先前在討論時,我對台鐵的需求書與預算書的內容提出了一些疑問。關於新系統的開發費用,最有可能的就是灌在人事費用內(也就是負責開發系統程式的人,以及負責管理這些負責開發系統程式的人的人,當然可能還有負責管理這些負責管理這些負責開發系統程式的人的人的人等等);其次就是開發用的工具(所謂的「中介軟體」與「工具軟體」)。而我注意到,光這些「中介軟體」與「工具軟體」預算就編了三億!我非常好奇,這些「中介軟體」跟「工具軟體」到底是些什麼?

原本預期這個問題在我前陣子透過前輩拿到的一份台鐵的報告[1]中應該有交待,結果看到報告的時候我還是被驚呆了!報告中對所謂的「中介軟體」與「工具軟體」,完全沒有提到「使用哪些軟體」,而是以「票務入口管理網」、「資料庫軟體」、「商業智慧工具軟體」這樣的字眼帶過。「資料庫軟體」到底是哪一個?或許我們還可以透過「軟體供應商」來猜,大概就是 Oracle 的資料庫管理系統。可是資料庫管理系統百百種,有很貴的專有系統,也有自由開源的資料庫管理系統;有關聯式、也有非關聯式的系統。為什麼選用 Oracle,而不是臉書所採用的 Apache Cassandra 開源分散式資料庫?既然臉書都採用,想必大型系統的處理效能等不會是問題,只是適不適合而已。而這個「適不適合」,有沒有做過任何評估?此外還有沒有其他的選擇?上面所說還只是我所看到的第一眼印象而已。相信再深入追下去,一定可以看到更多「盤根錯節」的景象。

或許大家還會問,剛剛講的這些,跟我前面所提到的 PMPC:「用納稅人的錢所製作的軟體系統,應該要開放源碼供大眾檢驗並再利用」有什麼關係?事實上是有的。PMPC 在歐洲目前立法的情況,以義大利最為先進;他們的法律中,不單是要求政府單位所開發的系統要開源,同時也明訂當技術和經濟分析表明無法以較低的價格獲得開源解決方案,或重用內部開發的解決方案時,才允許購買專有授權的方案。[2][3]這裡的「購買方案」,當然包括了購買現有的方案,以及購買勞務開發新的方案。不管是哪一種,「開源解決方案」都必須是優先的選擇。如此一來,除了莫名的「工具軟體」或「中介軟體」肯定可以節省下大量的費用,也鼓勵開發商善用現有的開源方案、站在巨人的肩膀上來堆砌出創新的方案。

這一篇我們先談到這裡。結尾還是要呼籲一下:請台鐵公開這些開發經費所購置的「工具軟體」與「中介軟體」的詳細清單,讓臥虎藏龍的民間高手檢驗,到底有哪些是不必要的浪費,還有它們可行的替代方案為何。此外,也請各黨立法委員正視此問題,提出 PMPC 法案,節省納稅人的錢,也為政府單位找到更多的選擇。


[1] 這份報告的原檔居然還是docx格式!我們的單位還要無視開放文件格式政策到何時呢?!7pupu
[2] https://joinup.ec.europa.eu/news/priority-open-source-th 
[3] https://medium.com/team-per-la-trasformazione-digitale/open-source-italian-public-administration-guidelines-software-acquisition-reuse-dba6c733e1b7



comments powered by Disqus