中国软件发展到现在也已经几十年了,出现过许许多多软件英雄,他们曾经指引着我们走出软件的蒙昧阶段。但几十年后的今天,我们不得不面对这样的事实:中国软件依旧没有摆脱个人英雄的时代,仍然处在一个“小、散、软”的令人痛心的“作坊式”开发状态之下。
据统计,目前我国拥有的软件技术人员大约16万人,分布在大大小小约6000家的各类软件公司里,其中,50人以下的企业占55左右,50人至200人的企业占42左右,1000人以上的仅有北大方正和中软总公司、东大软件集团、用友软件集团等少数几家。在全世界的软件产业都已经实现或者正在实现规模化工业化的今天,我们显然是落后的,缺乏竞争力的。那么,是什么让我们无法继续前进,在实现规模化经营的道路上迟迟不前呢?难道中国人的软件开发能力比别的民族差么?事实证明,刚好相反:在美国硅谷从事软件开发的高级人才中华裔占了将近1/3。软件人才的匮乏才是导致这种局面的直接原因。
中国到底缺少什么样的软件人才?这个问题被摆在了中国软件行业发展的桌面上。中国没有软件开发高手么?大案是否定的。看看现在众多优秀的国产共享软件,就可以知道我们实际上拥有着数量庞大的软件开发能手。这批人的特点很鲜明:编码能力很强,但代码却往往缺乏失于规范;单兵作战能力很强,但却难以和他人合作。这类人所编制的软件也往往同个人的“捆绑”较为紧密,以至于国内的软件企业中往往出现某个软件受制于某个人的尴尬局面,当这个关键人物离开整个工程,则无法继续开发下去。这种在现代软件工程中不允许的事情在我国的软件企业中非常普遍。当然,优秀的高级开发人才是需要的,但作为对于软件企业发展的关键要素,我们更加需要能够中规中矩进行基础编程的程序员,每个程序员都能按照规定加工整个工程中的某个标准件,如同传统产业的流水线作业。他们可以不比关心整个工程最终整合后是个什么样的东西,但却能够根据要求编制好自己的那部分。这些就是所谓的“蓝领程序员”。
“蓝领”一般被认为是从事简单劳动、出劳动力的一类工人。好像软件开发同这个概念根本占不上边,因为在普通人的心中软件开发是一件需要高科技知识才可以做的事。但事实上,软件在进行了详细设计之后,所剩下则仅是大量的编码写程序的工作。这部分工作一般都较为简单、重复性高,但工作量却非常大,就好像我们传统行业中的加工零件一样。技术工人在经过不长时间的培训之后都能够胜任,他们是实现整个软件项目主要力量。然而,也就是这样关键性的角色在国内软件企业中却不多见。北京现有软件人才6万人。由于没有软件技术工人,大量简单程序的编写工作都由本科毕业生完成,造成了人才资源的极大浪费,使本来就不足的软件人才更加紧缺。而反观这几年软件业迅速崛起的老邻居印度,却借助着庞大的蓝领程序员队伍和先进的软件工程化管理,取得了世界软件业老二的地位。印度的软件公司动不动就是上千人的规模,其中超过1000人的软件公司有上百家,有18家超过5000人。例如著名的InfoSys公司,在2000年初已达45000人,现在更是达到了9500人的超大规模。在这么多职员中,除了少数进行高级开发和项目分析的人员外,其余的都是从事基础编程的程序员。企业依靠他们将研究成果最终转化为产品,取得经济效益。
当然,蓝领程序员的出现也是前提的,那就是软件“工程化”、开发“流程化”。有这么一个事例很说明问题。有一家法国软件公司承包国内某重要软件项目,为期3个月。前两个月,这个公司委派几位职员与国内发包方反复开会商谈,其间承包方一句程序也没有写。讨论结束后他们回去了。仅仅一个月之后,承包方就把做好的软件包送回来了。法国人的解释是,前期的反复会谈是进行需求分析,设计软件的架构和定义功能模块,当这部分工作完成后,后期的制作,就由公司的众多基础程序员来做,而且很快就能够做出来。
软件“工厂化”、开发“流程化”的最终目标就是希望借助于到位规范的开发流程使得整个开发过程顺利开展以及软件的质量得到保证。流程化的管理使软件质量不再受到某个程序员习惯或者其他因素的左右,一切需要按照企业制定的规范的进行操作,程序员的个性在这里并不被提倡。与此同时,与整个企业的程序风格统一才是被大家认可的。我们再拿印度来举例。在印度常常进行基础代码编写的都是高中生,所用的工具也是我们国内某些程序员所不屑的VB、PB,但他们的代码可用性却很强。在印度,软件的开发并不会因为某个部分编写的人员离开而中断,新的人员能够立即继续中断的代码输入,原因也很简单:他们的编写手法几乎相同。这些都让我们不得不惊叹印度软件业的标准化程度。因为标准化,所以流程化、工程化才成为可能。软件的“工厂化”需要“标准化”的支持,只有标准化才能避免对个别程序员的依赖,保证开发的稳定性。而如何做到标准化,则是我们的IT培训部门需要好好动动脑筋想想的事了。
和任何行业一样,软件业也需要不同层次的人才。我们需要拥有尖端技术的高级开发人员,也需要一定研发能力的中间人才、更需要能熟练的基础代码编写人员。健康的人员结构应该如同一个金字塔,然而中国的现状则好像是一个锥形――两头小,中间大。整个软件业人员的结构出于一种尴尬的局面,在仅仅依靠千前两类人无法推动行业规模化的事实压力下,企业对蓝领程序员的呼声也越来越大。而此时的相关培训则显出了它无与伦比的重要地位。
那么,我们应该培养从什么样基础上蓝领程序员呢?和国外一样:初中生、高中生么?答案是否定的,并不是由于中国人比外国人要来的笨,原因在于我们并不是以英语为母语的国家。虽然基础编程的方法以初中生或者高中生的能力来说可以接受,但语言能力却是限制他们很好掌握的一大阻碍,毕竟大部分编程环境是英语的,而编程语言对英语的依赖也相当大。所以,作为适合中国国情的培训方式,笔者认为应该从大专这个层次抓起,当然咯,在现今英文教学不断比重加大、学生水平不断提高的情况,也可以适当考虑对其他知识层次的人员进行培训。在国内,这类层次的人员相对较多,相信对培养蓝领程序员会有着很好补给。
另外,我们还需要注意培养蓝领程序员的速度问题。面对国内沸沸扬扬的软件蓝领培训热潮,东软集团行政总监、人力资源部部长王经锡提出了自己的冷静思考,在中国的软件业形成产业规模之前,软件蓝领的培训步伐不宜过快,否则将形成供大于求的尴尬局面。中国软件业有自己的现状和发展模式,不能完全照搬国外的经验。过快或过慢都将不利于软件产业化进程,所以培训步伐一定要适度,与产业化保持同等的速率。
我们很高兴的看到,现在国内已经有了一批搞蓝领程序员培训的急先锋。例如,北大青鸟集团就与印度APTECH公司合作与去年1月成立北京阿博泰克北大青鸟公司,从事中国的IT教育产业,双方各占50股份。其中印度股东APTECH公司是印度最早从事IT职业教育的公司之一,在教育和支持服务领域第一个获得ISO9001国际质量认证,公司以先进的教育理念和教学方法在全球的40多个国家和地区发展了2100多家培训中心,是世界最大的计算机教育培训机构。他们还采用特许连锁经营模式在全国范围内推广ACCP软件工程师认证。据了解,目前已经在全国的北京、上海、武汉、哈尔滨等大中城市发展了100多家培训中心,对3000多名学员进行软件工程师课程培训。另外,重庆正大软件公司的总经理王万均也投资200万办了一所民办全日制高等院校――重庆正大软件专修学院。正大也因此成为继北大青岛与印度最大的软件培训机构APTECH合作后国内第二家引进"印度模式"的软件企业。类似的事例还有不少,相信在不久的将来就会有大批的蓝领程序员出现,带领我们走向软件产业规模化的春天。