1986年11月,美国联邦政府委托卡内基梅隆大学(Carnegie-Mellon)软件工程研究所(SEI)开发一套用于评估软件承包商能力的方法。SEI于1987年9月发布了一套软件过程成熟度框架和一套成熟度问卷。1991年,SEI将软件过程成熟度框架发展成为软件能力成熟度模型(Capacity Maturity Model,CMM),诞生了CMM 1.0。 十几年来,CMM的改进工作一直不断地进行。美国国防部希望把现在所有的、以及将被开发出来的各种能力成熟度模型,集成到一个框架中去。到2000年,CMM演化成为CMMI(Capability Maturity Model Integration,能力成熟度模型集成)。CMMI不仅适合软件,而且适合于软件硬件结合的系统,这是对CMM最大的改进。从20世纪90年代至今,软件过程改进成为软件工程学科的一个主流研究方向,其中CMM和CMMI是该领域举世瞩目的重大成果。CMM/CMMI是世界范围内用于衡量软件(硬件)过程能力的事实上的标准,同时也是软件(硬件)过程改进最权威的指南。 人们往往搞不清楚CMM和软件过程改进的关系,将二者混为一谈。下面作个比喻来解释: 把“软件过程改进”比喻为“学英语,提高英语能力”,那么CMM就好比是“英语等级评估标准(考试大纲)”。一般情况下,英语等级考试的成绩反映了英语能力。但是,在特别擅长应试的中国,英语考试成绩很好并不见得英语能力很好,甚至可能差到“哑巴英语”的程度。这种“特性”传染到软件领域,不少企业虽然通过了高级别的CMM等级评估,但是其实际能力却非常低下。 2000-2003年是国内IT企业搞CMM等级评估最狂热的时期,主要原因有: (1)2000年,CMM刚刚在国内兴起,感兴趣(学习、研究)的人非常多。近几年国内出版了不少关于CMM、软件过程改进的书籍,相关论坛、会议也比较多。有良好的群众基础。 (2)那个时候ISO 9000认证已经被国人搞臭了,而当时国内CMM 等级评估还很少见,企业达到CMM 2级、3级是很荣耀的事情。物以稀为贵,人们把认证的目光从ISO 9000转向了CMM。 (3)为了扶持当地软件企业,鼓励软件出口,各地方政府相继出台了“资助企业搞CMM等级评估的政策”。最先搞CMM评估的企业尝到了甜头:拿到了比较吃香的CMM等级证书,昂贵的评估费用却大多由政府支付了。这一剂催化剂,进一步激发了企业搞CMM评估的热情。 在2000-2003年期间,国内有数百家企业通过了CMM 2级、3级评估,应该说其中大部分企业是“为了拿证书”而不是“真正提高软件过程能力”。到了2004年以后,国内CMM评估从狂热回归理性。主要原因有: (1)地方政府基本上不再大力资助企业搞CMM等级评估。企业自己掏钱搞CMM评估就舍不得了,要掂量是否值得(理性的表现)。 (2)由于国内通过CMM 2级、3级、4级评估的企业已经很多,而且评估时“放水”现象严重,CMM评估的声誉已经大不如2000年。 (3)最让人失望的是,虽然有些企业通过了CMM 2级、3级、4级评估,但是实际的软件过程能力却依然底下。有些企业实施CMM后,质量没有明显提高,进度更落后了,成本增加了,人员更累了。 现在软件业界普遍关注的是:企业如何以比较低的代价有效地提高软件过程能力。CMM等级评估则退居次要地位。
|