阅读更多
昨天和朋友聊CMM,其中发了一些感慨,记录下来。
在JamesBach的“TheImmaturityofCMM”一文中,提到了CMM的种种不足,Weinberg也是对CMM提出质疑的重要一方。
我认为,
所有一切的源泉,都在于把CMM搞成了应试教育。
搞清楚一个问题必须看它的根源。CMM来源于DOD对承包企业的一个资质评价。因为双方要做生意,但互相之间又不了解,我想请人来做这块软件,首先要对这几个候选者能否做好有一个大致的评判,怎么评判呢,以什么标准评判呢?
作为一个研究机构,SEI来给出这个评判标准非常合适。CMM作为一套评判企业软件开发过程能力的问卷,应该是非常成功的,SEI提供的各种成功的CASE数据可以作为证据。因此CMM也获得了空前的成功和流传。
但“CMM只是一套试卷”这个最初的出发点导致了JamesBach一文中提到的CMM的众多不足:
1)hasnoformaltheoreticalbasis
2)hasonlyvagueempiricalsupport
3)reveresprocess,butignorespeople
4)reveresinstitutionalizationofprocessforitsownsake
5)containsverylittleinformationonprocessdynamics
6)encouragesdisplacementofgoalsfromthetruemissionofimprovingprocesstotheartificialmissionofachievingahighermaturitylevel.
请容我一一分析:
1)如果只是一套试卷,想必没有坚实的理论基础是可理解的了;
2)没有人根据一套“五笔输入”的考试试卷来学习五笔字型;
3)4)5)是对试卷内容上的垢病了;
6)典型的应试教育后遗症;
从这个出发点来看,对现在国内很多地方实施CMM效果并不理想,也就不足为怪了。专业一些说,CMM只是一个过程评价模型,而并不是过程实施的指导模型。应该说,SEI已经认识到CMM在可操作性上的不足,Humphery主持开发的团队软件过程TSP(TeamSoftwareProcess)和个人软件过程PSP(PersonalSoftwareProcess)是面向开发小组和开发个人对CMM进行的过程的微观优化,对CMM的实施提供了很好的帮助,但是,TSP和PSP只是对过程进行细化,并没有解决CMM与工程过程相结合的问题。另外,SEI还曾制定了SPF(SoftwareProcessFramework),希望提供一个设计、分析、评审软件过程的指南,以保证过程符合CMM的要求,效果也并不理想。
而国内在实施CMM中发现的问题在于什么呢?就是:CMM是一个考卷,但问题这是一个
开卷的考试,结果想抄近道的人们希望根据这个考卷来作过程改进方面的工作,这是典型的应试教育思想,从而导致出无数的问题……针对这个,我的建议就是,软件企业在建立组织标准过程、改进过程的时候真正以提高组织的开发能力为目的,这个时候最好把CMM抛在一边,或者说“心中有CMM”,但不要老挂在手边,嘴边。在过程建立起来,run起来之后,某个阶段,可以成立组织内部的评价小组等进行CBA-IPI,根据过程的现状来答CMM这个问卷,看看还有哪些地方有遗漏,有不足,需要改进。然后有针对地进行下一步的过程改进工作。
总结我的观点:
CMM只是评价过程能力的一套试卷,用它来评价和改进组织的过程能力都很好,但不要试图用它来指导组织的过程建立。一句话,不要搞应试教育。