中國軟件發(fā)展到現(xiàn)在也已經幾十年了,出現(xiàn)過許許多多軟件英雄,他們曾經指引著我們走出軟件的蒙昧階段。但幾十年后的今天,我們不得不面對這樣的事實:中國軟件依舊沒有擺脫個人英雄的時代,仍然處在一個“小、散、軟”的令人痛心的“作坊式”開發(fā)狀態(tài)之下。
據(jù)統(tǒng)計,目前我國擁有的軟件技術人員大約16萬人,分布在大大小小約6000家的各類軟件公司里,其中,50人以下的企業(yè)占55左右,50人至200人的企業(yè)占42左右,1000人以上的僅有北大方正和中軟總公司、東大軟件集團、用友軟件集團等少數(shù)幾家。在全世界的軟件產業(yè)都已經實現(xiàn)或者正在實現(xiàn)規(guī)模化工業(yè)化的今天,我們顯然是落后的,缺乏競爭力的。那么,是什么讓我們無法繼續(xù)前進,在實現(xiàn)規(guī)模化經營的道路上遲遲不前呢?難道中國人的軟件開發(fā)能力比別的民族差么?事實證明,剛好相反:在美國硅谷從事軟件開發(fā)的高級人才中華裔占了將近1/3。軟件人才的匱乏才是導致這種局面的直接原因。
中國到底缺少什么樣的軟件人才?這個問題被擺在了中國軟件行業(yè)發(fā)展的桌面上。中國沒有軟件開發(fā)高手么?大案是否定的??纯船F(xiàn)在眾多優(yōu)秀的國產共享軟件,就可以知道我們實際上擁有著數(shù)量龐大的軟件開發(fā)能手。這批人的特點很鮮明:編碼能力很強,但代碼卻往往缺乏失于規(guī)范;單兵作戰(zhàn)能力很強,但卻難以和他人合作。這類人所編制的軟件也往往同個人的“捆綁”較為緊密,以至于國內的軟件企業(yè)中往往出現(xiàn)某個軟件受制于某個人的尷尬局面,當這個關鍵人物離開整個工程,則無法繼續(xù)開發(fā)下去。這種在現(xiàn)代軟件工程中不允許的事情在我國的軟件企業(yè)中非常普遍。當然,優(yōu)秀的高級開發(fā)人才是需要的,但作為對于軟件企業(yè)發(fā)展的關鍵要素,我們更加需要能夠中規(guī)中矩進行基礎編程的程序員,每個程序員都能按照規(guī)定加工整個工程中的某個標準件,如同傳統(tǒng)產業(yè)的流水線作業(yè)。他們可以不比關心整個工程最終整合后是個什么樣的東西,但卻能夠根據(jù)要求編制好自己的那部分。這些就是所謂的“藍領程序員”。
“藍領”一般被認為是從事簡單勞動、出勞動力的一類工人。好像軟件開發(fā)同這個概念根本占不上邊,因為在普通人的心中軟件開發(fā)是一件需要高科技知識才可以做的事。但事實上,軟件在進行了詳細設計之后,所剩下則僅是大量的編碼寫程序的工作。這部分工作一般都較為簡單、重復性高,但工作量卻非常大,就好像我們傳統(tǒng)行業(yè)中的加工零件一樣。技術工人在經過不長時間的培訓之后都能夠勝任,他們是實現(xiàn)整個軟件項目主要力量。然而,也就是這樣關鍵性的角色在國內軟件企業(yè)中卻不多見。北京現(xiàn)有軟件人才6萬人。由于沒有軟件技術工人,大量簡單程序的編寫工作都由本科畢業(yè)生完成,造成了人才資源的極大浪費,使本來就不足的軟件人才更加緊缺。而反觀這幾年軟件業(yè)迅速崛起的老鄰居印度,卻借助著龐大的藍領程序員隊伍和先進的軟件工程化管理,取得了世界軟件業(yè)老二的地位。印度的軟件公司動不動就是上千人的規(guī)模,其中超過1000人的軟件公司有上百家,有18家超過5000人。例如著名的InfoSys公司,在2000年初已達45000人,現(xiàn)在更是達到了9500人的超大規(guī)模。在這么多職員中,除了少數(shù)進行高級開發(fā)和項目分析的人員外,其余的都是從事基礎編程的程序員。企業(yè)依靠他們將研究成果最終轉化為產品,取得經濟效益。
當然,藍領程序員的出現(xiàn)也是前提的,那就是軟件“工程化”、開發(fā)“流程化”。有這么一個事例很說明問題。有一家法國軟件公司承包國內某重要軟件項目,為期3個月。前兩個月,這個公司委派幾位職員與國內發(fā)包方反復開會商談,其間承包方一句程序也沒有寫。討論結束后他們回去了。僅僅一個月之后,承包方就把做好的軟件包送回來了。法國人的解釋是,前期的反復會談是進行需求分析,設計軟件的架構和定義功能模塊,當這部分工作完成后,后期的制作,就由公司的眾多基礎程序員來做,而且很快就能夠做出來。
軟件“工廠化”、開發(fā)“流程化”的最終目標就是希望借助于到位規(guī)范的開發(fā)流程使得整個開發(fā)過程順利開展以及軟件的質量得到保證。流程化的管理使軟件質量不再受到某個程序員習慣或者其他因素的左右,一切需要按照企業(yè)制定的規(guī)范的進行操作,程序員的個性在這里并不被提倡。與此同時,與整個企業(yè)的程序風格統(tǒng)一才是被大家認可的。我們再拿印度來舉例。在印度常常進行基礎代碼編寫的都是高中生,所用的工具也是我們國內某些程序員所不屑的VB、PB,但他們的代碼可用性卻很強。在印度,軟件的開發(fā)并不會因為某個部分編寫的人員離開而中斷,新的人員能夠立即繼續(xù)中斷的代碼輸入,原因也很簡單:他們的編寫手法幾乎相同。這些都讓我們不得不驚嘆印度軟件業(yè)的標準化程度。因為標準化,所以流程化、工程化才成為可能。軟件的“工廠化”需要“標準化”的支持,只有標準化才能避免對個別程序員的依賴,保證開發(fā)的穩(wěn)定性。而如何做到標準化,則是我們的IT培訓部門需要好好動動腦筋想想的事了。
和任何行業(yè)一樣,軟件業(yè)也需要不同層次的人才。我們需要擁有尖端技術的高級開發(fā)人員,也需要一定研發(fā)能力的中間人才、更需要能熟練的基礎代碼編寫人員。健康的人員結構應該如同一個金字塔,然而中國的現(xiàn)狀則好像是一個錐形――兩頭小,中間大。整個軟件業(yè)人員的結構出于一種尷尬的局面,在僅僅依靠千前兩類人無法推動行業(yè)規(guī)?;氖聦崏毫ο拢髽I(yè)對藍領程序員的呼聲也越來越大。而此時的相關培訓則顯出了它無與倫比的重要地位。
那么,我們應該培養(yǎng)從什么樣基礎上藍領程序員呢?和國外一樣:初中生、高中生么?答案是否定的,并不是由于中國人比外國人要來的笨,原因在于我們并不是以英語為母語的國家。雖然基礎編程的方法以初中生或者高中生的能力來說可以接受,但語言能力卻是限制他們很好掌握的一大阻礙,畢竟大部分編程環(huán)境是英語的,而編程語言對英語的依賴也相當大。所以,作為適合中國國情的培訓方式,筆者認為應該從大專這個層次抓起,當然咯,在現(xiàn)今英文教學不斷比重加大、學生水平不斷提高的情況,也可以適當考慮對其他知識層次的人員進行培訓。在國內,這類層次的人員相對較多,相信對培養(yǎng)藍領程序員會有著很好補給。
另外,我們還需要注意培養(yǎng)藍領程序員的速度問題。面對國內沸沸揚揚的軟件藍領培訓熱潮,東軟集團行政總監(jiān)、人力資源部部長王經錫提出了自己的冷靜思考,在中國的軟件業(yè)形成產業(yè)規(guī)模之前,軟件藍領的培訓步伐不宜過快,否則將形成供大于求的尷尬局面。中國軟件業(yè)有自己的現(xiàn)狀和發(fā)展模式,不能完全照搬國外的經驗。過快或過慢都將不利于軟件產業(yè)化進程,所以培訓步伐一定要適度,與產業(yè)化保持同等的速率。
我們很高興的看到,現(xiàn)在國內已經有了一批搞藍領程序員培訓的急先鋒。例如,北大青鳥集團就與印度APTECH公司合作與去年1月成立北京阿博泰克北大青鳥公司,從事中國的IT教育產業(yè),雙方各占50股份。其中印度股東APTECH公司是印度最早從事IT職業(yè)教育的公司之一,在教育和支持服務領域第一個獲得ISO9001國際質量認證,公司以先進的教育理念和教學方法在全球的40多個國家和地區(qū)發(fā)展了2100多家培訓中心,是世界最大的計算機教育培訓機構。他們還采用特許連鎖經營模式在全國范圍內推廣ACCP軟件工程師認證。據(jù)了解,目前已經在全國的北京、上海、武漢、哈爾濱等大中城市發(fā)展了100多家培訓中心,對3000多名學員進行軟件工程師課程培訓。另外,重慶正大軟件公司的總經理王萬均也投資200萬辦了一所民辦全日制高等院校――重慶正大軟件專修學院。正大也因此成為繼北大青島與印度最大的軟件培訓機構APTECH合作后國內第二家引進"印度模式"的軟件企業(yè)。類似的事例還有不少,相信在不久的將來就會有大批的藍領程序員出現(xiàn),帶領我們走向軟件產業(yè)規(guī)模化的春天。