agile和cmmi 朋友还是敌人
DESCRIPTION
尝试将敏捷和CMMI模型相融合TRANSCRIPT
Site: http://sempsalon.wikispaces.com/
Email: [email protected]
CMMI, Agile 敌人还是朋友敌人还是朋友敌人还是朋友敌人还是朋友CMMI, Agile 敌人还是朋友敌人还是朋友敌人还是朋友敌人还是朋友
张卓磊,李丁山,孙少羚
张卓磊 (Leilei)
爱好旅游爱好旅游爱好旅游爱好旅游、、、、摄影摄影摄影摄影、、、、瑜伽瑜伽瑜伽瑜伽
SEI Certified High Maturity
Lead Appraiser CMMI-DEV, CMMI-SVC
李丁山李丁山李丁山李丁山
爱好旅游爱好旅游爱好旅游爱好旅游,,,,摄影摄影摄影摄影,,,,音乐音乐音乐音乐,,,,太极太极太极太极,,,,运动运动运动运动
孙少羚孙少羚孙少羚孙少羚
爱好足球爱好足球爱好足球爱好足球、、、、网球网球网球网球、、、、桌球桌球桌球桌球、、、、电影电影电影电影
SEI/CMUPSP Certified Developer
模型、标准、方法和技巧
议题
• 规范和敏捷
• 敌人还是朋友• Agile CMMI实施指南
• 列举您认为在CMMI模型和敏捷方法中最
有冲突的领域或实践,并解释您的看法
准备
议题
�规范和敏捷
– CMMI 简介简介简介简介– Agile 简介
• 敌人还是朋友• Agile CMMI实施指南
CMMI的基本前提
• 一个系统或者产品的质量在很大程度上取决于开发与维护它的过程的质量
过程过程过程过程质量
人员人员人员人员
工具和设备工具和设备工具和设备工具和设备
方法和规程方法和规程方法和规程方法和规程
http://www..sei.cmu.edu
过程、过程绩效、过程能力
• 过程– 导致某种结果的一系列行动、变化或功能运作– 进入条件、任务、验证、退出条件(ETVX)
• 过程绩效– 对遵循某一过程可以获得实际结果的一种度量– 包括过程度量(如:工作量、工期、缺陷移除效率)和产品度量(如:可靠性、缺陷密度、响应时间)
• 过程能力– 遵循某一过程所能获得结果的预期范围
CMMI 群集
11
16 Core Process Areas
1
Shared PA (SAM)
75
CMMI-SVC
CMMI-DEVCMMI-ACQ
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全图
项目项目项目项目
组织组织组织组织
客户客户客户客户
产品产品产品产品
关于CMMI的一些澄清
13
• CMMI是
– 模型,指南– 路线图
• CMMI不是
– 标准、设计图– 菜谱
地图不等于实际地形过程改进对于任意规模的组织而言都可以是有价值的
议题
�规范和敏捷
– CMMI 简介
– Agile 简介简介简介简介• 敌人还是朋友• Agile CMMI实施指南
敏捷宣言
我们通过实践揭示了更好的软件开发方式,并帮助其他人实践它。
通过这一过程,我们认识到:
个体与交互个体与交互个体与交互个体与交互 重于重于重于重于 过程与工具
可用的软件可用的软件可用的软件可用的软件 重于重于重于重于 复杂的文档
客户协作客户协作客户协作客户协作 重于重于重于重于 合同谈判
响应变化响应变化响应变化响应变化 重于重于重于重于 遵循计划
在以上每对比较中在以上每对比较中在以上每对比较中在以上每对比较中,,,,后者仍然有其价值后者仍然有其价值后者仍然有其价值后者仍然有其价值,,,,
但我们认为前者具有更大的价值但我们认为前者具有更大的价值但我们认为前者具有更大的价值但我们认为前者具有更大的价值
http://agilemanifesto.org/
敏捷原则
• 通过尽早尽早尽早尽早和持续持续持续持续地交付交付交付交付有价值价值价值价值的软件来满足客户
• 欢迎欢迎欢迎欢迎对需求提出变更变更变更变更——即使是在项目开发后期
• 项目过程中,业务人员与开发人员必须工作在一起工作在一起工作在一起工作在一起
• 要善于激励项目人员,给他们以所需要的环境和支持,并相信团队相信团队相信团队相信团队
• 无论是团队内还是团队间,最有效的沟通沟通沟通沟通方法是面对面的交谈
• 可用的软件可用的软件可用的软件可用的软件是衡量进度的主要指标
• 敏捷过程提倡可持续可持续可持续可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度
• 对技术的精益求精以及对设计的不断完善不断完善不断完善不断完善将提升敏捷性
• 要做到简单简单简单简单,尽最大可能减少不必要的工作
• 最佳的架构、需求和设计出自于自组织的团队自组织的团队自组织的团队自组织的团队
• 团队要定期反省反省反省反省如何能够做到更有效,并相应地调整调整调整调整团队的行为
敏捷的核心
17
敏捷实践
• Scrum
• XP
• FDD
• Crystal
• Lean
• Agile Modeling
• Kanban
• …
• Pair Programming
• TDD
• Small Release
• Planning Game
• Customer Tests
• Continuous
Integration
• Simple Design
• …
关于Agile的一些澄清
• Agile是
– 反对不必要的文档– 欢迎变化– 建立自组织的团队– 重视快速实现客户价值
• Agile不是
– 反对一切文档– 不要计划– 反对一切的管理和指导– 越快越好
19
成为敌人的原因
• 不同的背景• 不同的诞生目的• 不同的语言• 错误的理解和应用• 彼此的误解和排斥• 传统的门当户对思想
不同的背景
CMMICMMI
• 由美国国防部(DoD)投资
• 由CMU/SEI开发并维护
• 完整且成熟的产品家族,包括培训、模型、评估
AgileAgile
• 敏捷领域专家的自发行为• 基于共识• 不同的敏捷方法集合
小结小结小结小结小结小结小结小结
• CMMI出生名门望族,高贵、奢华,是上流社会的大家闺秀
• Agile身世平凡、朴素,却是聪慧、机敏的小精灵
不同的诞生目的
CMMICMMI
20世纪80年代,美国军方为软件研发投入大量经费。但这些软件要么无法交付,要么延迟交付,要么交付的功能差强人意。为了解决这个问题,DoD决定成立一个研发中心(SEI)以开发一套模型和评价方法用于指导和评估其软件供应商
AgileAgile
小结小结小结小结小结小结小结小结
20世纪末期,源自于IIDD的方法与实践不断繁衍,Scrum, XP, FDD等方法为人们所熟知。这时需要对它们进行梳理和比较从而能够被持续发展,在这样的背景下,敏捷宣言、敏捷原则相继发表,并成立了敏捷联盟
• CMMI是为了解决军方软件研发的种种问题而诞生的
• Agile是为了梳理和比较各种敏捷方法和实践而诞生的
不同的语言
CMMICMMI
• Discipline• Quality Assurance• Capability• Predictability
AgileAgile
小结小结小结小结小结小结小结小结
• Inspect & Adapt• Continuous Integration• Test Driven Development• Collective code ownership
• CMMI更像管理者
• Agile更像实践者
错误的理解和应用
• CMMI
– 仅关注成熟度级别,而非关注过程绩效的改进
• Agile
– 不要计划、不要文档,要自由!
彼此的误解和排斥
• 敏捷阵营对CMMI缺乏完整的、正确的了解
– 认为CMMI繁复、死板、不灵活
• CMMI阵营也对Agile缺乏完整的、正确的了解
– 认为Agile随意、无纪律、个人英雄主义
传统的门当户对思想
• 传统思想认为CMMI应该嫁入豪门
–大型、风险高、关键的系统
• 而Agile更适合于草根阶层
–小型、单团队、需求多变的系统
议题
�规范和敏捷
�敌人还是朋友
– 成为敌人的原因
–成为朋友的理由成为朋友的理由成为朋友的理由成为朋友的理由
• Agile CMMI实施指南
成为朋友的理由
• 相似的愿景• ‘What’ + ’How’的绝配
• 互补应用• 现实中的融合
相似的愿景
CMMICMMI
• 提升的客户满意度• 更准确的进度• 减少的开发成本• 实际的投资回报率• 提升的员工士气和降低的流动率
AgileAgile
• 通过与客户的紧密协作,为客户开发出有价值的,可工作的软件产品
• 快速,频繁的交付价值,加速投资回报
• 建立高绩效的,自组织的团队
‘What’ + ’How’的绝配
• CMMI和Agile是彼此兼容的
• 在项目层面,CMMI是对项目要做什么做什么做什么做什么的抽象集合,而没有描述具体的开发方法
• 敏捷方法着重于项目怎么怎么怎么怎么开发产品
因此,两者可以并存
CMMI, Agile的互补应用
• CMMI提供系统工程的实践活动,能够将敏捷的方
法应用到大型项目中
• CMMI也提供了过程管理和支持的实践活动,从而
能够使得在任何一个组织中引入、部署、维护、以及持续的改进敏捷方法
现实中的融合
• 如今,许多实施CMMI的组织,开始引入和
使用敏捷方法
议题
�规范和敏捷
�敌人还是朋友
�Agile CMMI实施指南实施指南实施指南实施指南
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
实施指南中的几个例子
• 需求变更管理 – REQM SP1.3
• 双向可追溯性 – REQM SP1.4
• 估算属性和工作量 – PP SP 1.2, 1.4
需求变更管理
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
双向可追溯性
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
估算属性
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
估算工作量
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
准备内容的讨论
41
• “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
Version 1.00, page 43
THANK YOU!谢谢谢谢谢谢谢谢!!!!
Software Engineering Methodology Practices
Simple Efficient Measurable Practical
http://semp.wikispaces.com