從鐵路客票系統看大型項目的成敗因素
【51CTO觀察】又到了一年國慶節,今年的國慶長假因為與中秋節連在一塊兒而變成了八天。很多人都想趁著這個長假,回家去看看父母、朋友,卻被鐵道部12306網站的低效率,低性能而怒火中燒。究竟是為何,這樣一個大型的項目會引發如此的眾怒呢?
新聞回顧:針對太極公司中標鐵路新一代客票系統工程情況,昨晚,鐵道部信息技術中心負責人作出回應,稱新一代客票系統招標依法合規、公開透明。該部門相關負責人昨晚回應,鐵路新一代客票系統建設,是依據國家有關規定并面向社會公開進行招標的。其中,太極公司以1.99億元中標部分軟硬件設備和集成服務。這一招標符合法定程序,在新一代客票系統一期工程中,已按計劃使用了部分招標采購的設備。對于旅客反映客票系統漏洞百出、使用不便等情況,該負責人表示,鐵路客票系統建設還在進行中,工程完工后,系統功能會進一步完善。
眾多網友在微博中表達了對12306的不滿,1.99億竟然打造不出一個合格的客票網站。不少WEB開發者建議鐵道部找馬云尋求幫助,更有不少開發者開始反思該如何搞好類似鐵道部12306網站這樣的大型項目。
在51CTO收集的部分文章中,有《鐵道部新客票系統設計》的第一,二,三篇。其中分析了網站架構、余票算法、數據系統架構等等方面的項目因素。
這樣的項目架構圖,及其分析文章,在以往也有不少。從技術的角度,12306確實有更多改進的地方。不過他“失敗”的因素,卻不光光是技術。
1.經費是否全部用于項目?
兩億資金對于鐵路建設來說,基本上屬于九牛一毛的開銷。相比2008年幾萬億的高鐵建設,12306網站的投入似乎不大,甚至趕不上京滬高鐵后期因為審計出現問題的金額。不過兩億對于WEB開發系統來說,卻是綽綽有余。根據一些電商人士測算,12306級別網站的研發投入至多不超過一億,甚至有人喊出3000萬即可開發出12306的觀點。
12306網站并不是對之前鐵路客票系統的再次構建,而只是客票系統除了車站、代售點之外的一個互聯網延伸,他的數據接口來源還是鐵道部的總票庫。這樣一個網站雖說有單日峰值14億的壓力,但在目前大數據、云計算興起的今天,有2億人民幣(接近3000萬美元)的預算做這樣一個系統,似乎從技術上是不難實現的。
在前鐵道部部長劉志軍被雙規后,我們看到的是層層轉包,到***實際執行者已經剩不了多少經費了。不知道12306是否也屬于這樣的經歷,倘若如此,那12306這樣大型的項目如此“失敗”就不足為奇了。
2.流程設計是否合理?
一個大型項目的流程設計肯定無法讓所有人滿意,必然有人會罵娘。比如12306當中新出現的“排隊”功能,本來這是為了方便購票者去鎖定自己想要的車票,讓排隊者有一定的優先權。這就好像高考中的填報志愿,實際錄取100人,而我可以提調120人的檔案。即使你沒排到100名,但前面會有人因為各種各樣的原因放棄,所以你還是有機會被錄取。想必12306設計排隊的功能,也是基于這樣一種考慮。
但12306的設計者卻忽視了一個重要問題,就是旅客購買車票是一對多的關系。我去哈爾濱即使買不到Z1的車票,那其他車我也能接受啊,總不能讓我一直在這里排隊,而其他車的車票都被別人搶走吧。本來我可能能買到其他車票回家,即使多坐一會兒也沒關系,現在可好,直接被剝奪了權利。這個問題在之前的12306系統并不存在,因為系統會實時告知你情況,好讓你盡快改變主意。
假設這樣的功能要繼續存在,作為12306的設計者,應該參考高考填報志愿的平行志愿一說。讓每個購票者能選擇三到五趟車作為自己的“平行志愿“,哪趟車出票了就立即進入支付環節,另外幾趟車自動取消。讓公眾的選擇面多一些,大家就不會罵娘了。
業務流程設計不細致,沒有經過大量調查和實際測試,必定會導致大型項目的失敗。
3.技術細節令大型項目”潰于蟻穴“
大型項目總會有一些技術漏洞和不足,有些是無傷大雅的小毛病,而有些確實致命的硬傷。比如之前的12306網站還需要用戶去更新自己的根證書,在瀏覽器上瀏覽12306會彈出該網頁存在風險,是否信任并繼續的彈窗。倘若用戶點擊了”是“,會造成后續選擇日期時部分元素無法顯示的問題。
這樣的兼容性問題和安全性問題,對于上過計算機專業課,或者有一定IT經驗的人來說自然是小菜一碟。但是對于全國幾億網民來購票的時候,就會讓他們困惑。一次又一次的報警彈窗會讓他們無所適從,到底點不點?這么多錯誤的網站究竟是不是假網站?
有很多時候,咱們程序員都會以自己的IT技術水平來考量廣大網民的平均水平,勢必會造成整個項目的復雜性和繁瑣性增加。這樣的技術細節問題被忽略,項目被人罵娘就在所難免了。
4.更新維護是否及時
大型項目出現問題在所難免,連微軟、蘋果、Google這樣的IT業領軍企業都要經常發布補丁或者升級讓用戶修補之前的漏洞和問題。而當12306出現這么多被人詬病的錯誤之后,太極軟件等系統集成商是否及時更新和維護12306網站,也是決定成敗的關鍵。
從目前來看,他們還沒有更多的行動。51CTO記者在12306網站查詢時,經常會出現各種數據丟失的現象,車次無法查詢,某些日期整個數據表一片空白。面對那一行行空白的表格,不知道坐在計算機前心急火燎急需一張回家車票的用戶,心情該是怎樣的復雜。
總結
大型項目做好是困難的,大家的批評也是鋪天蓋地的。以12306網站作為解剖對象,給各位開發者和項目經理以一些啟示,對今后大家做好自己的項目,恐怕還是有不小的幫助。引以為鑒,希望12306網站還是能更好的為大家服務,讓大家都能安心回家。51CTO提前預祝各位網友,中秋快樂!