敏感的人会发现,在近来的业内报纸杂志上,"CMM"这个普通的字母组合越来越多地被提及,而"M o to rala(中国)通过了CMM五级认证"、"鼎新通过了二级"之类的新闻也竞相被各媒体报道。一时间,CMM烁烁生辉,仿佛笼罩在舞台的聚光灯之下。

  那么,CMM是什么呢?

  在上个世纪六十年代,软件业出现了软件危机。即软件项目经常无法按期完成,软件工程费用超支,软件质量难于控制而且维护费用高,系统更新换代难度大等。为科学评估软件承包商能力并帮助其改善软件质量,应美国联邦政府的要求,美国卡内基梅隆大学软件工程研究所(CMUSEI)开发了CMM---能力成熟度模型(C ap ab ility M a tu r ity M o d el)。它提供了一个评估软件开发过程的管理及工程能力的标准。

  通俗地说,在某种程度上,在软件企业内部实施CMM和ISO9000或9002质量体系认证有相似之处。因为就其基本要求而言,不外乎以下四方面:形成文档化的制度,规范和模板;严格按照制度办事;按照要求形成必要的记录;检查、监督和持续改善。只不过前者更适合于软件企业,因为它是目前国际上最流行、最实用的软件生产过程标准和软件企业成熟度等级认证标准。

  CMM标准共分为五个级别:初始级、可重复级、定义级、管理级和优化级。从低到高,标志着软件生产的计划度越来越高,生产周期越来越短,成本也越来越低。对于软件企业而言,实施CMM好处多多:

  过程控制规范化、做事方法标准化,使得企业因人员流动而带来的风险降到了最低,并有利于培养公司员工良好的职业素质。以往那种因项目开发的关键人物离职造成项目巨大损失乃至前功尽弃的现象不再出现。因为遵循CMM管理方法,程序员编写的代码一经提交,便成为项目小组或是整个企业的成果,作者想对其进行任何修改,都需按照规范的程序将它从公共区域提取出来。

  研发过程逐渐透明化,项目进度得到合理控制。实施CMM,使得企业在项目计划的阶段就把突发事件可能发生的情况、一旦发生时必须采取的措施都列举出来,从而将传统的危机管理变为可控的风险管理。以往那种在软件项目开发的最后阶段,出现"成本超支,时间不够"导致游说客户宽限时间或加钱,否则就牺牲软件产品质量的局面一去不复返了。

  为企业积累宝贵的研发管理经验,从而具备规模开发的能力和基础。国人常以我们不缺软件编程员而自豪,可是泱泱大国的软件输出额却远远不及印度。当他们的企业动辄达到成千上万人时,我们却依旧停留在数十人的手工作坊阶段。技术水平的分布不均,管理能力的乏善可陈,导致难以形成规模化的软件生产,从而竞争力不足也是自然之事。而引入CMM,则可以使企业逐步具备开发大项目的实力。