事实上,CMM最初是悄然进入中国的,1999年7月6日当北京鼎新信息系统开发有限公司成为中国首家通过CMM2级评估的企业时,并没有几个人听说过这个新名词,更别说明白它意味着什么了。
CMM真正火爆起来还是由于2000年6月国务院颁发了《鼓励软件产业和集成电路产业发展的若干政策》(业内人士称之为“18号文件”),该文件的第五章第十七条明确提出“鼓励软件出口型企业通过GB/T19000-ISO9000系列质量保证体系认证和CMM(能力成熟度模型)认证。其认证费用通过中央外贸发展基金适当予以支持。”伴随着 2001年上半年国内的几家大公司先后通过CMM2级认证及其后掀起的强大宣传攻势,CMM成为目前软件业最时髦的词汇。各地政府和科委对企业通过CMM认证也明确表示大力支持,并且对通过的企业予以不菲的奖励。但也有一些人对这种火热的态势表示了担忧。
在日前举行的第四十二届“中关村IT沙龙”上,北京市软件行业协会秘书长殷志鹤先生就表示:CMM有助于中国软件业的发展,但推行不能过头。
CMM是必修课吗?
其实企业要不要通过CMM,关键要看这会为企业带来什么好处。简单地看,CMM是一种资质认证,它可以证明一个软件企业对整个软件开发过程的控制能力。目前国际上在挑选软件工程的外包伙伴时一般都要看CMM认证。印度之所以有那么多的企业通过CMM认证,就是因为它们是以软件承包为主。东软当初决定通过CMM认证的一个很重要的原因就在于公司决定扩大国际业务,向欧美市场拓展,而在同欧美客户的接触中发现,只有通过CMM认证才有可能在欧美市场接到订单。所以毫无疑问,想要承接国外软件外包工程的企业就应该通过CMM认证。
CMM(软件能力成熟度模型:Capability Maturity Model For Software)是由美国卡内基梅隆大学的软件工程研究所(SEI:Software Engineering Institute)受美国国防部委托研究制定并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过程和软件开发能力的评估和改进。CMM标准共分五个等级,由低到高分别为: 初始级、可重复级、定义级、管理级和优化级。
那么如果只是开发自主产品、不做外包的软件公司需要通过CMM认证吗?要想回答这个问题,需要从两个方面进行分析,一是是否需要在企业内部实施CMM; 二是是否需要通过认证。
众所周知,软件生产不同于汽车、纺织等制造行业的生产,它完全是由人进行创造的,外界无法观察,也很难进行监控,同时软件也不像制造业的产品那样可以方便地进行检测评估,这就给软件的管理和控制造成了很大的麻烦。国内的软件企业正是由于缺乏一套完善的管理办法,致使经常出现不能按时发布、产品质量低劣、项目组中个人作用过于放大等问题。因此,中国的软件业要想成为产业,就必须改变整个软件业管理的方式方法。而管理正是CMM的强项,它提出的过程监控以及文档先行,让企业在软件生产的每个步骤都留下翔实的文档,从而实现软件生产的标准化控制,让企业有效地控制软件生产各方面的问题。所以每一个软件公司,无论是做内销还是出口,只要是真正想成功、想持续发展、让企业具备竞争力,就应该学习CMM所倡导的工作方式,在工作管理当中贯彻CMM的思想。
而企业是否必须通过认证,则需从两方面来看。不可否认的是,按照CMM的思想进行管理与通过CMM认证并不能划等号。其实在软件业最发达的美国,很多企业包括软件业的巨头Microsoft都没有通过CMM认证。这并不是说,这些企业不重视质量管理,事实上,这些企业多年来已经形成了一套自己的管理方式,而且这套方式同CMM在本质上是一致的(CMM本来就是SEI从美国的工业界中总结出来的)。但中国则是另一种情形,国内的软件企业多年来已经形成了很多不好的习惯。据帮助东软通过CMM认证的Soft Tech公司副总裁李颖女士介绍,CMM认证并不仅仅是在评估软件企业的生产能力,整个评估过程同时还在帮助企业完善已经按照CMM建立的科学工作流程,发现企业在软件质量、生产进度以及成本控制等方面可能存在的问题,并且及时予以纠正。所以中国的软件企业在条件许可的情况下最好还是通过CMM认证,借助强制性的外力来纠正自己的错误。
但另一方面,企业要通过CMM认证,投入的时间、精力、资金都非同寻常。仅以资金为例,5万美元的评估费用只是最少的部分,另外还要请咨询公司进行咨询与培训,而无形的投入(企业用于改变管理的费用、员工为了学习CMM而花费掉的时间以及为编写文档而花费的精力等)才是最大的一笔投资。还是以东软为例,据估计,所有无形与有形的投入加起来超过了1000万。这对一些小企业来说不啻是一个天文数字,而且这张证书并非终身有效,每过一年半就得重新接受评估。所以企业在决定通过CMM之前必须要想清楚,是否有足够的能力来承担这笔费用,否则弄不好会因此将企业拖垮。其实对于很多资金少、规模小、没有通过把握的企业来说,应该先听一些项目管理、软件工程、测试等方面的课程,并且在头脑中建立起CMM的思想,找到自己的问题,当有改变的欲望以及能力的时候,再去通过CMM认证。
第一, CMM是帮助企业正规化的一种非常好的方式,真正想做软件,不论是在国内做还是在国外做,都应该达到这个水平。
第二, 认证的过程是纠正企业偏差的过程,而这是企业花钱都买不到的。
第三, 一定不能把CMM认证当作一种考试、一种文凭,而是要看成一项有利于企业今后发展的投资,借此来改变中国软件业长久以来形成的积弊。
——Soft Tech公司副总裁李颖 “18号文件”出台之后,CMM一下子炙手可热,热得已经露出了失控的苗头。正如我们以上所阐述的,CMM确实很重要,但像现在这样大肆炒作,似乎已经偏离了它应该的轨道。主要表现在,现在的炒作集中在企业是否获得了CMM的证书,而非企业在实施后真正发生了哪些质的变化,越来越多的企业把目光集中在了通过CMM认证后的广告效应上。
热潮中的反思
“通行证”、“质量保证书”等类似的字眼成了陪同CMM一起在媒体上出现频率最高的词汇。很多人错误地认为企业只要通过了CMM认证,就可以获得国外的订单,就会生产出质量优异的软件。事实上CMM只能证明企业具备了按照某种标准进行生产的能力,别人也许会因此把你列入考虑范围之内。但一切都是“可能”,而并非“肯定”,也就是说, CMM只是一个必要条件,并不是充分条件。其实,承接外包的软件企业就像一个软件施工队,你想接到活,没有CMM证书是不行的,但有了CMM证书别人也不一定会选你; CMM证书只能证明你能够按照要求去干活,至于最终你能不能把活干好,与前期制定的标准以及具体操作中的很多其他因素相关。
最近我们看到很多企业纷纷立下军令状,声称要在一个很短的时间内通过CMM的某级认证,而有些咨询公司也迎合企业的这种不合理要求。很多媒体则喜欢追问:
“你们什么时候过3级?”看上去所有的人都急于让中国软件业通过CMM的企业数目在短期内可以向印度看齐,变成一个软件大国。从某种意义来讲,设立通过的时间表是件很愚蠢的事,因为企业通过CMM认证是因为企业内部确实发生了质变,而有些改变需要有一定时间的积累,并不是说企业想什么时候完成就可以完成的。而且CMM通过的时间都有国际惯例,经过很多企业的验证,短时间是达不到标准的。企业之所以表现得如此急功近利,根本原因在于他们根本就没有想明白自己要的究竟是什么,而将一纸文书看成了最重要的东西,完全是本末倒置。企业通过CMM的最终目的是让软件企业的管理规范化,使软件开发的过程具备可控性。正如上所言,虽然CMM证书本身对中国的企业是很有好处的,但认证的过程可以让企业得到更大的好处。
企业急于通过CMM还会产生另外一个问题,即在认证的过程中弄虚作假。原本美国对外包伙伴一般只要求通过3级,但从2000年起这个要求变成了4级,根本原因就在于印度在CMM认证过程中产生了“放水”现象。我们又怎么能相信国内的企业在通过CMM认证时都会规规矩矩呢?很多东西进入中国后都会改变,CMM也没有理由例外。这绝不是杞人忧天,其实ISO9000就是前车之鉴。中国是亚太地区通过ISO9000企业最多的国家,但仍然没有成为公认的产品质量强国。这其中固然因为有一部分企业通过之后反而放松了对自己的要求,但不可否认还有一部分企业的认证是以不正当手段取得的。现在ISO9000在中国已经泛滥成灾,失去了应有的权威性。我们不愿同样的事发生在CMM身上,如果真的到了某一天,国外将软件外包的标准都提高到4级或5级(而这是很多中国软件企业根本就通过不了的),实际上就是自己害自己,堵死了自己的路。
企业通过CMM不是为了满足其他公司的要求,而是为了让企业更好地发展,为企业进一步扩大规模打下坚实的基础。如果企业只是为了获得一纸证书而通过CMM,那么就已经本末倒置了,对企业的长久发展反而有害。试想如果企业的态度不够端正,即使通过CMM认证,企业又怎么能够保证它在以后的操作过程当中继续坚持CMM规范呢?CMM只是一个让企业更好发展的规范,不应该成为企业炒作自己的工具,企业需要的是优化自己的管理、提高产品的质量,而非一张CMM证书。