2015年中级软考辅导:失衡的中国软件职业结构
发布时间:2010/3/16 16:54:16 来源:城市学习网 编辑:moon
IT168发布的《中国IT应用技术蓝皮书2006-2007》,其中关于软件人才的部分,以独特的视角,从职业结构方面进行了统计分析。笔者尝试按照传统软件工程理论的思想去解读这些数据,结果发现中国软件行业的职业结构是严重失衡的。
1. 独特的视角:职业结构
近日IT168发布了《中国IT应用技术蓝皮书2006-2007》(以下简称蓝皮书),全书凡二十多万字,计两百六十余页,论及人才、应用以及过程等软件开发行业的方方面面,又囊括了Java、.net、数据库、企业应用和中间件等主流软件开发技术,更兼附录了十几篇优秀论文,内容不可谓不详实。热心的编辑给我发来文档链接,赶紧下载,拜读之后,获益匪浅,感慨良多。不敢藏拙,试与读者分享之。
蓝皮书的第二章《中国IT技术开发人才现状分析》是关于软件人才的,其中第3节《职业结构》中,将接受调查的开发人员按职责进行了分类,并给出了各个职业类型所占的比例。鉴于统计数据来自近万份样本,而且接受调查的都是真正的软件从业人员,因此,可信度颇高。说实话,笔者在IT行业滥竽充数十多年,虽然时时关注中国软件行业的发展,却未尝留意过开发人员的职业分类,蓝皮书的这一章另辟蹊径,不落俗套,读来颇有新意,给了关心中国软件行业的人们,一个不同于官样文章的视角。
中国软件行业风风雨雨二十年,笔者有幸经历了这二十年中的大部分时光,目睹了软件行业的几番起落兴衰,其中酸甜苦辣,不能尽言。那些人,那些事,有如过眼云烟,业已随风飘去,唯有存诸于中国软件行业的种种弊端,始终耿耿于心,无法释怀。从后面的分析可以看出,蓝皮书给出的这个独特视角,将中国软件行业的某些弊端暴露无遗。
开发人员职责的划分,随着软件应用范围的扩大,越来越呈现多样化,体现了分工朝着精细化方向发展的趋势。例如,网页设计人员,在传统的软件工程理论中,并不存在这样一个角色,不过,由于互联网的普及和互联网应用的大量涌现,网页设计人员已经成为软件项目中不可或缺的角色。
角色的增加,给开发人员职业结构的分类带来了一定的困难,不同的软件工程理论,其分类标准也不尽相同。虽然现在是软件工程理论百花齐放的年代,不过,上个世纪60年代由IBM公司倡导的传统软件工程理论,依然根深蒂固,不管软件开发的生命周期如何突发变异,经典的瀑布模型还是不可动摇的基础。因此,我们不妨按照传统的软件开发过程理论,将开发人员的职责范围划分为四种,即项目经理、系统分析员、高级程序员和程序员。结合技术蓝皮书的统计数据,按照上述职责分类方法,可以对开发人员职业结构的统计数据进行归类合并。
2. 项目经理和系统分析员
先从项目经理开始。也许项目经理这个角色,是软件工程理论中争议最少的,关于项目经理的职责,各种理论惊人地一致,那就是想方设法在规定的工期和成本预算内,以可接受的质量完成项目的任务,具体到软件项目,那就是实现软件的功能。在项目管理理论中,项目经理一方面有着极大的权力,可以决定项目开发人员的升降去留。
另一方面,项目经理又是各种矛盾的焦点,被称为项目的“受气包”,老板的压力、客户的刁难、开发人员的抵触以及来自同级的掣肘,项目经理都必须无条件地承担、接受、适应和化解,在错综复杂的项目环境中,心惊胆颤,如履薄冰,不断寻找最佳的平衡点,谁也不敢得罪,和公公婆婆眼皮子底下逆来顺受的小媳妇,很有一比。
项目经理这个职业,在调查中所占比例为11.7%。
接着是系统分析员。系统分析员是客户和程序员之间的一座桥梁,起着沟通双方的作用。系统分析员必须具有两方面的知识,一是业务方面的,二是计算机方面的。客户不懂计算机,不知道如何用计算机术语表达自己的业务需求;程序员不懂业务,不知道代码和业务需求之间有什么联系;只有系统分析员,既明白客户的业务需求,也理解程序员的计算机术语,因此,他通过需求调研获取用户需求,然后编写需求规格说明书,告诉程序员做什么。
IT168发布的《中国IT应用技术蓝皮书2006-2007》,其中关于软件人才的部分,以独特的视角,从职业结构方面进行了统计分析。笔者尝试按照传统软件工程理论的思想去解读这些数据,结果发现中国软件行业的职业结构是严重失衡的。
1. 独特的视角:职业结构
近日IT168发布了《中国IT应用技术蓝皮书2006-2007》(以下简称蓝皮书),全书凡二十多万字,计两百六十余页,论及人才、应用以及过程等软件开发行业的方方面面,又囊括了Java、.net、数据库、企业应用和中间件等主流软件开发技术,更兼附录了十几篇优秀论文,内容不可谓不详实。热心的编辑给我发来文档链接,赶紧下载,拜读之后,获益匪浅,感慨良多。不敢藏拙,试与读者分享之。
蓝皮书的第二章《中国IT技术开发人才现状分析》是关于软件人才的,其中第3节《职业结构》中,将接受调查的开发人员按职责进行了分类,并给出了各个职业类型所占的比例。鉴于统计数据来自近万份样本,而且接受调查的都是真正的软件从业人员,因此,可信度颇高。说实话,笔者在IT行业滥竽充数十多年,虽然时时关注中国软件行业的发展,却未尝留意过开发人员的职业分类,蓝皮书的这一章另辟蹊径,不落俗套,读来颇有新意,给了关心中国软件行业的人们,一个不同于官样文章的视角。
中国软件行业风风雨雨二十年,笔者有幸经历了这二十年中的大部分时光,目睹了软件行业的几番起落兴衰,其中酸甜苦辣,不能尽言。那些人,那些事,有如过眼云烟,业已随风飘去,唯有存诸于中国软件行业的种种弊端,始终耿耿于心,无法释怀。从后面的分析可以看出,蓝皮书给出的这个独特视角,将中国软件行业的某些弊端暴露无遗。
开发人员职责的划分,随着软件应用范围的扩大,越来越呈现多样化,体现了分工朝着精细化方向发展的趋势。例如,网页设计人员,在传统的软件工程理论中,并不存在这样一个角色,不过,由于互联网的普及和互联网应用的大量涌现,网页设计人员已经成为软件项目中不可或缺的角色。
角色的增加,给开发人员职业结构的分类带来了一定的困难,不同的软件工程理论,其分类标准也不尽相同。虽然现在是软件工程理论百花齐放的年代,不过,上个世纪60年代由IBM公司倡导的传统软件工程理论,依然根深蒂固,不管软件开发的生命周期如何突发变异,经典的瀑布模型还是不可动摇的基础。因此,我们不妨按照传统的软件开发过程理论,将开发人员的职责范围划分为四种,即项目经理、系统分析员、高级程序员和程序员。结合技术蓝皮书的统计数据,按照上述职责分类方法,可以对开发人员职业结构的统计数据进行归类合并。
2. 项目经理和系统分析员
先从项目经理开始。也许项目经理这个角色,是软件工程理论中争议最少的,关于项目经理的职责,各种理论惊人地一致,那就是想方设法在规定的工期和成本预算内,以可接受的质量完成项目的任务,具体到软件项目,那就是实现软件的功能。在项目管理理论中,项目经理一方面有着极大的权力,可以决定项目开发人员的升降去留。
另一方面,项目经理又是各种矛盾的焦点,被称为项目的“受气包”,老板的压力、客户的刁难、开发人员的抵触以及来自同级的掣肘,项目经理都必须无条件地承担、接受、适应和化解,在错综复杂的项目环境中,心惊胆颤,如履薄冰,不断寻找最佳的平衡点,谁也不敢得罪,和公公婆婆眼皮子底下逆来顺受的小媳妇,很有一比。
项目经理这个职业,在调查中所占比例为11.7%。
接着是系统分析员。系统分析员是客户和程序员之间的一座桥梁,起着沟通双方的作用。系统分析员必须具有两方面的知识,一是业务方面的,二是计算机方面的。客户不懂计算机,不知道如何用计算机术语表达自己的业务需求;程序员不懂业务,不知道代码和业务需求之间有什么联系;只有系统分析员,既明白客户的业务需求,也理解程序员的计算机术语,因此,他通过需求调研获取用户需求,然后编写需求规格说明书,告诉程序员做什么.
数据有了,它能告诉我们什么呢?这是一个以数据说话的年代,口若悬河的辩解也好,信誓旦旦的保证也好,都不如寥寥几个数字来得有说服力。当然,中国人讲究一分为二,凡事不肯轻易结论,同一件事物,不同的人有不同的阐释,有时候甚至结论大相径庭,也并不希奇。曾有一笑话,说某阔少行善积德,每日施舍乞丐两文钱,突一日乞丐只收到一文钱,遂问其故,阔少解释说因娶妻生子,开销加大,乃减去一文,乞丐闻言怒道:“你怎么能拿我的钱去娶妻生子!”,可见,即便是一文钱这么小的事情,尚且仁者见仁,智者见智,何况关乎国计民生的统计数据呢。因此,以下分析,仅是笔者个人的一家之言,相信聪明的读者自有独到的见解。
细心的读者一定发现,表一中的统计数据,并没有包括蓝皮书中的所有职业。比如“CIT/CTO”、“配置管理人员”、“DBA数据库管理员”、“网络管理员”和“技术支持工程师”,就未纳入计算。这里需要说明一下,笔者在本文中的分析,是以项目为单位的,而未纳入计算的这些职业,都是跨项目的,理论上并不完全从属某个项目组,因此,我们将其排除在外。
按照传统软件工程理论,一个项目组由项目经理、系统分析员、高级程序员和程序员组成。从这四种角色的职责不难理解,他们在项目组中的数量是呈金字塔形状的,其比例大致从1:2:4:8到1:5:25:125。这个比例是这样得来的,在传统软件工程理论中,金字塔的上一级对下一级负有管理责任,而通常的管理理论认为,在工业社会,个人能直接管理的人数,在7到13人之间,而软件是智力密集型产业,因此,直接管理人数在2到5之间比较合理。
如果按照这样的比例,对照表一中的数据,我们不难发现,在平均意义上,中国的软件项目组的职业结构是严重失衡的。具体表现是,项目经理数量太多,而程序员数量太少,本应呈现金字塔形状,实际上却成了几乎一个直桶。是什么原因导致职业结构的严重失衡?这个问题,值得我们深思。