敏捷开发方法和CMMI的关系

   敏捷开发方法和 CMMI(能力成熟度模型集成)通常被人们认为是互相矛盾的。本文的目的是阐明这 两者之间的矛盾不是不可调和的。根据以往我们的经验所得,当将这两者正确使用时,CMMI 和敏捷可以 显著地提高过程性能。
   CMMI 的真相
   过程管理是CMMI的核心主题。过程改进应该专注于达到实际的业务目标和提高客户价值。组织应建立标准过程,配置到所有的项目,基于过去的经验教训修正过程。这个过程应该和团队的做法兼容,否则,团队中的从业者将对过程改进工作非常抵触。
   CMMI 是一个模型,而不是一个过程标准。“CMMI 包含的不止是过程和步骤。”实施 CMMI 取决于组织环境。一个本地保 险公司的内部管理信息系统的开发项目的 过程改进,和为美国国防部(DoD) 服务的 军事承包商的供应系统(包括硬件和软件) 的过程改进应该是截然不同的。例如, CMMI 的一个过程域 - 项目计划。
   CMMI-DEV V1.3 模型的内容如下:
   SP1.1 建立一个估计项目范围的顶级工作 分解结构(WBS)。
   上述两个组织实施 SP1.1: WBS 应该 是完全不同的–前者的 WBS 可能只是一个 半页纸的文档,但军事承包商的 WBS 必 须覆盖很多细节以符合美国国防部标准。 因此,在 CMMI 中过程域以及相应的实施 并不是过程。
   在 CMMI 模型 V1.3 版的过程改进中 也新增了一些敏捷方法的例子。
   敏捷的真相
   “敏捷声明”写到:
   “通过敏捷我们发现更好的软件开发 方法,并帮助别人这样做。通过这项工作, 我们重视以下内容:
   个体和交流重于过程和工具
   运作的软件重于易理解文档
   与客户的合作重于合同谈判
   应对变化重于遵循计划
   也就是说,虽然右侧项很有价值,但我 们认为左项更重要。“很多人读敏捷声明时经常以忽略了最 后一行。认为右侧项不只是价值很少,而 是毫无价值。“敏捷声明”经常被敏捷的支持者当 成项目没有过程,不记录工作,不作计划 的理由。这种解释为敏捷的批评者指责敏 捷的支持者是“没有纪律的散工”的理由。
   成功的敏捷实施包括以下内容:
   小团队(〜10 人或以下)
   一个愿意多参与的客户
   “时间箱”(time-boxed)(〜4 周) 的计划和监控
   同地协作的多功能型团队
   什么时候敏捷实施没有成功:
   缺少过程,包括计划和监控
   缺乏纪律
   敏捷实施中有一个一般原则列表:
   建立产品的整体目标和项目愿景
   管理团队配置需求
   定义和维护团队的接口和约束条件
   (同样适合于产品和过程)
   保持所有产品都有有效的产品集成,验证和确认策略(或服务)
   协调整个项目过程中的风险管理
   团队定期回顾怎样使工作更高效,然后相应地调整他们的行动
   因此,一个团队,接受敏捷方法,还可以 用类似于 CMMI 评估的方法“判断”他们 的敏捷实施。
   两种(敏捷和 CMMI)都有存 在的价值
   CMMI 和敏捷是兼容的。在项目级, CMMI 重点在高等级的抽象定义项目做 些什么,而不是使用什么样的开发方法, 而敏捷方法侧重于项目如何开发产品。因 此,CMMI 和敏捷方法是可以共存的。
   敏捷与 CMMI 的协同效应可以带来非 常多的价值。今天,许多 CMMI 采用敏捷 开发团队的组织架构。相反,CMMI 也可以 有效地引入敏捷,设置一个重复,定时的方 法去使用,这与 CMMI 是完全兼容的。 
   CMMI 和敏捷可以互相补充,创造协 同效应增益。敏捷方法提供 CMMI 缺少的 软件开发指引——尤其是对于一些小型
   如果我们这些来自敏捷和 CMMI 阵营的合作项目。 CMMI 提供了系统性的工程实施,帮助敏捷方法在大型项目中实施。CMMI 还提供了过程管理和实践认证,帮助敏捷方法在任何团队中进行资源配置,保持和不断改进。
   使用敏捷的挑战
   在大型项目中使用敏捷方法时,面临 的主要挑战是保持小团队的步调一致,适时作出调整确保项目成功。“有些时候可以使用所有的敏捷方法, 但一些敏捷的方法是什麽时候都可用。”从这句话中,我们可以看到,敏捷可 能不适合某些类型的项目。例如,在大型、 复杂的项目中,系统工程的观点是很重要 的。CMMI 中的系统工程实践规范可以用 来调整和指导这些类型的项目。
   结论
   敏捷方法提供软件开发指南。这些方法能够很好地用于小团队合作项目。与此 同时, 在大的高风险项目中常常需要 CMMI 提供系统工程实践。CMMI 还提供 过程管理和实践支持,不断改进团队敏捷 方法的资源配置。
   的人理解和接受他们之间的差异并探索其他优势,我们将会寻找到新的方式结合 它们,使它们上升到一个新的高度。
   

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。