CMMI研究院(CMMI Institute, 本文中用CI表示)经过多年努力,CMMI2.0终于要在三月底正式发布了。从最初拟用“新一代CMMI”到最后选择更符合大多数人习惯的CMMI 2.0,就能看出,1.3到2.0绝非一个修修补补的升级,而是一个有突破性的完善。
虽然本人也签了CI的保密协议,但在不违反保密要求的前提下可以和大家聊聊我对CMMI2.0的看法。CMMI 2.0将于3月底正式对外发布,从2019年1月开始,CI将正式接受2.0的评估结果。
首先,CI为什么要花这么大的精力做这次改进呢?其实它和任何系统升级的原因都差不多,无外乎是下面四个理由:
- 老版本问题已经无法忽视
- 新技术、新方法带来了完善的机会
- 新的用户需求的压力
- 升级带来的经济好处
这次升级给CI带来什么样的经济利益就不是你我操心的事了,咱们这里只聊技术。我认为这次CMMI升级的原因主要可以从两个方面来看,一是试图从根本上解决以往CMMI版本里的问题;二是在新版本中充分体现经过验证的以敏捷为代表新的产品开发实践。后者大家容易理解,而老版本的问题是什么则不是那么容易回答了,不同的人会给你不同的答案。
价值在哪里?
长期以来,我一直认为CMMI1.3包括以前版本的一个最核心的问题是:没有非常明确的体现价值驱动的原则!虽然价值在模型和评估方法中零零散散会提到,但在数百页的模型描述和评估驱动的模型使用中基本属于被淹没的。我总会听到这样那样对中国混证型评估的抱怨,但我们其实忽略了一个根本:Sponsor(企业老总)理解CMMI的价值、定位和正确的使用方法吗?如果在他眼里,CMMI无非就是个资质,有这个竞标时可以加几分,那么用最小的代价获取它也在情理之中,很多评估变成临时套套模板写写文档,评估师和评估成员一起炮制的快手菜。有多少企业老总知道,按模型要求评估得到最重要的产出物应该是什么?那是对产品开发过程全面、准确的诊断及后续具体、可操作的改进建议,而不是一张三级或五级的证书。
能在企业里做老大的肯定是聪明人,既然要养活一帮兄弟,那么追求利益最大化自然是老大做决策时最重要的考量部分。由于模型在过程域、目标和实践的描述中没有非常醒目的表达其追求的价值目标,使得企业老板、开发团队、质量团队、评估咨询团队很难同时关注到真正的改进点上。这导致对CMMI改进没有正确的期望,老总自然不愿意用公司强人介入到CMMI改进中。试想一个从来没做过测试的人,怎么能写出一套可用的测试流程,方法,标准呢?从网上,其它公司,教科书中照搬的东西怎么能适用于有独特特点的组织呢?这样的CMMI改进,最终都会变成了一场心照不宣的表演。当然也不是全无收获,起码我看到很多相关人员在编排这耍花枪过程里还是能像模像样的能打上一套南拳或来套北腿,个人战斗力有显著提升。
CMMI2.0在这方面有了很大突破,它全面系统在各个层次强调了模型内容的意图(Intent,听过我培训的人应该很熟悉这个词)和价值(Value)。当然实施企业需要将其对应到自己组织的场景,使之具体化。CMMI2.0通过引入Performance Management实践域,直接明确要求CMMI的改进必须是痛点驱动的改进。必须识别、改进痛点问题并度量效果。我想CI也会同意我对CMMI的定位:模型建议的实践是做我们需要的事,因为它能帮助我们解决问题,带来利益回报。
CMMI2.0不仅让用最小代价实现模型实践价值更加合法,而且明确了这是我们应该追求的目标,这是CMMI2.0一个有里程碑意义的改进。
这里和大家分享下当年参与开发CMMI模型的40个企业和组织:
ADP Inc., AT&TLabs, BAE Systems, Boeing, Comarco Systems, Computer Sciences Corporation,Defense Logistics Agency, EER Systems, Ericsson Canada, Ernst and Young,General Dynamics, Harris Corporation, Honeywell, IBM, Institute for DefenseAnalyses, Integrated System Diagnostics, KPMG Consulting, Litton PRC, LockheedMartin, MitoKen Solutions, Motorola, Northrop Grumman, Pacific Bell, Q-Labs,Raytheon, Rockwell Collins, Science Applications International Corporation,Siemens, Software Engineering Institute,SoftwareProductivity Corporation, Sverdrup Corporation, TeraQuest, THALES, TRW, U.S.Federal Aviation Administration, U.S. National Reconnaissance Office, U.S.National Security Agency, U.S. Air Force, U.S. Army, and U.S. Navy.
从这份名单我们可以看出初版的CMMI是一个彻头彻尾的美国货,里面没有中国的影子。我们也看不到以互联网为代表的新经济体的参与,美国军工企业完全主导了CMMI的方向。CMMI定位是业界优秀实践的集合,考虑到其广泛的使用范围,这份名单的代表性明显是非常有局限的。这些局限在一定程度上加深了中国企业使用CMMI的难度。
介入CMMI2.0的企业和组织范围则有广泛的代表性,值得一提的是,在2.0的评审期间,许多中国CMMI主任评估师和讲师积极参加了评审,让CMMI的改进有了中国的声音。2017年下半年,我也有幸在中国领导了一次全球规模最大的CMMI2.0试点评估,为2.0评估方法提出一些改进建议。
CMMI2.0另一重大变化是在实践级详细描述了以Scrum为核心的敏捷环境下的CMMI实施,这对国内众多通过敏捷实施CMMI的软件组织来讲是无疑是个利好消息。
当然企业仍然还可以单独选择使用CI的四个模型(开发、服务、采购、人力)中的任何一个,CMMI2.0对四个模型做了整合,加入了Safety和Security的内容。新版本引入了全新的能力领域(Capability Area)的概念。企业可以根据需要,在覆盖4个模型的12个能力领域中做选择,确定改进范围。这将有助于组织建立更加全面的,融合一体的管理体系。
CMMI1.3和以前版本中过程域(Process Area)的说法在业界造成了一些混乱,“过程域不是过程”是每次培训都要强调的,但讲起来总是感觉有点怪异。CMMI2.0将其改为实践域(Practice Area)在我看来是一个聪明的改动。从评估角度来说,这有助于区分模型的要求和实施的选择,这是我观察到的评估中存在的一个比较普遍的问题。以后我会专门就这个问题写个帖子和大家探讨。
CMMI2.0删除了通用目标和对应的通用实践,这大大减少了模型中内容的重复问题。通过完善一些相关实践域,模型也保证了通用目标有等值替代。
从内容来看,CMMI2.0的描述更加接地气,通俗易懂,这易于大众的理解,对消除各种对模型的偏见大有益处。
本人很认可CMMI2.0评估方法的主要改进,新的方法在大大减少了评估准备工作量的同时,也致力于消除仅用花瓶项目做评估的方式。原来的PIID表的使用虽然方便了评估组的工作,但同时也造成了这样一个现象:由于没有真正理解模型实践的目的和要求,从而产生大量低价值,反常识的文档。这些过程成了几个评估项目的专属。这也是很讽刺的现象,如果你的过程真的能够帮助把控质量,提高开发能力,那为什么不要求其他项目也遵循呢?
去年的试点评估,让我有机会从头到尾走了一遍。我的结论是对于真正用CMMI指导改进的组织,它比旧的评估方法有了很大的提升。(后面有时间我会写个经验体会文章和大家分享。)评估组和被评估企业可以把更多精力花在真正有价值的活动中。但是2.0的评估方法要求评估组成员需要真正理解模型(Intent!),真正理解被评估组织的项目特点。虽然CMMI2.0不能保证消除CMMI在中国落地以后出现的各种问题,但它会更好支持致力于改进的组织的努力,帮助我们让Watts Humphrey的软件梦想也在中国通过自己的形式实现。
CMMI2.0也有一些不足之处,如对高成熟度内容的完善做的不够。一些新一代精益开发实践,和新的方法(如DevOps)也没来得及融合到升级的模型中去。新的评估方法也有待通过进一步的试点不断完善。但总的来讲,2.0应该算是顺应时代发展,工艺有更新,口感较之前丰富的新酒。
去年我参加了CI组织的年会,我发现在年会上交流过的国外评估师,几乎都在中国做评估。评估最多的CI合作伙伴都在中国,中国的评估个数已经超过了总数的50%。根据CI的数据,这几年总评估数年年在增加,但如果不算中国的评估,评估总数则是逐年下降。可以不客气的说:中国实施CMMI的企业那就约等于汪半壁的国内摇滚市场占有率啊!极大的支持了CI因为这个原创模型而存在的版权公司!
希望我们大家一起努力,量体裁衣,消除卖家秀和买家秀的差别,用好CMMI这部好经,在即将到来的CMMI2.0时代,让中国软件上一个新台阶。
推荐阅读
1. CMMI三十年
2. 那些关于CMMI的坊间传言
3. 敏捷环境下CMMI评估应关注的两个问题
4. CMMI模型高成熟度的硬伤