软件过程改进与CMM

发表于:2008-01-23来源:作者:点击数: 标签:软件过程改进
一、 CMM在软件过程管理与过程改进中的作用 "软件危机"简单地说就是:软件 质量 达不到要求,软件项目无法按时完成和软件项目的花费超预算。这是一个世界性的问题。在试图解决这个危机时,就引入了 软件工程 过程管理与软件工程过程改进的概念。 实际上许多问
一、 CMM在软件过程管理与过程改进中的作用

  "软件危机"简单地说就是:软件质量达不到要求,软件项目无法按时完成和软件项目的花费超预算。这是一个世界性的问题。在试图解决这个危机时,就引入了软件工程过程管理与软件工程过程改进的概念。

  实际上许多问题不是出在不懂怎么做,而是没有安排做、做的次序不对、做得不好或不知道怎样做得更好。软件工程过程管理就是要把整个软件的生命周期,从原始概念到产品维护,制订出-个明确合理的工程过程加以管理。 过程管理不会压制专业人员的创造性。好的工程过程会保证软件项目不会陷入混乱状态,开发人员不必被动地到处救火,因而有充分的时间按计划进行创造。过程及其管理只不过是我们手中的一件工具,而且这件工具是我们为了自己而设计的。 我们在设计制定这件工具的时候,必须令其起到"利"器的作用。但是,现在许多软件企业建立的ISO9000质量体系很少从软件工程的角度出发,过多地照搬其他行业的做法,不仅使过程管理未起到多少作用,却真的在一定程度上束缚了开发人员的创造性.

  一个企业软件工程过程的建立不会一开始就十全十美, 而且企业的内外部环境也是在不断地变化.所以软件的管理过程需要不断地改进。缺少了过程改进,再好的体系也会渐渐的变得过时和不适用,更没有可能使我们开发软件的能力逐步地成熟起来。

  如何进行软件过程管理与改进,软件界的许多人提出了各种各样的方案。卡内基梅隆大学的软件工程研究所SEI(Software Engineering Institute)提出了SW-CMM,它将软件过程的成熟度分为五级,描述了企业要达到每一个级别所必须要做的工作。企业通过使用这个模型,一级级地去提高它们的软件开发及生产能力。

  美国曾在1995年做过软件产业成熟程度的调查,发现在美国的软件产业中,CMM成熟度等级为初始级(第一级)的占70%,其特征是软件开发过程不能预测,风险度高;可重复级(第二级)的占15%,其特征是软件开发对于熟悉的项目容易获得成功,新的项目却面临很大的风险;定义级(第三级)的所占比例小于10%,其特征是软件开发过程相当稳定,进展顺利且可以预测;管理级(第四级)的所占比例小于5%,其特征是软件过程预测准确、值得信赖;优化级(第五级)的所占比例小于1%,其特征是软件过程能持续改善。所以不管是从提高内部的管理水平和赢得外部客户信任角度来讲,不断进行过程改进、 向更高的成熟度迈进都是当今软件企业所必须要作的工作。

  二、 CMM实施中应注意的问题

  1、 剪裁的问题

  CMM是为承接政府(或军方)大型软件合同的软件企业为对象而制订出来的。因此,中小型企业在采用CMM的时候, 必须按照企业本身的特点和需要去剪裁和解释它的条文。CMM就好比是一份包括各种等级的国宴的菜单。但如果你是中小型饭店或家庭,绝不能照搬国宴菜单,只能用作参考。因此,正确的态度是把CMM作为一个参考模型,而不是一个必须完全照办的标准。

  2、ISO9001与CMM的关系

  国际标准化组织的质量管理标准ISO9000与CMM均可作为软件企业的过程改善框架. CMM仅仅适用于软件行业,而ISO9000的适应面更广,但绝不是说ISO9000不适合软件企业.实际上ISO9000:2000版标准和CMM遵循共同的管理思想,ISO9000:2000版标准已经彻底解决了94版的制造业痕迹较重,标准按要素描述难于在软件行业实施的问题. 就目前软件企业实施ISO9000失败的原因来看,主要是未考虑软件行业特点和企业公司特点,盲目照搬其它行业和公司的模式;领导的重视程度和推行力度不够.这些问题不解决,实施CMM同样会失败.

  就内容来讲,ISO9001不覆盖CMM,CMM也不完全覆盖ISO9000。一般而言,通过ISO 9001认证的企业可达到CMM 2级或略高的程度,通过CMM 3级的企业只要稍做补充,就可较容易地通过ISO 9001认证。粗略地说,ISO 9001近似于CMM 2.5级。

  3、时间和效果的问题

  目前整个中国的软件行业兴起一阵实施CMM的热潮,这对中国软件产业实在是一件好事,因为大家终于认识到软件开发过程管理的重要性.但针对以前ISO9000在其他行业及软件行业实施的经验教训,以下方面是软件界人士所必须关注的:

  (1) 、CMM只是说明达到某一级别必须做的工作,并未按说明如何实施,所以需要企业结合自身的情况,对软件过程进行认真的策划,建立符合企业特点有效的管理体系。

  (2) 、CMM费用远大于实施ISO9000的费用,是否所有企业都能够承担?实施后能否取得满意的效果?目前实施ISO9000取得非常满意效果的仅仅占一少部分;有一定效果的占一部份;剩下的为没什么效果,有的还束缚了企业的管理。CMM如果实施的没有效果,企业的投入不仅分文无归,而且会背上一个更大的包袱,因为CMM比ISO9000更复杂,要求也更详细。

  (3) 、实际一个管理过程的改进是一步步实现的,但在中国很多企业(包括软件企业)实施ISO9000很多是快速完成,最短的三个月就可以完成,效果是可想而知的。国外的经验表明,企业实施CMM上升一级需要约16至24个月时间.中国的软件企业实施CMM时是否会重蹈ISO900O的覆辙?到那时受到更大伤害的只能是企业自己。

原文转自:http://www.ltesting.net