12306背後-中國軟件業人力成本10倍於美國-席亞洲
12306是一個很糟的網站,反應速度慢,錯誤率高,安全性差。隨着它的代碼被公開在網絡上,關於這個網站是《程序員低級錯誤大全》的調侃隨即出現。這裏且不討論這個網站到底有多麼糟糕,也無意説它能夠贏得招標這個事實背後是不是有什麼別的問題。
我們下面講個故事,和12306的故事類似,我們從裏面可以看出一些問題:
國內某大能源集團曾有一個1.5億的企業信息化方案,用IBM 90年代陳舊系統框架。投資中60%被硬件賺走,大部分是IBM等公司的服務器。技術授權又佔20%,還有其它軟件有10%-15%。產品效果類似12306,不過因為該集團內部訪問流量沒有12306這麼誇張,所以也就捏着鼻子用了。這麼一個不算複雜的應用,居然用70名開發人員,足足幹了快兩年。算下來平均每個員工的收入也就每年5萬塊錢。
這樣的開發狀況,是國內大型企業內部信息化方案實施的一個普遍情況。
考慮到12306售票系統涉及到比上面提到的信息化項目複雜得多的軟硬件應用,要服務的人羣更加龐大等等因素,金額達到3.3億,按照國內業界的話來説:不是多了,而是少了。其中已經沒有養活一隻“碩鼠”的餘地。
開發上面所説項目的公司,管理、策劃、客户源都是清華出來的。這些人非常喜歡用IBM那些90年代的架構做東西,而IBM從那時到現在實際已經沒有新的軟件做出來。其中7成的錢IBM等公司賺走,實施公司拿一點人工費。
這裏就要提到,IBM和微軟常年與中國的許多重點大學進行“合作”,向這些大學支付大筆資金,讓他們只教自己的軟件框架。而大學為了提高“就業率”,也很高興推薦自己的優秀學生去這些大公司。而在國外的大學,一般是不教微軟的框架的。主要教學內容是數理邏輯和編程邏輯。這樣的學生可以自行學習任何軟件框架,這是國內的大學生目前所欠缺的。
近段時間“中國的超級工程”電視片很火,如果我們看一下12306的相關數據,就會發現這個項目,本應成為又一個讓中國人自豪的“超級工程”的。
據網友統計,截至1月5日,互聯網權威流量排名機構Alexa顯示,元旦一週,12306網站的“一週平均排名”為339,日均IP為194萬。而國內航空網絡售票網站“travelsky.com”的“一週平均排名”為11340,日均IP為8萬多。相比之下,火車票的需求為機票的25倍左右。
和普通的電子商務網站相比,12306的另一個關鍵的設計難題還在於其訪問高峯是在每天固定時間投放客票後的極短的時間內爆發式增長的,對於網絡流量提出了嚴峻的考驗。
把這樣一個系統做好,無疑需要強大的工程能力,做出一個軟硬件方面都達到世界級水平的網站設計的。
然而最終12306網站卻以現在的形象出現。
我們暫不考慮傳聞中的高層人事變動帶來的影響,從技術的角度説,到底出了什麼問題?
如果我們用建築來打比方的話,鐵道部掏了3.3億,説他們要造一個容納全國乘客同時看比賽的運動場。合理的選擇是造一個“鳥巢”,主體用鋼結構,內部設計按照21世紀的標準確保觀眾有序入場退場,要設計廁所和服務設施等等。然而承建的公司卻是一家小施工隊,他們只有很少的技術人員,而且缺乏經驗。由於不會用先進的工程機械,招了一大羣剛剛進城打工的農民來當力工,然後拿出一張上世紀90年代的河北廊坊體育場的圖紙。把主體結構改成木製,同時把規模放大十倍。經過漫長的施工,他們終於完成了一個搖搖欲墜、醜陋又巨大建築物。最終這個沒有經過測試的體育場在大批觀眾入場後轟然崩塌。
類似的情況,在國內的網絡和軟件領域屢見不鮮。
同樣的情況也曾出現在高考查分網站上。國內的銀行網站至今不能支持非windows操作系統電腦的網上銀行業務。它們的投資,大多也不比12306少。
有人要開始質疑紀檢監察部門不作為。然而在軟件行業內,卻對這種情況覺得“很正常”。
原因是什麼?
一個讓人很難相信的數字,在中國進行做網絡開發,達到與國外同類軟件相似性能,需要10倍的人力成本。中國程序員的收入明明才和普通產業工人差不多,為什麼會出現這個10倍的成本呢?
軟件業內人士指出,首先在於技術結構落後。
兩個美國的周工資5000美元的程序員能夠在2天內完成的工作,到了國內就需要40個拿4000人民幣月工資的程序員幹一個月,從生產效率上説,相當於人家開着剷車,而我們還在揮舞鏟子。總成本合計,美國人需要1萬3千元人民幣,中國程序員總共拿了16萬元人民幣。從成本上來説,達到同樣的效果,人力成本國內是國外的10倍還多。
國內的軟件行業的通行標準相當於美國的90年代水平,以微軟,IBM等公司的框架為基礎進行開發,這就要向這些大公司繳納高額的費用來獲得他們的授權和技術支持。這些10多年前的軟件代碼執行效率以今天眼光來看非常低下,並且非常複雜,也只有這些大公司自己玩的明白,國內公司不可能掌握它們的核心技術。
這就是説,國內的軟件業實際上是用上世紀的簡易房的圖紙修修補補來設計今天的摩天大廈的,而且它們多數還不掌握建築學的基本知識,所以出現任何紕漏都不奇怪。
導致國內軟件公司現狀的原因是國內的開發者本身水平總體較低,大部分國內軟件公司的開發者都是俗稱“碼農”的一批人,他們多隻學過大公司軟件框架的知識和一些電腦語言基礎,由於沒有學過數學算法邏輯和編程邏輯基礎,所以學習新軟件的能力很差。國際上,合格的程序員80%的知識和能力是依靠自學的。
我們還是用形象的語言來解釋下這種情況。
國際標準的程序工程師應該是會自己炒菜的廚師,然後通過在飯店裏自己掌勺逐漸提高水平,最後成為能獨當一面的主廚,而國內的“碼農”僅僅是簡單的重複勞動,就相當於麥當勞裏打工的學生,工作很辛苦,薪水很低,但是永遠學不會如何炒菜。
一個更不合理的現象出現在那些被認為是“精英”階層的名牌大學軟件工程的碩士,博士們,他們中很多人都在大學中微軟IBM等大公司組織的招聘會上被選中。儘管給他們的工資不低,但是他們實際承擔的往往只是軟件測試和外包程序開發等流水線工作。這類低級的工作和還不錯的收入很快就會消磨掉這些精英的進取心和獨立開發能力。
這就導致中國的軟件行業人力資源的“金字塔”是倒置的。
頂尖的精英人才在外國大公司裏從事應該由大量的低端人才從事的流水線作業,而設計工作交給了那些沒有能力做好設計的“技術工人”。為了完成開發工作,軟件公司往往用大量的“碼農”採用人海戰術。
這就是國內軟件產業充斥缺乏開發能力,試圖依靠數量龐大的非熟練工人取代工程師和技術人員的“山寨”軟件公司的原因。
那麼這就引出我們必須要問的下一個問題。
我們知道,一個正常的市場上,這種無法提供合格產品的公司,或者開發成本十倍於正常水平的畸形公司根本就不應該能夠生存。但在國內市場上他們繼續生存着,儘管並不滋潤。
原因很簡單,中國的軟件市場,不正常。
眾所周為了國家安全的原因,我國對國外的很多軟件封閉了網絡應用。於是,那些競爭力強大的國外“大鱷”無法進軍國內。一些壟斷大公司在國外早已因為21世紀初開始興起的免費開源軟件的風潮退出了商用軟件市場,但它們卻可以在國內培養一批“徒子徒孫”,他們只會使用這些壟斷公司的的軟件框架,壟斷公司因此可以在國內大量吸金。正如我們前面第一個例子中提到的,在世界範圍內已經不做軟件的IBM公司,依然能在中國賣出他們90年代的老軟件。順便,由於老軟件的執行效率低,他們又可以賣出高價值的服務器。再加上相關的授權,許可證,最終導致全系統成本加在一起要比國外的類似功能的商用軟件高出十幾倍甚至幾十倍。
言而總之,外國壟斷公司,利用中國的封閉市場環境,通過資助中國的教育機構,讓中國的普通開發者只是一羣效率低下,只會使用這些壟斷公司提供的模塊化開發工具的“碼農”;把高端人才用高薪誘騙到自己旗下,讓他們從事扼殺創造力的簡單工作。中國的各路軟件公司,猶如民國初年被各路帝國主義所控制的軍閥們一樣在中國這塊戰場上混戰不已。而真正撈到大錢的,是這些外國壟斷公司。所有中國人在這場陰謀中,都是輸家。
在這種條件下,我們就可以理解為何12306這類的網站會屢屢出現了,因為國內的軟件開發市場,基本上只有這類公司可以選擇。
國內的銀行業早年設立網絡銀行的時候多用微軟的開發語言,當時中國的軟件環境還是盜版為主,所以看起來似乎這個語言沒有成本。並且有“微軟崇拜症”的中國軟件公司最為熟悉。但是這為將來有一天微軟的“收網”留下了隱患。事實上微軟目前還忙着在中國進行個人電腦裝機市場的正版化環境營造。誰也不知道他們什麼時候會開始轉向政府金融行業。銀行並非不知道這個問題。而且,這個古老的框架的安全性方面也是有隱患的。由於銀行業的特殊性,他們不能停機,目前只能捏着鼻子繼續。
國內目前已經有少部分網站開始努力擺脱大公司的束縛,比如著名的電商京東網。他們在去年遭遇“購買死循環”錯誤事件之前用的也是微軟的開發語言,然而發生錯誤後,在京東自己無法解決的情況下,為了保住京東,微軟先後派出四批工程師,依然無法完全解決錯誤。最後京東終於決定全面轉向開源軟件。但沒有完全走出困局,因為它還在上面提到的這種模式中掙扎,不過是從虎口到狼窟而已。也就是説模式不轉變,不能解決問題,即便京東僱傭了數以千計的開發人員也無法破局。
而一開始就採用國際開發標準的淘寶體系,不但從沒有遇到國這方面的困難,還能向軟件界反過來免費提供他們自己開發的開源軟件框架。就更不要説國際電商龍頭的亞馬遜因為太過重視技術開發,以至於應對併發等問題能力過於優秀,反而富餘大量服務器資源,反而又成就了其成為全球最大的雲服務提供商的例子了。這是路線正確的結果。
惡劣的是,中國的市場由於封閉而又“富營養化”,就好像發生赤潮的海區,無數的低級生物的繁殖反而導致魚類因為水中缺氧而全部被悶死。
漂亮整潔的辦公樓和穿戴整齊的員工不能代表軟件公司的技術先進,在光鮮的外表下,國內的軟件公司大多是吱嘎作響到處漏油的中古手工工場。而國外的大公司還在拿他們過時的技術推銷,尤其是推銷到教育體系中。產生了惡性循環。國外公司希望國內處於封閉落後,消耗大型硬件資源的現狀中。
在這種狀況下,中國軟件業要終結目前這種惡性循環的怪圈,有兩種方向。
一是產業繼續這樣下去,但這種落後的技術狀態遲早總要有玩不下去的時候的。等比12306更加惡劣的情況出現,就是開發成本達到連國內財大氣粗如民航,鐵路,石油,電商公司都承受不了,同時用户根本無法正常使用的情況遲早要出現。那時,中國的軟件業將迎來一次全面的崩潰,隨之而來的將是全面洗牌。這時候,那些隱身幕後的國外壟斷公司將會走上前台,開始進行收割,向那些陶醉於“廉價”盜版軟件的中國企業和機構揮舞起收割的鐮刀。同時國內軟件業天下大亂。不是像國外21世紀初開源軟件崛起一樣出現一次革命性的進步,就是如同今日的國足一樣徹底沉淪,那時也許我們的政府也不得不向國外軟件廠商開放國門允許他們進入國內市場。那時,缺乏掌握新技術能力的國內軟件公司將會在這些無法抵抗的對手面前一敗塗地,國內“碼農”將會和90年代下崗工人一樣集體失業。
當然,還有一種可能的未來,就是國內出現一批真正獨立的軟件企業,依託一些有遠見,懂技術的軟件工程師,好像20世紀20,30年代從江西到延安的火種一樣,在中國大地上,最終燃起軟件行業燒盡今日不合理秩序的熊熊烈火。