近来在InfoQ上陆续翻译了纪念回顾敏捷十年的文章,在CMM/CMMI/Agile都有兴趣的我不由得想到从1991年CMM1.0发布之时算起,今年正好也是CMM/CMMI的20年。

对比看下两者的历史,也许会有些意思。

SEI1986年在美国国防部资助下开始研究能力成熟度模型(Capability Maturity Model,简称CMM),于1991年正式推出了软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM),并发布了最早的SW-CMM 1.0版。经过两年试用之后,1993年SEI正式推出SW-CMM1.1版,这个就是CMM成名的版本,缺省说到CMM,指的就是这个版本,这个版本一直用到了2006年。
CMM 2.0草案于1997年制定(未广泛应用)。

SEI于2000年12月公布了能力成熟度整合模型(Capability Maturity Model - Integrated, CMMI),主要整合了软件能力成熟度模型(SW-CMM)2.0版,系统工程能力模型(SECM)和整合产品发展能力成熟度模型(IPD-CMM)0.98版。
CMMI-SE/SW 1.1(CMMI for System Engineering and Software Engineering)于2002年1月正式推出,其中覆盖了IPPD/SS(Integrated Product and Process Development/Supplier Sourcing)。

CMMI V1.2 于2006年推出,首先推出的是CMMI-DEV, CMMI从V1.2开始,成为Product Suite,包括了三大方面,分别是 1.Product and service development — CMMI for Development (CMMI-DEV), 2.Service establishment, management, and delivery — CMMI for Services (CMMI-SVC), and 3.Product and service acquisition — CMMI for Acquisition (CMMI-ACQ). 原来的CMMI V1.1主要升级到了 CMMI-DEV V1.2。现在缺省说到CMMI,其实指的是CMMI-DEV。

CMMI V1.3 在2010年11月推出,三大方向的V1.3同时发布。
CMMI DEV V1.3在吸纳目前业内的一些好的实践的同时,还吸纳了ISO以及PMI的一些新的成果。其主要变化包括:

1、  吸收了敏捷软件开发的实践。在配置管理(CM)、技术解决方案(TS)、产品集成(PI)、验证(VER)、确认(VAL)、需求管理(REQM)、质量保证(PPQA)等过程域中,对敏捷软件开发相关一些实践作了说明;

2、  对高成熟度的4个过程域作了较大优化,以“反应业界的最佳实践”。感觉现在这几个过程域的实践不再像之前那样高不可攀,很多解释似乎不再像从前那样机械,而且把过程改进目标与组织商务目标相联系,增加了一些具体的例子,对实践有一定指导作用。同时,该版本中删掉了原来高成熟度等级中的共性目标。连续型模型中只包含了3个级别,不再有高成熟度等级。

3、  更加重视需求管理:该版本将需求管理(REQM)过程域从工程组(Engineering)移至项目管理组(Project Management)。

4、  更加关注结果。这表现在一些名词的提法,如:
 “管理过程(Manage Process)”变成“管理项目(Manage Project)”;
 共性实践GP2.6的标题从“管理配置项”更改为“控制工作产品”,虽然内容基本没有变化;
 共性实践GP2.9 “客观评价依从性”中将原来“客观评价过程的依从性”,更改为“客观评价过程和工作产品的依从性”;

5、  吸纳了ISO、PMBOK等的一些最新成果。例如:
 原来的“需求”变成了“功能需求和质量属性(Quality Attributes)”;
 增加了架构评审的一些实践
 更加强调各过程与组织商务目标的关系

6、  其他:删除了所有IPPD(Integrated Product and Process Development)的相关内容。

敏捷十年的情况在 http://www.infoq.com/news/2011/02/agile-manifesto-10-years-series,infoQ中文站提供了多篇译稿,比如
Liz Keogh:敏捷十年——对失败的预言,以及预言的失败 http://www.infoq.com/cn/articles/agile-prophecy-failure
回顾《敏捷宣言》发布以来的10年 http://www.infoq.com/cn/articles/10-years-agile-manifesto
敏捷10年发展史 http://www.infoq.com/cn/articles/agile-10-years-on
偶然成为敏捷人士:个人回望《敏捷宣言》发布十年 http://www.infoq.com/cn/articles/Accidental-Agilist
敏捷的十年危机 http://www.infoq.com/cn/articles/agile-teenage-crisis

程序员杂志2011年9月刊的封面是一副等高线地图,敏捷的各个流派(流派这词并没有达成共识,在这里就是指代诸如Scrum、UX、TDD、Lean等等)成为一个个的山头。
在《敏捷的十年危机》提到 “对于敏捷和精益社区自身而言,无政府主义阻碍了更加系统的知识体系机构的形成。”,“社区的无政府主义无助于组织出知识体系”
作者最后说,敏捷运动在某些方面有点儿像一位少年:非常的自我意识,对着镜子不断地检查其外貌,接受少数批评,只对同龄人感兴趣,排斥来自过去的全部所有智慧,只因为那来自过去,采用时尚和新的行话,有时狂妄而傲慢。但我毫不怀疑它会进一步成熟,对于外界变得更加开放、更加深思熟虑,并因此变得更加有效。我知道我要在以后的雪鸟会议上打算做什么了,那就是找到比这次会议更多的大象。

敏捷软件开发宣言和原则在十年来没有变化,多位大佬提出修订宣言,但没有达成共识,大佬们各自组合,提出了更多的宣言(参见《不堪重负的宣言》,http://www.infoq.com/cn/news/2011/08/manifesto-overload)。 10年来,敏捷方面的书本估计在国内出版的就超过了100本,让程序员们感到压力好大,让程序员的领导们如何来看。

CMMI正在拥抱变化,而且总是维护成为系统又和谐的知识体系,而且还注意文字的总篇幅,CMMI-DEV V1.3英文全文不超过500页,反而比V1.2少了,阅读的负担从篇幅上来也不重。不过,由于CMMI的文字讲究模型的广泛适用性,目标和实践等文字往往是经过高度抽象的,理解起来稍有点困难,可喜的是 CMMI提供了诸如 典型工作产品,说明,示例等等,较之原来的CMM,可读性已经好多了。当然就算这样,阅读起来也要花费不少时间,还有一个选择是参见 3天的CMMI-DEV培训,只比CSM培训多一天,可以帮助快速的学习CMMI-DEV。

CMM-DEV V1.3积累了数百位全世界各地的专家近20年的经验,其本身的演进就是符合敏捷的,其内容已经远不是当年主要为了美国国防部服务。

对于入门者,面对不到一页纸的敏捷宣言和原则,和阐述敏捷的100多本书,笔者推荐在阅读第4本敏捷类书籍前,阅读CMMI-DEV V1.3。

对于敏捷实践者,已经阅读了多本敏捷类书籍,推荐马上阅读CMMI-DEV V1.3,可以更好的理解软件开发的全景和上下文,对在选择各种敏捷实践做法时会有更深入的理解和更全面准确的判断,对开发组织全面建设也会有更整体的理解。

参考:

http://www.mypm.net/blog/user7/YvonneJenny/archives/2011/82995.html

http://www.sei.cmu.edu/library/assets/cmmihistory.pdf

CMM/CMMI的20年和敏捷十年相关推荐

  1. (转)PMBOK/CMM/CMMI/OPM3

    1968年为了解决大型软件项目的软件危机,北大西洋公约组织(NATO)提出了"软件工程"这一术语,以改进软件开发设计过程. 1969年美国项目管理协会(PMI)组织成立,从1981 ...

  2. CMM,CMMI,PSP,TSP

    CMM 培训 什么是CMM? CMM (Capability Maturity Model) 软件能力成熟度模型 -- 国际公认的评估软件过程成熟度的行业标准 由美国卡内基梅隆大学的软件工程研究所(S ...

  3. 21世纪20年代改变世界的十大趋势

    来源:美国银行 美国银行发布了新报告"21世纪20年代改变世界的十大趋势". 全球化高峰:世界范围内劳力.货物和资本自由流动将终结.在这种趋势下,赢家是本地市场和实物资产,而输家则 ...

  4. C++ 20 是近十年来影响最大的一个版本,新的特性众多

    C++ 20 是近十年来影响最大的一个版本,新的特性众多,包括: 模组(Modules) 协程(Coroutines) 标准库 Concepts 的概念 范围(range) constexpr支持:n ...

  5. 什么的出现标志着电子计算机的到来,20世纪四五十年代以来,人类在原子能、计算机、航天技术、电力机械等方面取得了重大突破,标志着新的科学技术革命的到来。——青夏教育精英家教网——...

    关于中国的科学技术的发展,请阅读以下材料: 材料一.西方文艺复兴时期的"科学方法论之父:弗兰西斯·培根曾作过这样的评价:"我们应当观察各种发明的威力.效能与后果,最显著的例子便是印 ...

  6. CMM已经落伍了,敏捷才是王道

    首先强调一下,敏捷和有没有文档一点关系都没有.我只是对于CMM的那些文档感觉有些浪费. 看看那些文档,看看那些流程.想想那些伟大的软件作品,哪个是用CMM开发出来的? 作为测试工程师,程序员的你在CM ...

  7. cocos2d-iphone之魔塔20层第十部分

    这部分教程源代码连接 今天我们要在我们的主场景中添加两个重要的精灵,就是楼层传送和怪物查看. 首先我们要在Game01.h中添加: //风之罗盘图标 CCSprite *floorFly; //洞悉权 ...

  8. 中国通过CMM/CMMI第五级认证的企业

    1.摩托罗拉中国软件中心   GSG China    于2000年9月通过CMM第五级认证,是中国首家获得CMM第五级认证的企业. 2.沈阳东软股份有限公司       东软是中国第一家上市的软件企 ...

  9. [转]敏捷十年简史回顾——影响敏捷开发历程的27件事

    原文地址:http://sd.csdn.net/a/20100914/279410.html ===================================================== ...

最新文章

  1. [C#1] 9-委托
  2. 超强、超详细Redis数据库入门教程
  3. python怎么安装包-怎么在windows下安装python第三方包
  4. 如何使用cmd进入打印机选项_cmd调用设备和打印机
  5. 爬虫笔记12完结篇实例:股票
  6. 调查谋杀案以换取Obra Dinn
  7. 慢系统调用 与 信号
  8. kettle使用教程(超详细)
  9. 转载:LTE中的各种ID含义
  10. java 专业英语单词_java_专业英语单词_力荐
  11. OpenGL - PBR
  12. 从一夜爆红到饱受争议,蚂蚁金服的相互宝如何闯关?
  13. 让Linux内核不再卡死在DHCP请求上
  14. mysql load 导入csv或者unl 如果文件跟表的字段不一致的情况
  15. Novell推出可替代微软的桌面应用软件包(转)
  16. java语言TAM机程序代码(基础版)
  17. Python中inplace参数
  18. IDEA打包springboot项目为war并发布到tomcat服务器
  19. js+css+html 抽奖页面
  20. 计算机测试是指,考驾照电脑测试是什么

热门文章

  1. Java 多线程模拟卖票
  2. docker 安装mysql_docker学习4docker安装mysql环境
  3. excel查标准正态分布_用EXCEL简易制作正态分布图
  4. 鲜为人知的DC-DC外围电感选型方法
  5. oracle分组_MySQL分组取TOP,实现Oracle的ROW_NUMBER函数的功能
  6. 一只青蛙跳向三个台阶_青蛙跳台阶
  7. lpop 原子_【concurrent】面试重灾区之原子操作你有必要了解下
  8. macbook所有型号大全_提高MacBook电池寿命的15个技巧
  9. linux系统无法用命令行,无法在Linux操作系统上从命令行启动Kitchen Pentaho作业
  10. c语言程序设计填空带答案,c语言程序设计填空题及答案复习用精编-20210414010859.docx-原创力文档...