前言
在世界软件业进入工业化生产的今天,中国却依然在进行小作坊式生产。仍然没有走出凭借个人英雄主义打天下的"作坊式"经营模式,规模偏小仍然成为制约竞争力的重要因素。在现阶段的中国,绝大多数企业与其说是软件企业还不如说是软件作坊,企业员工在50人以下的占多数,甚至还有些软件公司只有七八个人,规模小且分散。
在这些小企业里,虽然用的是最好的计算机和最先进的开发工具,但生产方式却是作坊式的。既没有项目规划书,也没有项目经理,更谈不上系统分析和设计。基本上靠一两个程序英雄单枪匹马,边想边写代码,一旦这些英雄们因故离开,正在开发中的项目就必须得停止。
另外,程序英雄们"跳"得也快,程序员能兢兢业业在一家公司做上几年的绝无仅有。况且,这些英雄动不动就另立山头,招兵买马,然后利用自己掌握的资料开发产品,甚至跟原来的公司竞争。如此以来,全国的十大软件产业基地里到处都是这种作坊式企业。
因此,几个程序英雄组成的软件作坊如何转变成软件工厂,是一直困扰国人的问题,本文将就管理、技术和政策环境几个方面进行一些探讨。
一、深入贯彻软件工程思想
我国的软件企业由于规模太少,大多数企业局限于小软件的开发,大型软件大多来自国外,其中很重要的原因是开发过程管理不成体系,难以开发出高质量的软件。
软件工程强调软件开发过程的"工程"性,把软件的设计、开发、测试、维护和管理工作当做一项系统工程来抓,表明软件不仅仅是编写代码的工作,而需要各个学科的综合应用,才能形成真正的产业化。国外在软件工程方面的经验和标准及国内在此方面的探索无疑将给软件界人士很好的启示。
国人一直认为软件行业是聪明人的行业,凭的是高智慧,程序员都不愿意写文档。大多数编程人员基本没有软件工程的概念,我们身边有大把大把热血沸腾、雷厉风行的工程师们根本就没有踏踏实实搞设计的理念,他们一有思路就开始写代码,写完了就试,试通就得,不通再想办法。
由国内一些软件工程化思想的积极推动者和实践者创建的软件工程专家网,就是要唤醒大多数软件工程师的意识,教大家学会走软件工程之路。
二、严格项目管理,改进软件过程
随着信息技术的飞速发展,软件产品的规模也越来越庞大。我们知道,软件开发是一个带有一定风险的工作,为了把风险降到最低,项目经理一定要进行严格的项目管理。软件项目管理就是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。进行软件项目管理有利于将程序员的个人开发能力转化成企业的开发能力。企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展。
在项目管理的过程中,可以结合先进的管理软件和工具软件,形成规范性的文档,逐步总结经验,对当前的工作流程进行分析、整理及文档化,形成适合自己企业发展的软件过程,并用该文档化的过程指导软件项目的开发。
在具体实施的过程中,可以选择有一定代表性和完善性的项目先进行试点,跟踪、监督软件过程的实施情况,对不满意的地方加以完善,使其成为一个尽量完美的软件过程方案,然后将这个软件过程应用到当前正在承接的或即将承接的项目上,在实际使用过程中进一步发现其中的不足和错误之处,加以改进,最后将试点的结果推广到整个企业。
三、引进先进的管理标准
中国的软件业要想真正成为产业,就必须引进先进的管理标准,改变整个软件业管理的方式和方法。特别是随着中国加入WTO,中国软件业要提升国际竞争力,在世界上占一席之地,解决与国际接轨的问题也变得越来越紧迫。
近年来,我国已开始有越来越多的软件企业开展ISO9000质量体系认证活动,这为规范软件企业的管理起到了一定的推动作用。然而,ISO9000系列标准并非为软件企业特别制定的,它是适用于各种生产和服务过程的标准化的质量控制体系。作为通用的标准,它更像硬件制造业的专用品,在软件产业实施起来显得力不从心,十分别扭。
自2001年以来,国家很重视软件企业引入国际通行的CMM认证。作为目前国际上最实用的软件生产过程标准和软件企业成熟度等级认证标准,CMM能帮助软件企业改进和优化管理,实现软件生产工程化。中国软件企业必须加紧实施CMM认证,走规范化发展的道路,提升水平,形成规模。然而,CMM是以承接政府大型软件合同的企业为对象而制订出来的,我们只能"引进"而不能"拿来",要根据我国软件企业的现状进行裁减。
特别要声明的是,企业实施CMM是为了让企业更好地发展,为企业进一步扩大规模打下坚实的基础。如果企业只是为了获得一纸证书而通过CMM,那么就已经本末倒置了,对企业的长久发展反而有害。
四、广泛使用软件复用技术
软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需要分析文档甚至领域知识。对于新的软件开发项目而言,它们或者是构成整个目标软件系统的部件,或者在软件开发过程中发挥某种作用。
软件企业使用了软件复用技术之后,开发人员在不断完成新项目的同时,对自己的工作允许复用的部分必须不断进行分类,建立索引,并提炼出简单的使用接口。使得以后的软件项目,只要是重复或类似的工作都不必重新开发,而调用以前的工作成果就可以了。这样一来,企业就总在开发以前没有做过的新东西。当部件足够多时,一个新的项目几乎可用以前的可重用的部件就可以搭建起来。并且,对新员工来说,只需要学习部件的简单接口即可。这时,软件工厂已经基本形成。
由此可见,使用复用技术可以减少软件开发活动中大量的重复性工作,这样就能够提高软件的生产率,减低开发成本,缩短开发周期。同时,由于软部件大都经过严格的质量认证,并在实际运行环境中得到检验,因此,复用软部件有助于改善软件质量。此外,大量使用软部件,软件的灵活性和标准化程度也得到了提高。
因此,软件复用虽然只是一项技术,但它却孕育着一场变革,可以使软件开发的小作坊变成大工厂,使软件行业从"小农经济"走向产业经济。
五、大力培养软件工人
一提到软件产业,国人就自然而然地拿中国跟印度比。印度软件业发达就是因为有很多熟练的软件编程工人,但其技术水平很低,仅仅相当于"来料加工"。国人一向认为软件是聪明人的行业,但作者认为,中国不缺软件英雄,缺少的恰恰是软件代码工人。
据了解,今后几年内我国信息产业的增长每年至少需要40万IT人才,其中一半是软件人才,而我国目前高校每年培养出来与IT相关的大学毕业生仅5万人左右,这其中还有部分毕业生出国或者从事其他行业工作。缺少合格的软件工人,是国内很多软件企业发展的最大障碍。现在的软件企业只能用高学历的专业人才来从事简单的编程工作,不但导致人力资源成本过高,限制了企业的总体员工规模,同时也降低了软件价格上的国际竞争力。
因此,我们要大力培养软件人才,这包括中国在每年培养5万多名计算机专业毕业的高级"白领"之外,还要培养一大批软件业的"蓝领" 工人,来填补人才需求方面巨大的缺口。 大批"蓝领" 工人进入软件业,除了可以降低开发成本之外,还可以促进软件企业真正采取工厂式运作并形成标准化,从而极大地避免对个别程序员的过分依赖,保持企业发展的稳定性和可持续性。
六、政府的政策扶持
我国政府在支持和帮助我国软件业发展方面所作出的贡献是不容质疑的,如果没有政府的支持,中国的软件发展道路将会更为曲折。近年来,政府一直表态支持我国软件业发展,也出台过一些支持软件产业的政策规定,例如《鼓励软件产业和集成电路产业发展若干政策》,从法律和政策上给予软件企业很多的优惠措施;另外,副总理吴邦国也曾经向10个国家软件产业基地代表授予过标牌。由此看来,我国政府对软件业的发展算得上是用心良苦。 但是,国家的这些政策是否都落到实处了呢?
从政策环境方面来考虑,目前,中国软件产业发展面临的最大障碍是软件盗版。大量存在的软件盗版行为,严重地影响软件企业的生存和发展,盗版使软件企业无法获得正当的投资回报,极大地限制了软件企业的规模。软件盗版严重削弱了中国软件企业的竞争力,使其在竞争中处于不利的位置。
其次是资金匮乏。软件行业是一个高投入、高风险的行业,对于一个软件企业来说,如果没有通畅的资金来源渠道就等于自掘坟墓。如果没有大量资金的注入,光有很好的创新意识和智力资源,不可能转化为商品到市场中去流通,也不能从中获取高的利润回报,更谈不上企业规模的扩大。