伟大的杜鲁克说二战之后,很多工作都变为知识工作,不再直接创造具体的产物。Humphrey在SEPGChina2007上说软件工业是第一个知识工业。由于知识工业与传统工业的差别,使得知识工业通过过程改善来提高品质的努力更加困难和复杂化。
2,过程改善不只是CMMI,形式上通过CMMI级别没有什么意义。
首先,我觉得最需澄清的是:
1) 软件过程改善(SPI,Software Process Improvement)是只是软件方法学(软件工程)的一个领域;除了过程改善之外,软件方法学还有很多其他重要领域,比如系统工程,质量工程等(详细请看IEEE和ACM联合编写的SWBOK)。
2) 在过程改善领域,CMMI模型只是众多过程改善模型中的一个;除了CMMI模型之外,软件过程改善还有很多其他模型,比如Basili教授的GQM(Goal Question Metric)模型,SPICE模型,EFQM,TickIT等。
但是,很不幸的是,中国的政府和企业现在倾向于将软件方法学(软件工程)等价于过程改善,将过程改善等价于CMMI,将CMMI等价于Humphrey(实际上Humphrey与CMMI毫无关系)。
软件方法学包含很多领域,在每个领域中都包含大量的经验,knowhow,practice,以及为之奋斗的专家。比如在估算领域中最先提出COCOMO模型的Barry,在同行评审领域最先提出实证数据的Fagan,在度量领域的实践者Capers Jones,活跃在思想界的Weinberg,最先提出螺旋式开发过程模式的Boehm,永远热情洋溢的真正的咨询师Tom Glib。
这些耀眼的明星在不同领域奠基了软件方法学的基础,并且依然活跃在世界各地,为软件方法学的完善分享和贡献自己的思想和实践。
由于软件方法学还没有完善,对于众多缺乏经验的企业而言,面对众多的理论和实践,无所适从,不知道如何运用这些方法学。CMM/CMMI模型应运而生。
CMMI的价值在于根据大量业界的实践经验,特别是以IBM为代表的传统公司的经验,向缺乏经验的软件公司提供了一个分阶段导入软件方法学理论和实践的过程改进的路线图,即从一级到五级的改善路线图。
CMMI模型期待软件企业首先建立基本的项目管理过程(CMMI二级),然后统一化为组织范围的标准过程(CMMI三级),然后进行定量化的记录和控制(CMMI四级),并再次基础上进行持续和长期的改善(CMMI五级)。这样的story对于众多迷茫的企业当然是非常有效的,无意是指明了努力的方向。
但是如果教条地听信CMMI模型,而完全放弃了自身的理解和辨别的话,同样是非常危险的事情。因为CMMI模型并没有考虑到各个企业的实际情况,提供了一个统一的路线图,事实上,我们无法想象全世界的所有软件企业都来遵循同样的过程改善流程,试图成为一个模子出来的企业。
CMMI只是众多模型中的一个而已。CMMI模型在美国远远没有在中国和印度这样流行,甚至在欧洲和日本也没有被如此追捧,那里的企业还是“因循守旧”地在搞ISO9001。
ISO9001是国际化的品质标准,同样可以运用到软件行业,特别是ISO9001:2000版本进行了适当的改善。可是鉴于ISO9001在国内的恶名,人们已经不再信任ISO9001能够提高软件品质了。可是,CMMI不正像十年前的ISO9001么?或许不久也会有同样的恶名呢?
Basili教授的GQM(Goal,Question,Metric)模型在北美是一个经常拿来与CMMI模型相比教的模型。GQM模型提供了一个普遍的方法轮,每个企业根据自己的实际情况,确定自己的目标,定位为达到目标需要解决的问题,针对问题提出度量的方法,在此基础上进行改善。
文章来源于领测软件测试网 https://www.ltesting.net/