CMM/CMMI 与敏捷的比较

上一篇 / 下一篇  2008-04-22 11:12:07

多年来网络上存在一些对 CMM敏捷似是而非的观点,这里纠正一下,望读者朋友和 CMM/CMMI 专家们指正。

张恂认为,CMM 基本上是 15 年之前比较传统、陈旧的东西,现在我们更多地应该拿 CMMI-SW 与 Agile 进行比较。目前有关 CMM/CMMI 与 Agile 比较的最权威的一本名著是:Barry Boehm 与 Richard Turner 大师的 Balancing Agility and Discipline: A Guide for the Perplexed(BAND)。CMMI 到底与 Agile 有何不同?我向国内每一位软件项目经理、架构师和过程改进相关负责、研究人员推荐这本必读之作。

cmm/cmmi 与 agile 的区别主要有:

1、CMM更注重质量,Agile更注重生产率

错。

Agile 至少与 CMM 一样注重质量,只不过它采取了更为轻便的、成本更低的方式来保证质量。生产率并不是 Agile 追求的主要目标,只是一个迭代轻量过程的副产品。

正确的说法是:

Agile 与 CMM/CMMI 都非常注重质量,差别在于一种是轻量方法,另一种是重量方法,分别有各自适用的项目开发环境。

2、CMM强调过程的可观测性,Agile强调可观测的结果(可运行软件)

大致对。

3、CMM注重管理和过程,Agile注重技术和效率

错。

Agile 不但包含敏捷工程技术,也包含敏捷管理和敏捷过程。Agile 至少与 CMM 一样注重管理和过程,区别在于 Agile 采用的是一种更为轻便、灵活、高效的方式。

难道一定要采用重型方法,制定大量的细节行为规范,编写大量的文档,采集大量的数据,才叫管理和过程?轻型方法就不能做好软件研发的管理和过程?显然,这没有道理。

在 Agile 支持者眼中,对于他们所从事的项目开发环境,Agile 是远比 CMM 更为有效、先进和成熟的方式方法。

认为只有 CMM 注重管理、过程和质量,而 Agile 不注重管理、过程和质量,显然是一种错误的偏见。

正确的说法是:

CMM/CMMI 与 Agile 是两种不同的软件研发管理和过程体系,区别在于前者重量,后者轻量;Agile 包含了更多具体、实用的软件工程技术方法,而 CMM/CMMI 提供了更多以数学统计为基础的过程管理和质量控制技术方法。在适用条件下,轻量过程通常会带来了更高的开发效率。

4、CMM注重组织,Agile注重个人

错。

Agile 不但注重个人,也注重团队和组织。敏捷可以分为三个层次:敏捷个人、敏捷团队、敏捷企业。

正确的说法是:

CMM/CMMI 与 Agile 都注重组织、团队,Agile 更强调发挥个人的主观能动性。由于价值观、出发点和适用条件不同,导致两者的具体做法和关注面有所不同。

5、CMM无所不包(Universal),Agile有明确的适用范围

错。

我不知道有什么理由说 CMM/CMMI 无所不包?通常一个号称无所不包的东西,同时也意味着它是一件无用的东西。

事实上,仅管 CMM/CMMI 体系庞大、内容繁杂,但它的目标依然只是作为一个成熟的过程改进和评价模型,必然缺少了软件工程领域的其他许多内容。张恂认为,CMM/CMMI 体系对于国内大多数软件企业、研发机构而言,可能过度成熟了,有点过犹不及。CMM/CMMI 中不包括如何写好需求,如何做好设计,如何写好测试等许多方面的软件工程技术、技能方面的指导,而这些恰好是敏捷的强项。敏捷方法整合了一套轻量的管理、过程和工程技术方法,这是它作为 21 世纪的先进方法体系优于 CMM 的地方。

正确的说法是:

CMM/CMMI 与 Agile 都有各自明确的适用范围。在一些价值观、原则和实践做法上,它们既存在着明显的区别或对立,同时又存在着一定的互补关系。


6、它们都包含了一些软件工程的好的实践(Practices)

对。

CMM/CMMI 作为一个复杂的过程体系,有着大量的参考实践做法。Agile 的实践做法数量要少得多,也更容易操作。两套实践做法集在各自的适用环境下,可能都是最优的。

为什么 CMMI 与敏捷的许多最佳实践看上去差异较大?张恂认为,这是因为它们是两套分别归纳自工作在不同软件工程行业、领域的科学家、工程师群体的成熟经验,而两者的价值观、目的和用途也有着较大的差异。

科学的结论

那么,CMM/CMMI 与 Agile 方法或体系到底有哪些异同,什么是更为科学和准确的说法?CMMI 与 Agile 到底是完全对立,还是可以彼此借鉴,扬长避短、互补融合?...

为解答这一连串有趣而有益的问题,我建议您首先认真地研读 BAND 这本名著,了解国际上前沿的研究成果和结论,并独立思考,大胆地进行实践和尝试。期待您的反馈意见。

(待续)

敏捷 OO 教练 张恂
www.zhangxun.com
2008 版权所有


TAG: agile cmm cmmi 敏捷

引用 删除 icuc88   /   2008-09-28 15:48:35
用什么来保证产品的质量?依赖于人的因素吗?
张恂的个人空间 引用 删除 张恂   /   2008-04-26 10:34:24
原帖由dearChloe于2008-04-25 08:57:51发表
CMM和敏捷,应该是针对不同规模的项目吧?我认为他们是没冲突的. 


其实与规模无多大关系。即便一个人的再小的项目,也可以做 PSP,RUP 或者 XP。

我觉得可能与项目的目标、类型、外部环境等因素有关。

CMM 与敏捷,既有公共的部分,也有对立的部分。在总体开发理念上,敏捷应该比 CMM 更先进。
不断克服困难的兔子 引用 删除 dearChloe   /   2008-04-25 08:57:51
CMM和敏捷,应该是针对不同规模的项目吧?我认为他们是没冲突的. 
谷雨霖 引用 删除 pharos   /   2008-04-22 14:51:51
新近这样的争议很激烈。国人怕盲从,结果还是盲从了。筛选各自利弊才是真!agile对人成熟度要求很高,也许这就是他们最好的结合点吧。
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-11  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 5243
  • 日志数: 15
  • 建立时间: 2008-03-27
  • 更新时间: 2008-08-12

RSS订阅

Open Toolbar