某软件企业生存、发展的思考
从中国目前软件的状况、顺应的潮流、失败的原因着手,从世界大趋势的环境切入中国大市场环境最后再到我们企业自身的小环境,想想从别人的经验、教训、理论中我们能得到什么?我们不足的地方?能改进的方面?能优化的点?可引用的实践?。。。以下是从局方向谈谈自己的认识和思考。
思考一:企业的角色
目前国内大部份的软件企业均可以算是‘典型’的中国软件企业,所谓的‘典型’就是一个D7外的概念,D7指的是发达的七个国家,除这七个国家外,还有三个国家的软件可实现自产自销,就是软件由国内自己生产,自己使用。这三个国家是中国、印度、俄罗斯。如果真正提到相关的产品国际标准化,离我们可能还有些距离。目前软件企业都是供来自于需,而非需来自于供,也就是生产出的软件仅仅供某个企业专用,而非某个行业通用。
如何策划、开发、经营出市场所需的产品?这时,对我们而言,要求就不只开发出一个产品就行了,关联的市场需求调研、市场策略、产品包装、用户服务、相关支持等,就应和产品放在同一个等级的考虑层上。这是我们目前的弱项,其实这些,在项目的启动前就应考虑到,也许目前我们的客户需要的就是这些功能、框架,但当产品逐渐走向成熟化、市场化时,这些就是必不可少的关联项了。企业的经营角色在变,我们开发人员、工程人员的角色也应发生相应的变化。从大方向来讲:国际形式的变化是中国形式变化的参考,中国市场变化是我们企业经营方向的参考。我们应未雨绸缪,从管理形式标准化(向行业标准靠拢,融入自已的风格),经营思路灵活化(产品立足现在,着眼未来)、人员配置多元化(开发人员可应项目、产品的需要担任多种角色)、产品多样化(一种产品适合不同消费层级的用户)入手,定制一个短、中、长线的计划目标。市场是多变的,企业的角色如果一陈不变,那么必将面临遭淘汰的境地。大到如何将企业的角色顺应市场的需求,顺应整个行业的发展,小到我们每个员工如何去适应企业的变化、激烈的竞争、提升自己的价值等等,是我们每个人都应去考虑、深思、筹划的问题。
思考二:标准的引用
这里的标准,我想结合目前流行的CMM软件开发标准来谈谈,目前在中国使用的标准中只有40%是国际标准(包括软件开发标准,产品标准,行业标准等等),其它的大都是国内自定的标准,而国内自定的标准多由国际标准引伸、借鉴而来的。不能不说,按国际标准化走,能使我们较早的与国际相接轨,少走很多弯路,更能使我们的产品、服务到位,较早地达到国际服务规则。但目前摆在前面最大的困难就是如何洋为中用,标准按需(企业需要、市场化需要、产品需要)为“我”用。CMM翻译的中文资料中,二级的关键过程域(需求、计划、配置、质量保证、监督与跟踪)的各活动、执行过程、操作功能等,我们均已达到一定的认识水平,现在就要将我们整理的文档、理解的要素、操作的流程与我们现有的项目操作流程方式结合起来用,抛弃繁杂、冗余的操作,以质量保证为中心,各活动为其而开展,各关键域操作为其而准备。CMM(二)软件质量保证计划中各详细的审查表单为我们在软件工程过程中提供了活动指南,也为质量保证提供了可靠依据,这些表单在下阶段工作中,将与原来的ISO表单结合,在原ISO程序文件中以原操作流程为一条主线,在过程中融入CMM的关键过程域,将ISO原验证的操作与整理的“关键过程域执行确认检查列表示例”相结合使用,使ISO这条质量控制主线更明了化、操作更具体化。
思考三:角色的分配
这里的角色指的是项目中人员的角色分工,配合协调、分工合理、紧密协作的团队精神是一个成功项目的基础,在项目中每个成员的地位都是相等的,都是项目成功不可或缺的环节。在CMM的每个关键过程域活动中,对活动的角色、职责都给了很明确的分工,这在国外大多的软件过程及软件控制中均要求的,但对我们而言,这种明确、界线分明的角色并不适合我们实现的操作,可以举一个简单的案例:
在CMM(二)需求管理中,过程活动所需涉及的人员有:项目管理人员、系统工程师、软件设计/开发人员、软件测试 人员、系统测试 人员、软件配置管理人员、质量保证人员等等,而这些可以明确的是我们目前的状况无法使这些人员一一按计划到位,现实需要的是一员多职,如质量保证人员同时担当配置管理人员的职责,项目管理人员同时也是软件开发/设计人员。如何在一个项目中,充分发挥现有的人力资源,角色、职责根据项目实际需要按能力划分,以最有限的人力资源完成国际标准惯例(如CMM模型规范要求)。
在将ISO与CMM结合的同时,会根据我们部门的实际情况及项目的大小,拟一个相应的项目人员角色分工,相应人员的职责会参考CMM的要求制定。此外值得一提的是,以往当我们角色定下后,在具体的阶段所应完成的任务、达到效果并没有一个明确的指导(如项目管理员在需求阶段应做什么,在软件质量保证过程中又应完成什么任务,在项目的跟踪与监督中所承担的职责等等),而在CMM各关键域活动中,对各角色在该阶段、该活动所需担当的职责均作了一一详细的描述,这也是一个值得我们借鉴的亮点。这里提的是借鉴而不是引用,因为CMM涉及的活动实在太多,所需操作的点过于详尽,这些都不是我们能力所可以全部实现的。我们要做的是先整理出各活动人员分工、职责,再根据实际的项目选择可操作及实施的点。
思考四:开发趋势
OO技术将是未来的主体,UML是未来的方向,如何了解、学习、掌握、运用这些新技术、新方法,是我们每个开发人员适应行业发展、提高自身专业技能、综合素质所追求的方向。掌握最新的技术咨讯,应-能力、岗位、行业发展的需要,体现自身的价值。
值得一提的是,目前在做需求过程中经常提到的web based,其实这与我们早先的原型操作方式是差不多的,比原型优势在于它不需编码,只需一个界面,一个操作流程走向功能,通过WEB发布,无需相关的平台支持。通过WEB发布,操作简单,减少中间繁锁的沟通渠道,用户直接通过操作,了解所需开发系统的模型、实现的功能、流程图等等。可作为我们今后产品开发的一个借鉴经验,在需求调研时,可通过web based方式,让用户清楚的知道我们的设计思路、设计方向及实现功能,能较准确地确定需求基线,为项目以后的计划定制、质量保证、配置管理、跟踪和监督打下较稳固的基础。
这些只是在这一年的软件工程小组工作中,所想到、体会的东东,有的也仅仅是理论上的想法。如果可以,希望与实际的工作相结合,找出可切入的点,融入我们的开发过程中。
作者:吴超