失衡的中国软件职业结构

作者:IT168 麻地河

IT168发布的《中国IT应用技术蓝皮书2006-2007》,其中关于软件人才的部分,以独特的视角,从职业结构方面进行了统计分析。笔者尝试按照传统软件工程理论的思想去解读这些数据,结果发现中国软件行业的职业结构是严重失衡的。 

    1. 独特的视角:职业结构
    近日IT168发布了《中国IT应用技术蓝皮书2006-2007》(以下简称蓝皮书),全书凡二十多万字,计两百六十余页,论及人才、应用以及过程等软件开发行业的方方面面,又囊括了Java、.net、数据库、企业应用和中间件等主流软件开发技术,更兼附录了十几篇优秀论文,内容不可谓不详实。热心的编辑给我发来文档链接,赶紧下载,拜读之后,获益匪浅,感慨良多。不敢藏拙,试与读者分享之。

    蓝皮书的第二章《中国IT技术开发人才现状分析》是关于软件人才的,其中第3节《职业结构》中,将接受调查的开发人员按职责进行了分类,并给出了各个职业类型所占的比例。鉴于统计数据来自近万份样本,而且接受调查的都是真正的软件从业人员,因此,可信度颇高。说实话,笔者在IT行业滥竽充数十多年,虽然时时关注中国软件行业的发展,却未尝留意过开发人员的职业分类,蓝皮书的这一章另辟蹊径,不落俗套,读来颇有新意,给了关心中国软件行业的人们,一个不同于官样文章的视角。 

    中国软件行业风风雨雨二十年,笔者有幸经历了这二十年中的大部分时光,目睹了软件行业的几番起落兴衰,其中酸甜苦辣,不能尽言。那些人,那些事,有如过眼云烟,业已随风飘去,唯有存诸于中国软件行业的种种弊端,始终耿耿于心,无法释怀。从后面的分析可以看出,蓝皮书给出的这个独特视角,将中国软件行业的某些弊端暴露无遗。 

    开发人员职责的划分,随着软件应用范围的扩大,越来越呈现多样化,体现了分工朝着精细化方向发展的趋势。例如,网页设计人员,在传统的软件工程理论中,并不存在这样一个角色,不过,由于互联网的普及和互联网应用的大量涌现,网页设计人员已经成为软件项目中不可或缺的角色。 

    角色的增加,给开发人员职业结构的分类带来了一定的困难,不同的软件工程理论,其分类标准也不尽相同。虽然现在是软件工程理论百花齐放的年代,不过,上个世纪60年代由IBM公司倡导的传统软件工程理论,依然根深蒂固,不管软件开发的生命周期如何突发变异,经典的瀑布模型还是不可动摇的基础。因此,我们不妨按照传统的软件开发过程理论,将开发人员的职责范围划分为四种,即项目经理、系统分析员、高级程序员和程序员。结合技术蓝皮书的统计数据,按照上述职责分类方法,可以对开发人员职业结构的统计数据进行归类合并。

    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之间比较合理。

    如果按照这样的比例,对照表一中的数据,我们不难发现,在平均意义上,中国的软件项目组的职业结构是严重失衡的。具体表现是,项目经理数量太多,而程序员数量太少,本应呈现金字塔形状,实际上却成了几乎一个直桶。是什么原因导致职业结构的严重失衡?这个问题,值得我们深思。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值