作为软件行业一个无名小卒,我没有大程序员的智慧,也没有投资者的万贯家财,但我有一腔的热血、中国软件必胜的信心、还有一颗不愿意放弃努力的决心。我虽然至今仍徘徊在三流软件开发人员的阴影之中,但我始终在关注着中国软件业的发展与成长,这不是出于自己的个人目的,而是对自己人生选择的一种肯定,对自己人生承诺的一种负责。
好了,废话少说。
有关中国软件业的发展,本人曾经写过一些文章。但观点不同,谈论的内容也有些差异。这篇文章重在分析中印软件行业之间的差异,以及产生这种差异的原因,和针对这种现象的思考。
两国软件业的发展情况有所不同有诸多原因,但很关键的是两个方面,即外因与内因。
当九十年代软件行业作为刚刚起步的行业在中国产生的时候,一个来自美国的软件工程师带着一套“软件工程理论”来到中国。由于时间久远,我已经忘记了那个软件工程是的名字,但是有一点很重要。当时“软件工程”这个名词对当时的中国软件人来说是非常陌生的,甚至就是空白。这个工程师与当时的中国软件人进行了深入的探讨与交流,毫无疑问中国软件人以很敏锐的知觉感悟到了“软件工程”四个字的深意。并且很快达成了长期合作的计划与协议。
但是,谁也没有想到的是,这些计划与协议却因为中国软件人的人事变动而宣告流产。就这样,这个工程师带着他的理论离开了中国,而到了印度。从此,印度的软件业逐步健康的发展起来。
这其中的是非功过已经没有争论的必要了,因为没有意义,但结果是中国软件业却落后了很多年。在软件这样一个飞速发展的行业,落后两年意味着什么,落后五年意味着什么,各位应该比我清楚。我们所能做的就是脚踏实地的做好自己的工作。当然,那只是外因,在国内也有很多因素制约了中国软件业的发展。
首先,我觉得最重要的是人才的相对缺乏。
中国软件业经过几年的发展已经有所成就,但是人才的相对缺乏却一直是中国软件发展后劲不足的根本原因。中国每年都有一大批年轻的学子走出校门,他们无不怀有满腔热情和远大的抱负。但是,软件行业却因为其对人才的要求较高而使很多年轻人望而却步或者知难而退。相信计算家系毕业的朋友不会百分百都做软件,甚至能占到五成就已经不错了。这造成了数量上缺乏。同时,也有很多人在软件行业逐步沉积下来,并成为中国软件业的脊梁。但是,中国技术人员的有个不好品质是不愿意和别人共享,或者说单兵作战能力很强,但是团队协作能力较差。其实,这不能归咎于中国人的品质,而是中国现在的软件人大部分由于对软件工程认识不深,而且创业的经历也都是个人创业,所以不知道怎样去很好的和别人合作,就算是现在认识到了软件工程的重要性也没有什么丰富的项目经验来应用于实践。因此,中国的软件力量难以形成规模,难以形成合力。
其实就中国软件人的素质,我个人认为是很强的。可以不夸张的说,中国的程序员都可以进行数据库设计、系统设计、模块设计、代码编写、系统测试等软件开发各个步骤的工作。只是,设计的规范程度、代码编写效率和质量良莠不齐。但是对于单打独斗的开发方式而言,设计越完善、越规范,花费的时间越长,而软件的投入就越高,这无形中增加了软件的成本。相反,设计的规范程度越差反而开发速度越快,质量就越差。这使得很多程序员的发展成了一种由高级向低级发展怪现象,就像很多人说的那样,从技术型向熟练型转换,结果是大大挫伤了程序员的积极性,由此引发了程序员频繁跳槽等一系列不良后果。
其次,就是中国的市场需求情况不佳。
中国的软件市场大家有目共睹。大致分为几个部分,即:通用软件部分、专业软件部分、自主研发软件等。可能这种分类并不科学,但会很说明问题。说之前我先简单解释一下。
所谓通用软件部分,指的是面向大众与行业无关的软件,例如:文字处理、杀毒软件、多媒体播放软件等一大类。
专业软件是指,针对某一行业需求开发的软件,例如:面向医院的医疗应用系统,工矿企业的财务系统等。
自主研发软件是指一些特殊行业,例如:银行、电信或者一些有能力自主研发能力的行业使用的软件。
以上这几种软件的界限并不分明,但是却成为中国软件业发展的生存土壤。
其中通用软件由于盗版的泛滥、国外软件的倾销、还有国内软件缺乏竞争力而收效甚微。而市场上剩下的蛋糕就只有专业软件,但是这部分市场却由于很多原因举步为坚。由于中国企业的发展的复杂性造成了软件应用的难度很大。其中一个关键性问题是,企业对软件的需求不明确,和操作人员素质不高等非技术性因素过多。这导致了,软件研发周期过长,投入加大等不良后果。虽然,随着中国现代化进程的推进,企业对软件的需求日益明确并趋于专业,但随之而来的是另一个不愿意让人看到的结果。那就是越来越多的企业组建自己的开发团队,或者IT事业部门。虽然从企业出发可以更好地为企业服务,并且降低企业软件研发风险,但对软件业来说意味着力量的分散、市场的缩水。而自主研发软件由于其自身的封闭性,软件没有形成产品,虽然其中不乏高水平软件研发团队,但不可能代表中国软件总体水平,也不可能领导中国软件行业。
当然,我不得不提一提网络游戏软件,这是一类比较特殊的软件。虽然这种软件本身没有很高的价值,甚至是免费的,但是他却可以产生长期而且相对稳定的收入。这也是越来越多的软件公司转行网络游戏的原因,同时网络游戏和中国互联网的发展也成了一种相互促进的局面。还有一些互联网相关的软件,都成为中国软件业新的增长点。但这其中是不是有一些泡沫的成分呢?
还有,中国软件业,市场无序竞争现象严重。
在中国的大小城市大大小小的软件公司很多,但是软件研发水平较高的却不多。但是众多企业的软件研发却有八成由中小公司承担。很多小公司存在开发过程不规范的现象,但是对于几个人十几个人的小公司而言,不可能把需求工作、设计工作、编码工作、测试工作做得很好,而增加人力又意味着增加投入直接影响到软件成本,势必削弱软件的市场竞争力。所以一面是小公司以低质量换取低成本,另一方面是大公司高成本换来的较低的市场占有率。综合两方面就是竞争的无序性越加严重。不过,事情总会有解决的办法,在北京和深圳已经出现了一些形成规模并且研发过程十分规范的公司。并且他们的业绩在行业内的表现也是有目共睹的。
现在,再来说一说印度。
我不得不承认,印度的确不存在中国软件业存在的问题,就算是有也是个别现象。但印度软件业看似繁荣的背后却有一些隐痛。
很重要的就是,印度软件业可能出现后继乏人的现象。我这里所说的乏人不是软件工人,而是软件系统工程师。
目前印度的软件产业很鲜明的特点是,分工明细,专业化程度非常高。对整个产业来说,这是发展的必然。但是结果是技术人员仅对专业的内容熟悉,一旦更换工作内容就会无法适应。简单地说就是,设计的人只会设计,编码的人只会编码,测试的人只会测试。这些软件工人可以通过培训迅速掌握另一份工作,但是对于软件本身的系统化的理解与认识却始终停留在自己从事工作内容范围内,某种程度上类似于中国的软件熟练工。但是中国的软件开发人员经过一段时间的学习或者系统培训都可以成为很优秀的软件工程师。原因就是,他们很多时候要一个人面对软件开发工作中的各项内容。而一个普通的程序员要想成为一个优秀的系统分析员,需要长时间的学习、理解,甚至要走些弯路。但是印度似乎没有这种环境。
还有,印度软件业虽然令世人瞩目,但是印度国内对软件的需求却很小。一个国家的软件应用范围、宽度和广度某种程度上代表了现代化程度的高低。而在中国,大部分软件都是针对国内市场,虽然市场情况有些不良现象,但是旺盛的需求和政府的大力扶持、推荐促进了我国的现代化进程的进一步推进,同时也促进了中国软件业的发展。这在某种程度上说明,印度整个国家的软件应用水平不高,虽然他们的开发水平很高。虽然现在有人用软件帝国来形容印度,但这个帝国却只是一个充当外国软件生产车间的农业大国,这免不了要在这个“软件帝国”上追加一对引号了。
提到农业大国,中国曾经也是农业大国,但是现在却已经在各个方面有所成就,工业、农业、商业、科技等等各方面都有了长途的发展。这很大程度上形成了一种国民经济的多元化发展,随着软件应用的深入也形成了软件需求的多样化,促进国民经济的同时也很好的促进了软件业的发展。这些都是印度不可比拟的。
所以,当我们在慨叹印度软件业兴旺的同时也不应该妄自菲薄,要知道中国国内市场的巨大潜力,经济效益的高低并不重要,更重要的是社会效益,以及是否服务于国民经济。只有国家发展,民族软件才能拥有更好的生存空间。
我们现在需要做的就是憧憬自己美好的梦想并为之努力,尽管路还很长,只要去走,目标还会远吗?
网生
2004/05/07