失衡的中國軟體職業結構[精華]

來源:互聯網
上載者:User

IT168發布的《中國IT應用技術藍皮書2006-2007》,其中關於軟體人才的部分,以獨特的視角,從職業結構方面進行了統計分析。筆者嘗試按照傳統軟體工程理論的思想去解讀這些資料,結果發現中國軟體行業的職業結構是嚴重失衡的。

  1. 獨特的視角:職業結構

  近日IT168發布了《中國IT應用技術藍皮書2006-2007》(以下簡稱藍皮書),全書凡二十多萬字,計兩百六十餘頁,論及人才、應用以及過程等軟體開發行業的方方面面,又囊括了Java、.net、資料庫、公司專屬應用程式和中介軟體等主流軟體開發技術,更兼附錄了十幾篇優秀論文,內容不可謂不詳實。熱心的編輯給我發來文檔連結,趕緊下載,拜讀之後,獲益匪淺,感慨良多。不敢藏拙,試與讀者分享之。

  藍皮書的第二章《中國IT技術開發人才現狀分析》是關於軟體人才的,其中第3節《職業結構》中,將接受調查的開發人員按職責進行了分類,並給出了各個職業類型所佔的比例。鑒於統計資料來自近萬份樣本,而且接受調查的都是真正的軟體從業人員,因此,可信度頗高。說實話,筆者在IT行業濫竽充數十多年,雖然時時關注中國軟體行業的發展,卻未嘗留意過開發人員的職業分類,藍皮書的這一章另闢蹊徑,不落俗套,讀來頗有新意,給了關心中國軟體行業的人們,一個不同於官樣文章的視角。

  中國軟體行業風風雨雨二十年,筆者有幸經曆了這二十年中的大部分時光,目睹了軟體行業的幾番起落興衰,其中酸甜苦辣,不能盡言。那些人,那些事,有如過眼雲煙,業已隨風飄去,唯有存諸於中國軟體行業的種種弊端,始終耿耿於心,無法釋懷。從後面的分析可以看出,藍皮書給出的這個獨特視角,將中國軟體行業的某些弊端暴露無遺。

  開發人員職責的劃分,隨著軟體應用範圍的擴大,越來越呈現多樣化,體現了分工朝著精細化方向發展的趨勢。例如,網頁設計人員,在傳統的軟體工程理論中,並不存在這樣一個角色,不過,由於互連網的普及和互連網應用的大量湧現,網頁設計人員已經成為軟體項目中不可或缺的角色。

  角色的增加,給開發人員職業結構的分類帶來了一定的困難,不同的軟體工程理論,其分類標準也不盡相同。雖然現在是軟體工程理論百花齊放的年代,不過,上個世紀60年代由IBM公司倡導的傳統軟體工程理論,依然根深蒂固,不管軟體開發的生命週期如何突發變異,經典的瀑布模型還是不可動搖的基礎。因此,我們不妨按照傳統的軟體開發過程理論,將開發人員的職責範圍劃分為四種,即專案經理、系統分析員、進階程式員和程式員。結合技術藍皮書的統計資料,按照上述職責分類方法,可以對開發人員職業結構的統計資料進行歸類合并。

  2. 專案經理和系統分析員

  先從專案經理開始。也許專案經理這個角色,是軟體工程理論中爭議最少的,關於專案經理的職責,各種理論驚人地一致,那就是想方設法在規定的工期和成本預算內,以可接受的品質完成項目的任務,具體到軟體項目,那就是實現軟體的功能。在專案管理理論中,專案經理一方面有著極大的權力,可以決定項目開發人員的升降去留。

  另一方面,專案經理又是各種矛盾的焦點,被稱為項目的“受氣包”,老闆的壓力、客戶的刁難、開發人員的抵觸以及來自同級的掣肘,專案經理都必須無條件地承擔、接受、適應和化解,在錯綜複雜的項目環境中,心驚膽顫,如履薄冰,不斷尋找最佳的平衡點,誰也不敢得罪,和公公婆婆眼皮子底下逆來順受的小媳婦,很有一比。

  專案經理這個職業,在調查中所佔比例為11.7%。

  接著是系統分析員。系統分析員是客戶和程式員之間的一座橋樑,起著溝通雙方的作用。系統分析員必須具有兩方面的知識,一是業務方面的,二是電腦方面的。客戶不懂電腦,不知道如何用電腦術語表達自己的業務需求;程式員不懂業務,不知道代碼和業務需求之間有什麼聯絡;只有系統分析員,既明白客戶的業務需求,也理解程式員的電腦術語,因此,他通過需求調研擷取使用者需求,然後編寫需求規格說明書,告訴程式員做什麼。

很顯然,系統分析員的職責決定了他不能脫離業務,不懂業務,或者不能通過需求調研建立業務模型,哪怕軟體技術水平再高,也不能成為合格的系統分析員。藍皮書中,“商務分析師”和“諮詢師”顯然歸屬系統分析員之列,毫無疑問;“SA/SD(系統分析/設計師)”恐怕只有“SA(系統分析師)”屬於系統分析員,而“SD(設計師)”歸到進階程式員更合理,因此,我們只取一半的資料;“進階顧問”的情形類同,有些進階顧問是從事業務建模工作的,屬系統分析員,另一些進階顧問則是負責系統架構的,屬進階程式員,我們也只取一半的資料。這樣,經過簡單的計算,系統分析員所佔的比例是7.8%。

  3. 進階程式員和程式員

  第三類職業是進階程式員。進階程式員和程式員的區別,在“進階”二字。那麼,所謂“進階”,體現在什麼地方?體現在軟體技術的廣度和深度上。軟體技術發展到今天,任何一種功能需求,都不太可能只有一種技術可以實現,必定有著為數不少的技術可供選擇,幾乎任何一項技術,都聲稱可以如何如何,而實際上也確實如此,只不過各有側重而已。比如一個網站,.net可以,java可以,php可以,ruby又何嘗不行呢?甚至同一項技術,也有多種方案可以實現,比如用java建網站,jsp、jsf、struts、spring等等,候選的方案令人眼花繚亂。如果你面對這麼多選擇時手足無措、迷失方向,你就是程式員;如果你對此了如指掌,方案堆於前而色不變,你才稱得上進階程式員。

  進階程式員的另一個稱謂是“軟體架構師”,或者“系統設計師”,當然,也有以“進階顧問”稱呼的,因此,我們把技術藍皮書中“進階程式員”的全部、“軟體架構師”的全部、“SA/SD(系統分析/設計師)”的一半和“進階顧問”的一半,通通歸類到傳統理論的“進階程式員”角色中,則“進階程式員”所佔比例為15.1%。

  最後我們看看程式員。程式員的角色是所有角色中變化最大的,因為他們工作在第一線,和具體技術的接觸最為直接,而軟體技術在過去的十年中,發生了天翻地覆的變化,新技術層出不窮,因此也派生出了很多新的程式員職業。例如“文檔工程師”,在傳統的軟體工程理論中,每個角色負責編寫自己的文檔,並沒有獨立的“文檔工程師”,只是隨著人類面對面交往功能的退化,“秉燭夜談”固然不複存在,“促膝談心”也比過年還希罕,一個個躲在電腦螢幕後面的“人類”,越來越依賴所謂的文檔來交流思想,因此,文檔的工作量也隨之加大,以致於需要額外的“文檔工程師”。當然,文檔的作用遠不止此,這是題外話了。

  技術藍皮書中,“程式員”、“文檔工程師”和“測試工程師”可歸類於傳統軟體工程理論的程式員角色,這樣,程式員所佔比例為17.3%。

  4. 資料告訴我們:職業結構失衡

  現在,我們已經從藍皮書的統計資料中,分拆合并出了傳統軟體工程理論中四類角色所佔比例,為清楚起見,讓我們來總結一下,結果如表一所示。

  角色名稱  所佔比例 
  專案經理  11.7% 
  系統分析員  7.8% 
  進階程式員  15.1% 
  程式員  17.3% 

  表一:藍皮書中各職業歸屬到傳統軟體工程理論四大角色後所佔比例
資料有了,它能告訴我們什麼呢?這是一個以資料說話的年代,口若懸河的辯解也好,信誓旦旦的保證也好,都不如寥寥幾個數字來得有說服力。當然,中國人講究一分為二,凡事不肯輕易結論,同一件事物,不同的人有不同的闡釋,有時候甚至結論大相徑庭,也並不希奇。曾有一笑話,說某闊少行善積德,每日施捨乞丐兩文錢,突一日乞丐只收到一文錢,遂問其故,闊少解釋說因娶妻生子,開銷加大,乃減去一文,乞丐聞言怒道:“你怎麼能拿我的錢去娶妻生子!”,可見,即便是一文錢這麼小的事情,尚且仁者見仁,智者見智,何況關乎國計民生的統計資料呢。因此,以下分析,僅是筆者個人的一家之言,相信聰明的讀者自有獨到的見解。

  細心的讀者一定發現,表一中的統計資料,並沒有包括藍皮書中的所有職業。比如“CIT/CTO”、“組態管理人員”、“DBA資料庫管理員”、“網路系統管理員”和“支援人員工程師”,就未納入計算。這裡需要說明一下,筆者在本文中的分析,是以項目為單位的,而未納入計算的這些職業,都是跨項目的,理論上並不完全從屬某個項目組,因此,我們將其排除在外。

  按照傳統軟體工程理論,一個項目組由專案經理、系統分析員、進階程式員和程式員組成。從這四種角色的職責不難理解,他們在項目組中的數量是呈金字塔形狀的,其比例大致從1:2:4:8到1:5:25:125。這個比例是這樣得來的,在傳統軟體工程理論中,金字塔的上一級對下一級負有管理責任,而通常的管理理論認為,在工業社會,個人能直接管理的人數,在7到13人之間,而軟體是智力密集型產業,因此,直接管理人數在2到5之間比較合理。

  如果按照這樣的比例,對照表一中的資料,我們不難發現,在平均意義上,中國的軟體項目組的職業結構是嚴重失衡的。具體表現是,專案經理數量太多,而程式員數量太少,本應呈現金字塔形狀,實際上卻成了幾乎一個直桶。是什麼原因導致職業結構的嚴重失衡?這個問題,值得我們深思。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.