Ivar Jacobson博士认为,如果采用不良的软件过程,通过CMM/CMMI的成熟度级别越高,只会使软件企业生产不合格软件的过程更加有效率,而不是使企业开发出更好的软件。
CMM改善不了软件的质量
软件外包是时下的一个热门话题,被我国不少软件企业视为一座金矿,而CMM被人们认为是进入这个市场的敲门砖,为了拿到那张代表资格的CMM认证证书,不少企业甚至不惜投入数百万之巨。事实上,拿到CMM认证在国外并不代表企业就能提供一个合格的软件,著名的软件专家、拥有组件技术、用例技术等多项发明、与Grady Booch、James Rumbaugh一起被称为UML之父的Ivar Jacobson博士在近期访华期间一再提醒中国的软件企业,谨防掉入CMM陷阱。
CMM/CMMI的缺点
CMM/CMMI最早起源于美国国防部。为了改变在采购过程中频繁地采购到大量不合格软件的局面,美国国防部需要一种评估软件质量的方法,这就是要求软件企业进行CMM/CMMI认证。然而,CMM/CMMI真正解决这个问题了吗?
CMM/CMMI被认为是一种最成熟、最有效地提高软件工程化水平的方法和标准,用来评估和改进过程,它是一个描述在软件开发过程中有待改进的关键因素的框架,描述了一个能用渐进方式进行改进的途径。它为软件过程改进提供一个基础,将软件开发从一个相对来说随意、不成熟的过程变成非常成熟的、有规律的、可管理的过程。
然而,CMM/CMMI也有一些与身俱来的缺点不容忽视。比如,CMM/CMMI的评估耗资不菲,一个CMM2级评估就可能达到数百万之巨,而且耗时很长,过程十分复杂,常常导致效果不太理想。不少企业的认证流于形式,评估完成后就只留下一大堆文档,而真正的软件开发过程却依然故我。而且,CMM/CMMI只告诉我们应该怎么做,而没有具体地告诉如何做。比如说,它要求必须改进需求管理,那么到底该如何做需求管理?CMM/CMMI没有提供答案。