1.组织关注焦点
CMMI – 关注组织级过程能力,所有的项目和团队的产品或服务的开发都将从组织过程能力提高后受益。
Agile – 焦点是项目和团队,即使组织不成熟,项目和团队仍然可以成功。
2.管理
CMMI – 系统化的管理思想和模型应用,特别是集成了各种计划的项目管理,包括风险管理。
Agile – 管理更多起的是教练作用以消除壁垒,敏捷的这种方法也可以延伸到大项目管理中。
3.信任
CMMI – 一些CMMI的实践和方法制定的目的是假设了一种低信任环境存在的可能性。
Agile – 敏捷团队中成员在组建新项目前已经合作的很好,敏捷团队是一种高信任的环境。
4.计划
CMMI – 计划在是组织标准定义上加上项目目标的自定义过程,强调完整详细计划,虽然不否认可以迭代。
Agile – 强调计划是分层次的,包括产品计划,项目计划和每次开发迭代计划,每次迭代版本的计划一般会在迭代前做的很细化,而且敏捷强调看板式进度可视化,弱化网络图和关键路径等方法。
5.市场和用户假设
CMMI – 在已经稳定和成熟的市场将发挥最大作用。如标准的软件外包等。
Agile – 在已经紧急临时或不成熟的市场和需求变化较频繁的情况下将发挥更大作用。
6.设计假设
CMMI - 强调产品架构已经确定和创建,处于一种稳定的状态以减少估算不确定性。
Agile – 架构往往会在敏捷开发过程中根据需要进行灵活的裁剪。
7.学习
CMMI – 学习无处不在,包括组织级和项目级,包括计划,需求,开发,评审,复盘等各种活动。
Agile – 发生在项目级,典型的是由底向上的问题驱动性学习,虽然有效但是并不系统。
8.愿景
CMMI – 期待的是组织和项目长期的过程改进和能力提升,而不是一个项目或版本的改进。
Agile – 更多关注的是当前项目的成功。
9.人力资源
CMMI – 关注重点是组织级和项目级,CMMI提倡非英雄主义,过程成熟的时候无英雄项目也应该成功。
Agile – 强调人的重要性,强调仅仅雇用优秀的人,强调工作和生活平衡的高效团队。
10.失败成本
CMMI – 系统工程学的方法,类似航天,飞机和医药等高失败成本的项目更加强调采用。
Agile – 即使项目失败,担负的失败成本会比较低。