43
Site: http://sempsalon.wikispaces.com/ Email: [email protected] CMMI, Agile 敌人还是朋友 敌人还是朋友 敌人还是朋友 敌人还是朋友 CMMI, Agile 敌人还是朋友 敌人还是朋友 敌人还是朋友 敌人还是朋友 张卓磊,丁山,孙少羚

Agile和cmmi 朋友还是敌人

  • Upload
    semp

  • View
    2.281

  • Download
    22

Embed Size (px)

DESCRIPTION

尝试将敏捷和CMMI模型相融合

Citation preview

Page 1: Agile和cmmi 朋友还是敌人

Site: http://sempsalon.wikispaces.com/

Email: [email protected]

CMMI, Agile 敌人还是朋友敌人还是朋友敌人还是朋友敌人还是朋友CMMI, Agile 敌人还是朋友敌人还是朋友敌人还是朋友敌人还是朋友

张卓磊,李丁山,孙少羚

Page 2: Agile和cmmi 朋友还是敌人

张卓磊 (Leilei)

爱好旅游爱好旅游爱好旅游爱好旅游、、、、摄影摄影摄影摄影、、、、瑜伽瑜伽瑜伽瑜伽

SEI Certified High Maturity

Lead Appraiser CMMI-DEV, CMMI-SVC

Page 3: Agile和cmmi 朋友还是敌人

李丁山李丁山李丁山李丁山

爱好旅游爱好旅游爱好旅游爱好旅游,,,,摄影摄影摄影摄影,,,,音乐音乐音乐音乐,,,,太极太极太极太极,,,,运动运动运动运动

Page 4: Agile和cmmi 朋友还是敌人

孙少羚孙少羚孙少羚孙少羚

爱好足球爱好足球爱好足球爱好足球、、、、网球网球网球网球、、、、桌球桌球桌球桌球、、、、电影电影电影电影

SEI/CMUPSP Certified Developer

Page 5: Agile和cmmi 朋友还是敌人

模型、标准、方法和技巧

Page 6: Agile和cmmi 朋友还是敌人

议题

• 规范和敏捷

• 敌人还是朋友• Agile CMMI实施指南

Page 7: Agile和cmmi 朋友还是敌人

• 列举您认为在CMMI模型和敏捷方法中最

有冲突的领域或实践,并解释您的看法

准备

Page 8: Agile和cmmi 朋友还是敌人

议题

�规范和敏捷

– CMMI 简介简介简介简介– Agile 简介

• 敌人还是朋友• Agile CMMI实施指南

Page 9: Agile和cmmi 朋友还是敌人

CMMI的基本前提

• 一个系统或者产品的质量在很大程度上取决于开发与维护它的过程的质量

过程过程过程过程质量

人员人员人员人员

工具和设备工具和设备工具和设备工具和设备

方法和规程方法和规程方法和规程方法和规程

http://www..sei.cmu.edu

Page 10: Agile和cmmi 朋友还是敌人

过程、过程绩效、过程能力

• 过程– 导致某种结果的一系列行动、变化或功能运作– 进入条件、任务、验证、退出条件(ETVX)

• 过程绩效– 对遵循某一过程可以获得实际结果的一种度量– 包括过程度量(如:工作量、工期、缺陷移除效率)和产品度量(如:可靠性、缺陷密度、响应时间)

• 过程能力– 遵循某一过程所能获得结果的预期范围

Page 11: Agile和cmmi 朋友还是敌人

CMMI 群集

11

16 Core Process Areas

1

Shared PA (SAM)

75

CMMI-SVC

CMMI-DEVCMMI-ACQ

Page 12: Agile和cmmi 朋友还是敌人

Decision Analysis and ResolutionRisk ManagementIntegrated Project ManagementOrganizational TrainingOrganizational Process DefinitionOrganizational Process FocusValidationVerificationProduct IntegrationTechnical SolutionRequirements Development

Causal Analysis and ResolutionOrganizational Innovation and Deployment

Quantitative Project ManagementOrganizational Process Performance

Configuration ManagementProcess and Product Quality AssuranceMeasurement and AnalysisSupplier Agreement ManagementProject Monitoring and ControlProject PlanningRequirements Management

CMMI-DEV全图

项目项目项目项目

组织组织组织组织

客户客户客户客户

产品产品产品产品

Page 13: Agile和cmmi 朋友还是敌人

关于CMMI的一些澄清

13

• CMMI是

– 模型,指南– 路线图

• CMMI不是

– 标准、设计图– 菜谱

地图不等于实际地形过程改进对于任意规模的组织而言都可以是有价值的

Page 14: Agile和cmmi 朋友还是敌人

议题

�规范和敏捷

– CMMI 简介

– Agile 简介简介简介简介• 敌人还是朋友• Agile CMMI实施指南

Page 15: Agile和cmmi 朋友还是敌人

敏捷宣言

我们通过实践揭示了更好的软件开发方式,并帮助其他人实践它。

通过这一过程,我们认识到:

个体与交互个体与交互个体与交互个体与交互 重于重于重于重于 过程与工具

可用的软件可用的软件可用的软件可用的软件 重于重于重于重于 复杂的文档

客户协作客户协作客户协作客户协作 重于重于重于重于 合同谈判

响应变化响应变化响应变化响应变化 重于重于重于重于 遵循计划

在以上每对比较中在以上每对比较中在以上每对比较中在以上每对比较中,,,,后者仍然有其价值后者仍然有其价值后者仍然有其价值后者仍然有其价值,,,,

但我们认为前者具有更大的价值但我们认为前者具有更大的价值但我们认为前者具有更大的价值但我们认为前者具有更大的价值

http://agilemanifesto.org/

Page 16: Agile和cmmi 朋友还是敌人

敏捷原则

• 通过尽早尽早尽早尽早和持续持续持续持续地交付交付交付交付有价值价值价值价值的软件来满足客户

• 欢迎欢迎欢迎欢迎对需求提出变更变更变更变更——即使是在项目开发后期

• 项目过程中,业务人员与开发人员必须工作在一起工作在一起工作在一起工作在一起

• 要善于激励项目人员,给他们以所需要的环境和支持,并相信团队相信团队相信团队相信团队

• 无论是团队内还是团队间,最有效的沟通沟通沟通沟通方法是面对面的交谈

• 可用的软件可用的软件可用的软件可用的软件是衡量进度的主要指标

• 敏捷过程提倡可持续可持续可持续可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度

• 对技术的精益求精以及对设计的不断完善不断完善不断完善不断完善将提升敏捷性

• 要做到简单简单简单简单,尽最大可能减少不必要的工作

• 最佳的架构、需求和设计出自于自组织的团队自组织的团队自组织的团队自组织的团队

• 团队要定期反省反省反省反省如何能够做到更有效,并相应地调整调整调整调整团队的行为

Page 17: Agile和cmmi 朋友还是敌人

敏捷的核心

17

Page 18: Agile和cmmi 朋友还是敌人

敏捷实践

• Scrum

• XP

• FDD

• Crystal

• Lean

• Agile Modeling

• Kanban

• …

• Pair Programming

• TDD

• Small Release

• Planning Game

• Customer Tests

• Continuous

Integration

• Simple Design

• …

Page 19: Agile和cmmi 朋友还是敌人

关于Agile的一些澄清

• Agile是

– 反对不必要的文档– 欢迎变化– 建立自组织的团队– 重视快速实现客户价值

• Agile不是

– 反对一切文档– 不要计划– 反对一切的管理和指导– 越快越好

19

Page 20: Agile和cmmi 朋友还是敌人

成为敌人的原因

• 不同的背景• 不同的诞生目的• 不同的语言• 错误的理解和应用• 彼此的误解和排斥• 传统的门当户对思想

Page 21: Agile和cmmi 朋友还是敌人

不同的背景

CMMICMMI

• 由美国国防部(DoD)投资

• 由CMU/SEI开发并维护

• 完整且成熟的产品家族,包括培训、模型、评估

AgileAgile

• 敏捷领域专家的自发行为• 基于共识• 不同的敏捷方法集合

小结小结小结小结小结小结小结小结

• CMMI出生名门望族,高贵、奢华,是上流社会的大家闺秀

• Agile身世平凡、朴素,却是聪慧、机敏的小精灵

Page 22: Agile和cmmi 朋友还是敌人

不同的诞生目的

CMMICMMI

20世纪80年代,美国军方为软件研发投入大量经费。但这些软件要么无法交付,要么延迟交付,要么交付的功能差强人意。为了解决这个问题,DoD决定成立一个研发中心(SEI)以开发一套模型和评价方法用于指导和评估其软件供应商

AgileAgile

小结小结小结小结小结小结小结小结

20世纪末期,源自于IIDD的方法与实践不断繁衍,Scrum, XP, FDD等方法为人们所熟知。这时需要对它们进行梳理和比较从而能够被持续发展,在这样的背景下,敏捷宣言、敏捷原则相继发表,并成立了敏捷联盟

• CMMI是为了解决军方软件研发的种种问题而诞生的

• Agile是为了梳理和比较各种敏捷方法和实践而诞生的

Page 23: Agile和cmmi 朋友还是敌人

不同的语言

CMMICMMI

• Discipline• Quality Assurance• Capability• Predictability

AgileAgile

小结小结小结小结小结小结小结小结

• Inspect & Adapt• Continuous Integration• Test Driven Development• Collective code ownership

• CMMI更像管理者

• Agile更像实践者

Page 24: Agile和cmmi 朋友还是敌人

错误的理解和应用

• CMMI

– 仅关注成熟度级别,而非关注过程绩效的改进

• Agile

– 不要计划、不要文档,要自由!

Page 25: Agile和cmmi 朋友还是敌人

彼此的误解和排斥

• 敏捷阵营对CMMI缺乏完整的、正确的了解

– 认为CMMI繁复、死板、不灵活

• CMMI阵营也对Agile缺乏完整的、正确的了解

– 认为Agile随意、无纪律、个人英雄主义

Page 26: Agile和cmmi 朋友还是敌人

传统的门当户对思想

• 传统思想认为CMMI应该嫁入豪门

–大型、风险高、关键的系统

• 而Agile更适合于草根阶层

–小型、单团队、需求多变的系统

Page 27: Agile和cmmi 朋友还是敌人

议题

�规范和敏捷

�敌人还是朋友

– 成为敌人的原因

–成为朋友的理由成为朋友的理由成为朋友的理由成为朋友的理由

• Agile CMMI实施指南

Page 28: Agile和cmmi 朋友还是敌人

成为朋友的理由

• 相似的愿景• ‘What’ + ’How’的绝配

• 互补应用• 现实中的融合

Page 29: Agile和cmmi 朋友还是敌人

相似的愿景

CMMICMMI

• 提升的客户满意度• 更准确的进度• 减少的开发成本• 实际的投资回报率• 提升的员工士气和降低的流动率

AgileAgile

• 通过与客户的紧密协作,为客户开发出有价值的,可工作的软件产品

• 快速,频繁的交付价值,加速投资回报

• 建立高绩效的,自组织的团队

Page 30: Agile和cmmi 朋友还是敌人

‘What’ + ’How’的绝配

• CMMI和Agile是彼此兼容的

• 在项目层面,CMMI是对项目要做什么做什么做什么做什么的抽象集合,而没有描述具体的开发方法

• 敏捷方法着重于项目怎么怎么怎么怎么开发产品

因此,两者可以并存

Page 31: Agile和cmmi 朋友还是敌人

CMMI, Agile的互补应用

• CMMI提供系统工程的实践活动,能够将敏捷的方

法应用到大型项目中

• CMMI也提供了过程管理和支持的实践活动,从而

能够使得在任何一个组织中引入、部署、维护、以及持续的改进敏捷方法

Page 32: Agile和cmmi 朋友还是敌人

现实中的融合

• 如今,许多实施CMMI的组织,开始引入和

使用敏捷方法

Page 33: Agile和cmmi 朋友还是敌人

议题

�规范和敏捷

�敌人还是朋友

�Agile CMMI实施指南实施指南实施指南实施指南

Page 34: Agile和cmmi 朋友还是敌人

Agile CMMI实施指南简介

Page 35: Agile和cmmi 朋友还是敌人

实施指南一览

0

1

2

3

4

5

Requirements Management

Project Planning

Project Monitoring and Control

Configuration Management

Measurement and Analysis

Process and Product Quality

Assurance

Product Integration

Requirements Development

Technical Solution

Validation

Verification

Risk Management

CMMI

Agile

Page 36: Agile和cmmi 朋友还是敌人

实施指南中的几个例子

• 需求变更管理 – REQM SP1.3

• 双向可追溯性 – REQM SP1.4

• 估算属性和工作量 – PP SP 1.2, 1.4

Page 37: Agile和cmmi 朋友还是敌人

需求变更管理

CMMI

Practice

Agile Practice Agile Implementation

Guideline

SP1.3 Manage

requirements

changes

Changes are

logged in Product

backlog, and

reviewed at every

sprint planning

Noted in daily standup

meeting, and incorporate

the change in sprint backlog

or exchange with some

existing requirements, or

cancel the sprint due to

unsuitability of current

requirements set; product

owner is required to be

involved when this occurs

Page 38: Agile和cmmi 朋友还是敌人

双向可追溯性

CMMI

Practice

Agile Practice Agile Implementation

Guideline

SP1.4

Maintain bi-

directional

traceability of

requirements

Requirements and

test cases are

bidirectional

traceable if TDD is

adopted

Product backlog shows the

traceability between user

stories and their associated

tasks

Page 39: Agile和cmmi 朋友还是敌人

估算属性

CMMI

Practice

Agile Practice Agile Implementation

Guideline

SP1.2

Establish

estimates of

work

products and

task

attributes

Sprint planning,

backlog items are

estimated

relatively to each

others

Identify and define the base

for relative estimation, and

document the

characteristics of the base

for negotiation and further

improvement

Page 40: Agile和cmmi 朋友还是敌人

估算工作量

CMMI

Practice

Agile Practice Agile Implementation

Guideline

SP1.4

Determine

estimates of

effort and

cost

Sprint planning,

poker game using

Delphi estimation

method

Use velocity for estimation,

and calibrate it based on

actual data

Page 41: Agile和cmmi 朋友还是敌人

准备内容的讨论

41

Page 42: Agile和cmmi 朋友还是敌人

• “If one has strong discipline without agility,

the result is bureaucracy and stagnation.

Agility without discipline is the

unencumbered enthusiasm of a startup

company before it has to turn a profit.”

总结

Balancing agility and discipline: a guide for the perplexed

Page 43: Agile和cmmi 朋友还是敌人

Version 1.00, page 43

THANK YOU!谢谢谢谢谢谢谢谢!!!!

Software Engineering Methodology Practices

Simple Efficient Measurable Practical

http://semp.wikispaces.com

[email protected]