中小企业实施软件过程改进的方法探索

日期: 2011-03-06 作者:谷文广 来源:TechTarget中国 英文

  1 引言

  随着软件过程概念的提出,软件工程从以产品为中心过渡到以过程为中心。软件过程与软件产品之间存在着因果关系,即好的软件过程才能得到好的软件产品,而差的软件过程只会得到差的软件产品。要提高软件质量,必须提高软件组织的过程能力。

  尽管国内的一些大型软件企业己经开始了基于CMM模型的软件过程改进(Software Process Improvement SPI),并取得了一定的成效,但更多的国内软件企业特别是中小型软件企业对软件过程改进的认识还不是很清楚所以它们急盼了解软件过程改进方面的知识,本文将对软件过程改进所涉及的相关知识进行介绍,并针对我国软件企业的特点提出一些面向中小企业的软件过程改进的方法。

  2 国内中小企业的特点

  经过多年的发展,我国软件产业己取得了长足的进步,目前我国拥有软件技术人员约16万人,分布在大大小小约6000家各类软件公司。其中中小企业居多,达到55%左右。所谓的中小企业是指那些人数在20-150}21之间的人。这些企业由于存在人员有限、资金短缺、管理基础薄弱等许多特殊情况,导致中小企业在软件开发中主要存在如下问题:

  (1)软件过程临时拼凑,管理多数凭经验,缺乏可实施性强的规范和标准。企业的组织结构不像大企业那样健全,没有正式定义角色、职责和过程。经常是一人多职,既作开发人员,又作测试人员,甚至还作设计人员。做法经常是每日都变化,没有长期计划。

  (2)整个企业没有建立起一个完善的工程化的软件产品研究开发和生产过程以及相应的管理体系,管理水平低。一个项目甚至整个企业是以少数技术骨干为支撑,凭借他们的聪明才智来保证项目的顺利进行和企业的生存发展。

  (3)软件质量意识不高,只注重完成软件的一些功能,而忽视了软件的质量,软件投入使用后补丁较多;

  (4)软件过程缺乏规范完善的文档,甚至一些复杂的软件接口仅靠技术人员之间达成的口头约定,加上开发人员的流动,常常造成日后维护困难,甚至使一个项目前功尽弃。

  在这样的现状下,中小企业要想提高项目效益,增强企业竞争力首先要解决的问题就是实施过程改进,完善企业的软件开发过程。

  3 软件过程改进

  3. 1软件过程及过程改进的定义

  软件过程是指软件开发人员维护及其相关产品(如项目计划、设计文档、代码、测试用例和用户手册)的一套行为、方法、实施和变换过程。一个规范的软件过程的使用会带来高质量的软件产品。也即:“不断地提高技术水平,不断地提高规范化水平”。由于软件过程有其特殊性,借鉴和引入新的软件过程改进方面的成果是必须的。软件过程的3个基本要素是:人、方法与规程、技术与上具。

  提高软件过程能力的实践通称为软件过程改进。软件过程改进就是在软件过程中为了有效地达到软件过程的目的所实施的改善或改变其软件过程的系列活动。软件过程改进是建立在许多简单的、渐近的步骤上的。软件过程改进最基本的目标是减少从开发阶段传递到系统测试阶段的不正确的构建版本。

  3.2 现有的软件过程改进模型

  目前国际上软件过程的研究主要有三个流派,现分析如下:

  (1) ISO-9000是由ISO/TC 176负责制订的软件质量系统系列标准[141. ISO是一个达标性的体系,大而全,比较偏向于宏观把握。

  (2) ISO/IEC 15504151提供了一个软件过程评估的框架一软件过程改进与能力测定模型SPICE.它可以被任何组织用于软件的设计、管理、监督、控制以及提高获得、供应、开发、操作、升级和支持的能力评估。不仅集中考虑软件过程,而且考虑人、技术、管理规程、客户支持和质量以及软件开发和维护规程等问题。

  (3) CMM(软件过程成熟度模型尹1,是由美国卡内基·梅隆大学软件研究所((CMU/SEI)组织开发的。CMM侧重于对企业软件能力成熟度级别的描述,由于SEI在软件r程界的领导地位,CMM模型是目前国际上流行的软件生产过程标准和软件企业成熟度的认证标准,所以不少国内外软件企业纷纷依据CMM模型进行软件过程改进,并且取得了CMM的认证。

  其中ISO-9000侧重评价软件产品是否己达到了标准的各项指标,仅仅是通过质量审核所得出的成功/失败的比例来确定软件过程的能力,评级工作必须是全组织共同参与评定的;ISO/IEC 15504在评估组织软件过程的同时,也为组织提供了一种兼容的、可重复的软件能力评估的方式,可以根据组织的具体情况选择软件过程,可以在组织的局部范围内进行评估定级;CMM基于软件的特定,侧重软件过程改进的必然性和长期行,强调软件开发过程控制和预见性。


  3 面向中小企业的软件过程改进方法

  1)选择一种过程改进模式

  软件过程改进有自顶向下和白底向上两种模式:前者是基于标准的,由标准来规范实践,即以CMM为标准实施过程改进,此模式成本较高,适用于希望通过CMM等级评估的企业:后者是基于实践的,由组织中待解决的问题出发,采用逐步推进的方式改进过程,改进成功后则将经验推广应用。

此方法成本低,适用于解决企业内现实存在的问题,帮助企业练好内功。鉴于国内的软件企业大部分都成立时间较短、管理基础薄弱、资源不足、生存压力大的特点,建议采用自底向上的模式。

  2)建立过程改进组织机构

  对企业进行软件过程改进活动应该按照项目的方式来运作,也应该提供需要的资源和组织机构配备。

  其中:管理委员会的成员由公司总经理、技术总监、过程改进经理以及某些经验丰富的项日经理和部门经理组成。主要负责分配资源、监控改进活动与状态、对己完成的改进活动进行评估等;软件过程小组包括过程改进经理,过程改进专职人员,随不同项目参与的兼职人员。主要负责制定过程改进的战略计划、协调促进各工作组的工作、积累组织的过程财富等;过程改进小组,由具体第二届全国信息与电子工程学术交流会暨第十三届四川省电子学会曙光分会学术年会论文集项目组中一些代表临时组成,通常是3-6人,负责某一特定领域的改进。主要负责详细描述该领域的当前过程执行情况、定义新过程、督促新过程在项目开发中的实施等。

  3)评估企业当前的软件过程

  过程评估可以揭示企业的各个软件项目潜在的风险,也可以帮助公司主管找到困扰企业发展的真正原因所在。评估的形式不拘一格,可以是一个简单的全员参与讨论的“头脑风暴”会议;也可以是一个半正式的邀请外部咨询顾问参与的评价;还可以是一个严格的参照CMM标准的正式评审。大型软件公司可以一次在多个项目中同时进行若干领域的改进,而对于中小型企业一定要选择软件过程中最薄弱最需要改变的环节,从优先级比较高的目标过程中,选择2到3个实施改进。如果很快的完成了这儿个目标。再从评估报告中选取2个目标继续改进。

  4)制定过程改进计划

  计划对于任何项目的成功都是必要的,对于中小企业的过程改进同样如此。过程改进的计划应该包括一个整体的过程改进战略计划和每个工作组的具体过程改进行动计划。战略计划由过程改进经理制定,然后由软件过程小组成员和管理委员会评审并且批准。具体行动计划由工作组编写,确定工作组期望实现的目标以及实现。具体的计划内容可根据企业的实际情况进行编写。

  5)实施过程改进

  什么道理说得再好,如果不很好的实施,那也是“纸上谈兵”。而对于大多数中小企业的团队成员来说,具体的开发工作总是比实施过程改进要重要。在这种情况下,项目经理应该在工作中经常提醒和强调过程改进工作的价值和重要性,同时,管理层的人员应该积极参与到过程改进中,向员上们表示组织对过程改进工作的重视程度。使全体员工上下同心,保证过程改进的圆满实施。

  6)将结果与目标做比较,找出差距,分析原因,对软件过程进行持续改进。

  4 结论

  进行软件过程改进,要采用适合企业白身情况的模型,并根据需要对其进行适当调整,通过日益积累成功经验,并把这些经验在全组织内消化吸收将其制度化,那么企业的软件过程将会逐步得到改善。但是因为软件过程从来都不会尽善尽美,所以过程改进是一个没有终点的旅程,需要所有成员共同努力走好过程改进这条艰辛的路。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐