UML软件工程组织

神坛之上的CMM——解析CMM和中国软件
出处:有效软件工程实践论坛 作者:行者无疆
  CMM/CMMI是中国软件外包走向世界的不二法门?——自欺还是欺人?

  能够帮助中国的软件外包企业走向世界一直是咨询公司们不遗余力推广CMM/CMMI的一个重要的说词,那么果真是这样吗?

  目前外包市场上主要分为“对日外包”和“欧美外包”,日本人对我们中国人好像从来就不怎么相信,给我们的外包绝大多数都是比较初级的编码工作,有些甚至将厚厚的伪码都拿来过来,我们做的基本上都是些体力活,同时承接对日外包的公司大多有日资的背景,且大多都延习了日本企业的那一套管理和协调机制。

  相对来说欧美人对我们国人的期望要高一些,不过本人曾经有幸在境外参加了一个旨在为国外发包商和国内软件企业牵线搭桥的科技展会,接触了不少有意向中国软件公司发包的外商,他们最关心的是两个事情,一个是对知识产权的保护,另一个则是人力资源上是否具备和甲方进行有效沟通的能力。关于开发的管理,有一个老外的话让我感到深深的悲哀,他说,如果在美国,一个企业如果拿出任何能够证明其公司管理能力的资料,他都不会有任何怀疑,而在中国:"No,I only believe my eyes!"

  有一个很有趣的事例是,国内有一家非常知名的CMM咨询公司的老板的一个美国朋友应邀来到中国,希望为其在美国的一个大项目在中国寻找开发商,该公司拥有大量的实施过CMM/CMMI的客户,其中不乏专门从事软件外包的,按说在其中寻找一个满意的开发商应该是唾手可得,然而事与愿违,所有的尝试都在第一个环节就不得不终止,原因非常简单,因为所有的候选企业都没有派出一个能在技术、业务、管理和商务层面和美方有效沟通的人来,更有甚者,有些公司干脆拿了一大堆的中文资料就来和老美沟通,结果可想而知。最后,这位老美不得不放弃了这个计划。

  显然这一切都和CMM无关。

 软件过程改进及其基础构建——我们在空中楼阁中舞蹈

  所谓的“软件过程改进”,应当按照在一个循序渐进和有序的过程进行,当初SEI制定CMM的应用对象都是非常大型的航天和军工软件的承包商,这些企业基本都具有相当的规模和良好的规范化基础。显然,对这样的企业实施基于CMM/CMMI的软件过程改进是有意义的。反之,如果是一个完全缺乏规范管理的软件公司来说,连基本的软件工程规范和质量理念都不存在,盲目追求所谓CMM的某个级别只能是空中楼阁。

  不幸的是,这种完全管理无序的公司在国内实施CMM/CMMI的企业中还不是少数,显然,这也并不是SEI当初制定CMM所考虑的范畴。

  对于这样的企业,首先应该进行的并不是去运行什么基于CMM/CMMI的软件过程,而是扎实的完成软件过程的基础构建(这也是过程跃迁的一个重要组成部分),甚至非常有必要在实施CMM/CMMI前在企业内部引入PSP/TSP,然后在循序渐进的进行有针对性的软件过程改进。

  然而,非常遗憾的是,本人看到不少这样的企业在短短不到一年的时间里就能通过所谓的CMM或CMMI三级(现在,国内企业对二级大多已经觉得不过瘾了,往往一上来就直接上三级)评审,效果如何可想而知。实际上这只不过是一场由咨询公司导演,软件企业主演的“评审”秀而已。

  CMM/CMMI中有一个最为核心的思想就是:只有好的过程才能导致好的结果,上述的现象倒是该思想的一个非常好的反面实例。

 好的过程=好的软件?——瞎子摸象故事的现代软件工程版演绎

  CMM/CMMI最原始的出发点是重过程管理而轻工程方法,这对于最初的CMM应用对象--美国军方软件的承包商或许是有其合理性的,但是对于其他众多的软件企业,由其是国内的软件企业就并不是那么的合理了,个人认为国内的软件的特点是规模有限,业务领域较广,技术周期较短,软件工程基础较差,对于这样的企业,有效的工程方法往往比有效的软件过程更能让企业获得即时的效果。

  软件开发管理是一个非常复杂的系统工程,其涉及到企业技术和管理的方方面面,而且其各个因素又是相互关联和制约的,不均衡的过分强调其中的某一个或某几个方面都是不科学的,也是难以取得良好效果的。

 CMM实施——削足适履的痛苦旅程

  CMM/CMMI的初期培训往往是最令人愉快的,参与者们在了解了大量以前没接触过的知识后往往对CMM燃起了高昂的热情,但是随着进入过程定义和项目的试运行就会渐渐发现身陷没完没了的文档编写和无休无止的各种会议,加班成了家常便饭。这时候,早先的热情早已荡然无存,而早先咨询公司宣称的能为企业带来无比效益的“先进过程”也成为了一件非常不合尺寸的紧身衣.....等咬紧牙关捱到了预评估,结果往往是当头一棒——和要求相距甚远,而正式评估的日子又已经迫在眉睫,怎么办?于是乎大家发挥国人的应试特长,将CMM正式评审变为一场期末考试,这时候,咨询公司往往扮演"枪手"的角色,将评估中可能遇到的问题及其答案罗列出来,而软件公司中的相关人员则将这些答案牢记于心。最后,在通过一场大家心照不宣的所谓“评估”,终于大功告成。

 CMM评审——对皇帝新衣的自我陶醉

  在上海某个高科技园区,有一个软件公司的外墙上高高的悬挂着一块牌子——"CMM5级企业",这在专业人士看来恰恰是对CMM本质的曲解,非常遗憾这种曲解竟然是发生在一个通过5级评审的企业。

  SEI在他的网站上明确声明:The SEI does not "certify" organizations. 即SEI不对任何组织进行"认证",它仅仅通过获得其授权的评估师们对企业的过程能力进行"Appraisal(评审)"

  CMM本身只是一个可以被用来评估企业能力成熟度的过程框架,而并不是什么“标准”,CMM的重点在于软件过程的改进而不在于什么“评审”,至于所谓的“认证”那更是扯不上边的事情。

  所以当我们舍本求末,将CMM作为一块可以证明其高贵身份的金字招牌到处炫耀时,令我们不由得联想起安徒生笔下的那个酷爱新衣的光屁股的皇帝

 结论

 CMM/CMMI本身是一套非常有价值的过程模型,但简单的将其图腾化却是整个中国软件行业的悲哀,反观CMM/CMMI的发源地——美国,除了和军方有业务往来的软件企业会寻求通过CMM/CMMI评审外,其他多数的企业并不怎么在乎是通过了CMM/CMMI的三级还是四级,象是著名的微软、甲骨文等知名企业都没听说过和CMM/CMMI沾过边,但这也丝毫不影响以他们为代表的美国软件企业在整个行业中独领风骚。

 所以,我们认为,只有有效的而不是最权威的,才是最好的。


版权所有:UML软件工程组织