【軟件與人命 — — 港鐵事故嘅反思】
早幾日(2019年3月)波音出事,我喺臉書寫話「我睇呢類『軟件風險』(如果係)會越嚟越頻密,同埋影響會越大。大家小心睇路。」話口未完,港鐵出事。又係新訊號系統出事,港鐵高層表示今次係軟件問題。雖然本 #老師 #又中,不過我原本預料嘅係 “this is just the beginning”,講緊嘅係往後十幾年嘅事。當我哋平日使用嘅服務越嚟越依賴軟件操作,日後因為軟件出事嘅情況應該越嚟越嚴重。
軟件好哋哋做乜要 upgrade?據聞係為咗更加有效使用鐵路空間,減少列車之間嘅距離。唔係話特登想提起 #人口政策 問題,但事實上港鐵用33億買個bug到爆嘅新系統,可以話係為咗每日嗰 150 名單程證同埋每年嗰幾千萬人次嘅自由行埋單。
唔知今次新系統炒大鑊會令系統推出時間延期幾耐,不過想當然港鐵上報嘅預期載客流量,肯定曾經係 有關當局[1]制定香港人口政策考量嘅因素之一。既然呢啲議題係林鄭所謂嘅 #紅線,絕對不能撼動,咁 有關當局係咪明知喺新系統暫時閣置嘅情況下,港鐵未能如預期處理更多人流,都會照樣跟住原本個plan去繼續放人落嚟呢?老老實實,國家利益當前,講緊嘅係十幾億人民嘅福祉,就算金鐘爆到入唔到閘,都係無可奈何嘅事嚟啦,係咪咁話。(咁仲好,去大灣區!)
不過就算唔計政治因素,軟件都有不斷複雜化嘅趨勢。正常管理層會咁諗:如果 upgrade 軟件就可以提升系統效能,點解唔做?就算國家冇任務俾你,單係可以提升效能就已經係好大引誘。但好多人[2]唔明白嘅係,軟件升級講緊嘅係風險同效能嘅取捨。雖則話運輸訊號系統人命攸關,但每年有 0.01% 機會死一千人,同殺人犯每幾年 100% 殺死一個人,係有啲唔同嘅。事實上社會上好多政策都係風險同效率之間嘅取捨,例如點解馬路車速限制唔係 20km/h?設到咁低就唔會撞死人[3],不過大家為咗高速行車嘅效率,又接受呢個風險。每個地方嘅人民對風險嘅接受程度唔同,香港人係比較蛇瓜啲[4]。
由於死人冧樓係「黑天鵝」事件,實際風險程度好難客觀咁量化。所有事故喺出事之前都係運作順暢嘅,運作順暢又會令人降低戒心,令人心思思想再做多少少去提升效能。如果取用 “Peter Principle”[5] 嘅思路,甚至可以話:所有軟件都係會不斷升級升到佢出事先會有人叫停。
今次事故最有趣嘅係,港鐵出事之後,負責軟件開發嘅公司Thales喺實驗室模擬測試都出現同樣問題。係咪 Thales 對系統做嘅試測做得唔夠呢?好可能係,不過現階段未有調查報告講咩都係鳩估。問題係,點解咁都得?唔係應該試到足先出街架咩?呢個又去返軟件嘅複雜程度嘅問題。
究竟呢個年代嘅軟件有幾複雜?複雜到冇一個人可以理解嘅程度。參與軟件開發嘅人,都會對佢哋負責嘅部份有局部認知,但唔會有一個人講得出軟件嘅每一個細節。有好多嘢分開測試冇問題,夾埋一齊就出事。有一個(我覺得)好搞笑嘅gif圖,好形像化咁解釋咗乜嘢係「分開測試冇問題,夾埋一齊就出事」,大家睇咗先再講:
https://tenor.com/view/unittest-unit-test-gif-10813141
試想像下軟件系統唔係兩個窗咁簡單,而係有千千萬萬個部件,每個之間各自互動,會係咩數字呢?隨時係天文數字[6]。
正如我上面提及,每一位開發者對軟件只有局部認知,冇一個人會知道軟件每一個細節、每一個情況會發生咩事。所以,冇人可以寫包單[7]話系統一定冇問題。事實上,軟件行業內嘅人都知道,軟件一定有bug,問題係嚴重程度有幾大而已。只要系統夠複雜,就算今日呢個 bug 係「應該可以靠更全面嘅測試發現得到」,第日都一定會有個更刁鑽嘅 bug 潛伏喺系統某個深處。究竟你願意花幾多資源去做呢啲無止境嘅測試呢? 去到最後,都係風險同資源嘅取捨嚟。經濟學家會話你知,人命都有價架。
呢啲軟件開發嘅 “trolley problem” 好多時會被人忽視。呢啲 inconvenient questions 冇咩人會拎出嚟講。如果一個 bug 係 chok 兩 chok 就會發現,當然係開發者嘅錯。但如果你開發緊一套人命攸關嘅軟件,你願意花幾多資源,將出事機率[8]減少 0.01% 呢?
某程度上,港鐵喺測試期間發現問題,可以話係不幸中嘅大幸。我知大家平日返工喺港鐵受唔少苦[9],但講到尾,搞系統升級最大因由,似乎都係人口政策、土地規劃呢啲問題引申出嚟嘅。試想像下,「上頭」係咁俾壓力話今年要放多幾萬人落嚟,政府就話市區冇地要等填完海先有得搞,然後市民就日日屌晒老母話港鐵太迫又焗又暈,你為咗自己仕途著想,點會唔想心急將系統升級?如果唔係測試期間發現問題,而係車廂載滿人嗰陣出事,到時我就唔係形而上咁討論 “trolley problem” 呢啲哲學問題,而係會學凌友詩咁樣激昂頌讚車廂內嗰幾千個香港人有幸為中華人民共和國嘅國家政策、大灣區人民嘅融和而壯烈犧牲,係幾咁偉大同富有意義嘅事[10]。
— — -
- [1] 不過我都唔知係邊個先至係「 有關當局」。
- [2] 我講緊一般人。我朋友圈中冇大企業嘅高層,不過希望佢哋明啦。唔知而家 MBA 課程有冇教呢啲呢?讀過 MBA 嘅朋友不妨話返俾我知
- [3] 我知都係會,但會少好多
- [4] 有關嘅詳細論述可以睇拙文 https://www.vjmedia.com.hk/articles/2015/12/21/122946
- [5] 工作表現好嘅人會升職,最後升到一個佢不能勝任嘅位置
- [6] 咁樣起碼有 N² 個關係啦。一萬x一萬已經過億。當然 N² 已經係俾少咗佢,general case 係 exponential 嘅⋯
- [7] 講緊理論上嘅正確性。法律上梗係要有人寫包單⋯
- [8] 呢個應該係 subjective probability,仲要係 hypothetical 嘅 9up ballpark figure。詳情請睇拙文 https://medium.com/@sidneyfong/%E9%95%B7%E6%96%87%E6%85%8E%E5%85%A5-%E6%A9%9F%E6%9C%83%E7%8E%87-ab4d4b747a2c
- [9] I go to work by bus
- [10] 記住,人口政策係紅線,只可以讚,唔屌得架 原文於 2019 年 3 月發佈,略有修改