打破CMM的宣传

简·史密斯一走进会议室就知道,办公桌另一边的主管想买一些她不该卖的东西:给主管的软件开发部门编造的评级,这样他的公司就有资格竞标美国国防部的合同。

Smith(化名)是一组经验丰富的IT专业人士中的一员,他们被称为首席评估师,他们走进公司,在一个称为能力成熟度模型(Capability Maturity Model,CMM)的系统下,从1(完全混乱)到5(持续改进)的范围内评估他们的软件开发过程的有效性。她访问的公司想升到2级,但根据一些初步的讨论,史密斯知道这家公司是1级。级别1描述了世界上大多数的软件开发组织:没有编写软件的标准方法,几乎没有预测成本或交付时间的能力。项目管理主要是在午夜后订购更多的比萨饼。

在做了一些初步的细节之后,这位高管斜靠在桌子对面,向史密斯和另一位陪同她出席会议的首席评估师问道:“2级多少钱?”

史密斯回忆说:“那时候我起床离开了房间。”另一个鉴定人留下来了。公司获得了评级。”

自从10年前史密斯与腐败的亲密接触以来,一个好的CMM评估的风险只会越来越高。如今,除了国防部之外,许多美国政府机构都坚持要求投标的公司至少获得CMM 3级评估——这意味着开发组织对整个部门或公司都有一个编码的、可重复的过程。首席信息官们越来越多地使用CMM评估来缩减数十家不熟悉的离岸服务提供商的名单——尤其是在印度——希望获得他们的业务。对于首席信息官来说,这个神奇的数字是5,而没有这个数字的软件开发和服务公司可能会失去美国和欧洲公司价值数十亿美元的业务。

“5级曾经是一个区别,但现在它是一个进入游戏的条件,说:”丹尼斯卡拉汉,高级副总裁兼首席信息官在美国卫报人寿保险公司话虽如此,我们可能会考虑一些3级或4级初创企业,但在我与他们做生意之前,他们还有很多更令人信服的事情要做。他们将处于不利地位。”

随着首席信息官越来越依赖外部服务提供商来帮助软件项目,一些人开始将CMM(及其新的、更全面的继承者,CMM集成,或CMMI)视为对软件提供商的认可标志。然而,如果首席信息官们购买了一家服务提供商的服务,声称seal没有进行自己的尽职调查,那么他们可能会犯一个价值数百万美元、威胁职业生涯的错误。

这是因为软件供应商经常夸大他们的评估,导致首席信息官们认为,整个公司都在一定程度上得到了评估,而公司只有一小部分受到了检查。一旦供应商被评估到一定的水平,就不需要他们再次测试自己——即使他们的变化非常大或者比第一次评估时大得多。他们可以继续声称他们的三坐标测量机水平永远。

更糟糕的是,有些人只是撒谎,说他们有一个CMM评估,而他们没有。评估人员说,他们偶尔听到一些同事,他们的许可证被吊销,因为他们的表现不佳或在进行评估时公然作弊。

然而,想要检查CMM评级声明的首席信息官们并不走运。没有一个组织能够证实这种说法。此外,软件工程研究所(SEI)开发了CMM,主要由国防部资助,它不会发布任何关于被评估公司的信息,即使评估人员需要向研究所提交他们的最终评估记录。

当美国和欧洲的公司蜂拥到海外寻找从事开发工作的公司时,他们首先需要了解CMM评级的真正含义。然而,IT行业分析师和服务提供商自己表示,很少有首席信息官愿意提出关键问题。”甚至没有10%的客户要求我们的CMM证明,”ICICI Infotech Inc.的董事总经理兼首席执行官V.Srinivisan说,ICICI Infotech Inc.是一家声称获得5级认证的软件服务提供商他们不可避免地认为这是理所当然的,他们不会问细节。”

那些不问细节的首席信息官们将无法区分那些按照CMM的初衷使用CMM的公司——作为一个强大、复杂的持续内部改进模型——和那些仅仅是通过行动来获得业务资格的公司。仅凭CMM的数量购买,就可能让首席信息官们陷入同样的问题,这些问题首先导致他们将目光投向海外:高成本、低质量和项目时间表支离破碎——更不用说美国数千个IT工作岗位的流失了。

“当你谈论一些简单的事情,比如一个数字,涉及大量的钱,有人会作弊,”瓦茨汉弗莱说,他是CMM开发的负责人,目前是SEI的研究员如果首席信息官们没有足够的知识来提出正确的问题,他们会感到困惑。”

坐标测量机从何而来

CMM是对美国空军在20世纪80年代对其软件购买过程感到沮丧的直接回应。美国空军和其他国防机构已经开始着手进行越来越多的开发工作,并且很难确定要挑选哪些公司。匹兹堡卡内基梅隆大学(carnegiemellon University)赢得了创建一个组织SEI的投标,该组织旨在改进供应商审查流程。1986年,IBM聘请了前软件开发主管汉弗莱(Humphrey)参与这项工作。

汉弗莱立刻断定空军追查的问题是错误的。”他回忆说:“我们专注于确定有能力的人,但我们看到(空军)所有的项目都遇到了麻烦——让谁来做这项工作无关紧要。”所以我们说,让我们把重点放在改进工作上,而不仅仅是建议上。”

1987年,CMM的第一个版本是一个调查问卷,旨在确定投标公司内部的良好软件实践。但调查问卷的形式意味着,除了填写表格,企业不必擅长任何事情。”“为了测试而临时抱佛脚是很容易的,”威斯汀豪斯国防承包公司(Westinghouse)前开发小组负责人杰西·马塔克(Jesse Martak)说,“我们知道如何使用这个系统。”

因此,SEI在1991年对其进行了改进,使之成为软件开发最佳实践的详细模型,并培训和授权了一组首席评估师来验证公司是否真的在做他们所说的事情。首席评估师领导一个团队,团队成员来自被评估的公司内部(通常是三到七个人,取决于公司的规模)。

他们一起寻找证据,证明公司正在跨公司软件项目的“代表性”子集(通常为10%到30%)实施CMM的策略和过程。该团队还对项目经理和开发人员进行了一系列的秘密访谈——通常是在一到三周的时间里,同样,根据组织的规模——来验证真正发生的事情。对于团队内部的人来说,这是一项艰巨的任务,因为他们被要求对同事吹毛求疵。

一位要求匿名的首席评估师说:“这对(内部)评估团队来说可能是非常有压力的。”他们有相互矛盾的目标。它们需要客观,但组织希望在某个级别上得到评估。”

软件项目咨询公司processinc.的首席评估师兼合伙人戴维•康斯坦特(David Constant)回忆说,他曾评估过一家公司,在那里,所有的开发人员都接受了管理层的指导,要说什么我不得不停止面试,要求临时见人,在每次面试开始前告诉公司我想和谁谈谈可悲的是他们不需要指导任何人。不管怎样,他们很容易就能达到他们想要的水平——他们非常优秀。”

新模型比原来的问卷更难开发。在1991年,西屋公司的马塔克说,他告诉管理层,“这是一个不同的球赛现在。如果你有一个好的首席评估师,你就不能假装出来。”马塔克带领他的团队进行了4级评估,并最终自己成为了首席评估师。

CMM本身的深度和智慧是软件开发专家所不质疑的。根据传闻证据,如果公司真的采用了它,并向更高的层次发展,他们将更好地为客户服务。但是一个高的CMM水平并不是质量或性能的保证——只是过程。这意味着公司已经创建了监控和管理软件开发的过程,而CMM级别较低的公司没有这些过程。但这并不一定意味着这些公司能很好地使用这些流程。

SEI业务发展总监杰伊•道格拉斯(Jay Douglass)表示:“拥有较高的成熟度可以显著降低聘用(低成熟度公司)的风险,但这并不能保证任何事情。”你可以是一个5级组织,生产可能是垃圾的软件。”

推理公司(Reasoning Inc.)是一家自动化软件检查公司,最近对89个应用程序进行了一次调查,调查结果证实了这一评估。平均而言,在软件中,那些在CMM级别上识别自己的公司和那些没有识别自己的公司的代码缺陷数量没有差异。事实上,研究发现,5级公司的平均缺陷率高于其他任何公司。但是,当它将代码发送回开发人员进行修复,然后再次测试时,推理确实看到了不同。第二次,来自CMM公司的代码改进了,而来自非CMM公司的代码没有改进。

广告中的真理

关于虚假声明的故事比比皆是。长期担任首席评估师、前SEI官员的罗恩·拉迪斯(Ron Radice)曾在芝加哥一家公司工作,该公司在2003年被一家谎称拥有CMM评级的离岸服务提供商欺骗他们说他们是4级,但事实上他们从来没有被评估过,”Radice说,他拒绝透露有罪提供者的名字。

如果做得正确,CMM是一项昂贵、耗时的工作。一个公司从1级到5级的平均时间是7年,而构建一个真正健壮的、可重复的软件开发过程以及项目和度量跟踪的费用是CMM评估费用的许多倍(仅此一项就要花费10万美元)。对于缺乏资金和员工的小公司或初创企业来说,在构建一个能够接受5级评估的软件过程时放弃业务似乎比捏造一个数字要危险得多——尤其是当你的客户不太了解这个数字的时候。而那些已经拥有高CMM水平的成熟公司可能不想冒着再次定期评估带来的中断、成本和潜在失望的风险。

SEI的官员否认公司夸大或谎报他们的CMM索赔。

“没有人会宣称‘作为一个组织,我们是CMM的3级,’”SEI的Douglass说他们会说他们是这个开发中心或那个产品组的3级。”