敏捷开发全景视图(流程、方法和最佳实践)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(Peter Drucker)
敏捷开发流程框架:Scrum
What?
How?
注:Scrum是最为流行的敏捷开发流程框架之一
Scrum框架:简介
• Scrum
– 是一个用于开发和维持复杂产品的框架,是一个增量的、迭代的开发过程。在 这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称 为一个Sprint,每个Sprint的建议长度是2到4周(互联网产品研发可以使用1周的
http://www.slideshare.net/mcottmeyer/how-to-own-a-really-big-complex-product-v3
Business Analysis Capabilities
Helping organizations develop the capabilities to achieve Enterprise Agility
course corrections (56%)
利于中途修正
Overall improved customer
and business satisfaction
(38%)
总体改善客户和业务的满意度
Better business-IT alignment
(37%)
商业需求与IT实施更加匹配
Improved time to market
• 虽然右边也有其价值,但我们认为左项更加重要
敏捷原则 (Agile Principles)
1. Satisfy the Customer 2. Welcome Change 3. Deliver Frequently 4. Work as a Team 5. Motivate People 6. Communicate Face-to-
形而上者谓之道,形而下者谓之器。 形而上者起于学、行于理、止于道,形而下者起于教、行于法、止于术。
从传统到敏捷:认识误区
从传统到敏捷:阻碍和要点
改变我们的商业文化 采用敏捷技术实践 改变我们的IT文化 以一种敏捷的态度使用我们现有的工具 采用新的敏捷开发工具 采用敏捷管理实践
从传统到敏捷:关键因素
改变我们的商业文化 采用敏捷管理实践 改变我们的IT文化 采用敏捷技术实践 采用新的敏捷开发工具 以一种敏捷的态度使用我们现有的工具
敏捷开发流程框架
产品研发:一个持续的过程
Management is doing things right; leadership is doing the right things.
Source: Forrester Research, Inc.
趋势:敏捷开发逐渐成为主流模式
2009 Q3
2014
Growth
敏捷开发带来的好处
TOP 5 reported benefits:
A lot more than velocity
Improved quality (56%)
质量改善
More opportunities for mid-
• 业务战略传递:
– Strategy=>Portfolio=>Product=>Release=>Sprint=>Daily Working
What?
How?
Scrum(二):团队
Build The Right Thing
Build It Fast
Scrum Team • Achievement-oriented • Customer-oriented • Committed • Motivated • Self-organized • Empowered • Skilled
Scrum团队:Product Owner职责
• 主要负责确定产品的功能和达到要求的标准,指定软件的 发布日期和交付的内容,同时有权利接受或拒绝开发团队 的工作成果
• PO在Scrum中承担了多项职责
– 产品经理:愿景和方向,结果负责 – 需求分析:业务分析和需求分析 – 需求管理:维护、终止和变更 – 项目管理:优先级排序和项目状态跟踪 – 质量保障:检查产品结果 – 客户代表:产品体验/接受拒绝
• 勇气:因为我们不得单打独斗,我们能够感受到支持,而且掌握 更多的资源。这一切赋予我们勇气去迎接更大的挑战。
从传统到敏捷:思维的转变
• 从重视“流程”到重视“原则”
– 道本器末,不忘初心 – 做正确的事比正确地做事更重要
• 如何看待流程、方法、最佳实践在敏捷开发中的作用
– 无其器则无其道,器和道一样重要 – 上善若水,原则的“刚性”和流程的“柔性”
Face
7. Measure Working Software
8. Maintain Constant Pace 9. Excel at Quality 10.Keep it Simple 11.Evolve Designs 12.Reflect Regularly
敏捷开发价值观
• 专注:由于我们在一段时间内只专注于少数几件事情,所以我们 可以很好地合作并获得优质的产出。我们能够更快地交付有价值 的事项。
Sprint)。在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个
按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团 队总是先开发对客户具有较高价值的需求。在Sprint中,Scrum团队从产品 Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过 讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog。在每个迭 代结束时,Scrum团队将递交潜在可交付的产品增量。Scrum起源于软件开发项 目,但它适用于任何复杂的或是创新性的项目。
Zachman
2000
2010
RUP
SCRUM LEAN KANBAN
XP PRINCE2 CRYSTAL
AGILE MANIFESTO
FEA
TOGAF 8.0
软件开发生命周期(SDLC)
https://en.wikipedia.org/wiki/Systems_development_life_cycle
敏捷开发全景视图 (流程、方法和最佳实践)
钟玮军 2016-02-25
目 录 Contents
敏捷 vs 传统 敏捷开发流程框架 敏捷方法和最佳实践 思考与答疑
敏捷 vs 传统
IT项目管理方法的发展历史
1960
Leabharlann BaiduSDLC
1970
1980
WATERFALL
RAD
1990
PMBOK
DSDM
ITIL
PRINCE
– Working software over comprehensive documentation 可以工作的软件 重于 面面俱到的文档
– Customer collaboration over contract negotiation 客户合作 重于 合同谈判
– Responding to change over following a plan 随时应对变化 重于 遵循计划
Define Product Roadmap
Understand Requirements
Maintain Architecture
Establish Development Environment
Integration Testing
Plan Launch Coordinate Launch
Operate and Support Product
Product Development
Product Strategy
Solution Requirements
Develop Product
Launch Product
Understand Needs of the Customer
Develop Product Strategy
Establish Product Vision
• 要素:
– 周期:Product Release<=Time-Boxed Sprint<=Daily Continous Delivery – 团队:Product Owner,Scrum Master,Dev Team(Cross-Functional) – 工件:Product Backlog,Sprint Backlog,Product Increment – 活动:Sprint Planning Meeting/Review Meeting/Retrospective Meeting,Daily
Support Operations
Provide Customer Support
Manage Product Portfolio
Define Business Requirements
Coordinate Work
Achieve Customer Acceptance
Support Implementation
Build The Thing Right
Scrum团队:团队文化
共赢的文化 • 团队成功 • 个人发展 • 立足现实 • 挑战极限
Scrum团队:角色分工概览
http://www.slideshare.net/beITconference/infragistics-scrum-crashcoursebeit2014
http://pragmaticmarketing.com/resources/the-strategic-role-of-product-management-when-development-goes-agile?p=0
Scrum团队: PO能力要求
• 业务分析能力(Business Analysis) • 工程技术能力(Engineering) • 领导和协调能力(Leadership & Coordination)
• PO对外承担了与产品干系人交流沟通的职责
– 老板、客户和用户、营销和销售、…
Scrum团队: PO的职责关系
图示表现了产品管理四种角 色之间的关系和分工定义, 但根据项目规模不同,某一 成员可能身兼数职。
Product Owner属于研发角色, 但与战略、市场和销售等公司 其它角色存在密切合作关系, 需要掌握跨界知识和语言表达。
– 与“唯快不破”的互联网经济格格不入
敏捷软件开发模式
• 敏捷软件开发模式
– 由传统迭代式软件开发模式发展而来,Time-Boxed – 抛开传统软件开发模式的繁文缛节,强调产品价值、团队协作、客户参
与、先期验证、简化流程、拥抱变化 – 总结吸收成功软件项目研发的最佳实践;与现代管理思想相辅相成 – 前期有学习成本,后期会获益匪浅
Scrum Meeting,Product Backlog Refinement – 度量:Burndown图、Burnup图、Velocity
Scrum(一) :迭代周期框架
• 迭代周期框架:
– Product Release<=Time-Boxed Sprint<=Daily Continous Delivery
(32%)
更快投入市场
Source: 2013 Forrester Research, Inc.
敏捷开发宣言
• Manifesto for Agile Software Development
– Individuals and interactions over processes and tools 人和交互 重于 过程和工具
传统软件开发模式
传统瀑布式软件开发方式
向迭代式软件开发方式转变(RUP框架)
http://www.ibm.com/developerworks/cn/rational/theme/rational-rup/rup.html
传统软件开发模式存在的问题
• 传统软件件开发过程的常见症结
– 交付周期长;害怕需求变更;中间过程不可控;测试周期被 一缩再缩;最终结果差强人意
• 公开:在团队合作中,大家都会表达我们做得如何,以及遇到的 障碍。我们发现将担忧说出来是一件好事,因为只有这样才能让 这些担忧及时得到解决。
• 尊重:因为我们在一起工作,分享和成功失败,这有助于培养并 加深互相之间的尊重,并帮助彼此成为值得尊重的人。
• 承诺:由于对自己的命运有更大的掌握,我们会有更坚强的信念 获得成功。
Perform Maintenance and Customizations
Define Product Backlog
Planning
敏捷开发流程框架:Scrum
What?
How?
注:Scrum是最为流行的敏捷开发流程框架之一
Scrum框架:简介
• Scrum
– 是一个用于开发和维持复杂产品的框架,是一个增量的、迭代的开发过程。在 这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称 为一个Sprint,每个Sprint的建议长度是2到4周(互联网产品研发可以使用1周的
http://www.slideshare.net/mcottmeyer/how-to-own-a-really-big-complex-product-v3
Business Analysis Capabilities
Helping organizations develop the capabilities to achieve Enterprise Agility
course corrections (56%)
利于中途修正
Overall improved customer
and business satisfaction
(38%)
总体改善客户和业务的满意度
Better business-IT alignment
(37%)
商业需求与IT实施更加匹配
Improved time to market
• 虽然右边也有其价值,但我们认为左项更加重要
敏捷原则 (Agile Principles)
1. Satisfy the Customer 2. Welcome Change 3. Deliver Frequently 4. Work as a Team 5. Motivate People 6. Communicate Face-to-
形而上者谓之道,形而下者谓之器。 形而上者起于学、行于理、止于道,形而下者起于教、行于法、止于术。
从传统到敏捷:认识误区
从传统到敏捷:阻碍和要点
改变我们的商业文化 采用敏捷技术实践 改变我们的IT文化 以一种敏捷的态度使用我们现有的工具 采用新的敏捷开发工具 采用敏捷管理实践
从传统到敏捷:关键因素
改变我们的商业文化 采用敏捷管理实践 改变我们的IT文化 采用敏捷技术实践 采用新的敏捷开发工具 以一种敏捷的态度使用我们现有的工具
敏捷开发流程框架
产品研发:一个持续的过程
Management is doing things right; leadership is doing the right things.
Source: Forrester Research, Inc.
趋势:敏捷开发逐渐成为主流模式
2009 Q3
2014
Growth
敏捷开发带来的好处
TOP 5 reported benefits:
A lot more than velocity
Improved quality (56%)
质量改善
More opportunities for mid-
• 业务战略传递:
– Strategy=>Portfolio=>Product=>Release=>Sprint=>Daily Working
What?
How?
Scrum(二):团队
Build The Right Thing
Build It Fast
Scrum Team • Achievement-oriented • Customer-oriented • Committed • Motivated • Self-organized • Empowered • Skilled
Scrum团队:Product Owner职责
• 主要负责确定产品的功能和达到要求的标准,指定软件的 发布日期和交付的内容,同时有权利接受或拒绝开发团队 的工作成果
• PO在Scrum中承担了多项职责
– 产品经理:愿景和方向,结果负责 – 需求分析:业务分析和需求分析 – 需求管理:维护、终止和变更 – 项目管理:优先级排序和项目状态跟踪 – 质量保障:检查产品结果 – 客户代表:产品体验/接受拒绝
• 勇气:因为我们不得单打独斗,我们能够感受到支持,而且掌握 更多的资源。这一切赋予我们勇气去迎接更大的挑战。
从传统到敏捷:思维的转变
• 从重视“流程”到重视“原则”
– 道本器末,不忘初心 – 做正确的事比正确地做事更重要
• 如何看待流程、方法、最佳实践在敏捷开发中的作用
– 无其器则无其道,器和道一样重要 – 上善若水,原则的“刚性”和流程的“柔性”
Face
7. Measure Working Software
8. Maintain Constant Pace 9. Excel at Quality 10.Keep it Simple 11.Evolve Designs 12.Reflect Regularly
敏捷开发价值观
• 专注:由于我们在一段时间内只专注于少数几件事情,所以我们 可以很好地合作并获得优质的产出。我们能够更快地交付有价值 的事项。
Sprint)。在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个
按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团 队总是先开发对客户具有较高价值的需求。在Sprint中,Scrum团队从产品 Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过 讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog。在每个迭 代结束时,Scrum团队将递交潜在可交付的产品增量。Scrum起源于软件开发项 目,但它适用于任何复杂的或是创新性的项目。
Zachman
2000
2010
RUP
SCRUM LEAN KANBAN
XP PRINCE2 CRYSTAL
AGILE MANIFESTO
FEA
TOGAF 8.0
软件开发生命周期(SDLC)
https://en.wikipedia.org/wiki/Systems_development_life_cycle
敏捷开发全景视图 (流程、方法和最佳实践)
钟玮军 2016-02-25
目 录 Contents
敏捷 vs 传统 敏捷开发流程框架 敏捷方法和最佳实践 思考与答疑
敏捷 vs 传统
IT项目管理方法的发展历史
1960
Leabharlann BaiduSDLC
1970
1980
WATERFALL
RAD
1990
PMBOK
DSDM
ITIL
PRINCE
– Working software over comprehensive documentation 可以工作的软件 重于 面面俱到的文档
– Customer collaboration over contract negotiation 客户合作 重于 合同谈判
– Responding to change over following a plan 随时应对变化 重于 遵循计划
Define Product Roadmap
Understand Requirements
Maintain Architecture
Establish Development Environment
Integration Testing
Plan Launch Coordinate Launch
Operate and Support Product
Product Development
Product Strategy
Solution Requirements
Develop Product
Launch Product
Understand Needs of the Customer
Develop Product Strategy
Establish Product Vision
• 要素:
– 周期:Product Release<=Time-Boxed Sprint<=Daily Continous Delivery – 团队:Product Owner,Scrum Master,Dev Team(Cross-Functional) – 工件:Product Backlog,Sprint Backlog,Product Increment – 活动:Sprint Planning Meeting/Review Meeting/Retrospective Meeting,Daily
Support Operations
Provide Customer Support
Manage Product Portfolio
Define Business Requirements
Coordinate Work
Achieve Customer Acceptance
Support Implementation
Build The Thing Right
Scrum团队:团队文化
共赢的文化 • 团队成功 • 个人发展 • 立足现实 • 挑战极限
Scrum团队:角色分工概览
http://www.slideshare.net/beITconference/infragistics-scrum-crashcoursebeit2014
http://pragmaticmarketing.com/resources/the-strategic-role-of-product-management-when-development-goes-agile?p=0
Scrum团队: PO能力要求
• 业务分析能力(Business Analysis) • 工程技术能力(Engineering) • 领导和协调能力(Leadership & Coordination)
• PO对外承担了与产品干系人交流沟通的职责
– 老板、客户和用户、营销和销售、…
Scrum团队: PO的职责关系
图示表现了产品管理四种角 色之间的关系和分工定义, 但根据项目规模不同,某一 成员可能身兼数职。
Product Owner属于研发角色, 但与战略、市场和销售等公司 其它角色存在密切合作关系, 需要掌握跨界知识和语言表达。
– 与“唯快不破”的互联网经济格格不入
敏捷软件开发模式
• 敏捷软件开发模式
– 由传统迭代式软件开发模式发展而来,Time-Boxed – 抛开传统软件开发模式的繁文缛节,强调产品价值、团队协作、客户参
与、先期验证、简化流程、拥抱变化 – 总结吸收成功软件项目研发的最佳实践;与现代管理思想相辅相成 – 前期有学习成本,后期会获益匪浅
Scrum Meeting,Product Backlog Refinement – 度量:Burndown图、Burnup图、Velocity
Scrum(一) :迭代周期框架
• 迭代周期框架:
– Product Release<=Time-Boxed Sprint<=Daily Continous Delivery
(32%)
更快投入市场
Source: 2013 Forrester Research, Inc.
敏捷开发宣言
• Manifesto for Agile Software Development
– Individuals and interactions over processes and tools 人和交互 重于 过程和工具
传统软件开发模式
传统瀑布式软件开发方式
向迭代式软件开发方式转变(RUP框架)
http://www.ibm.com/developerworks/cn/rational/theme/rational-rup/rup.html
传统软件开发模式存在的问题
• 传统软件件开发过程的常见症结
– 交付周期长;害怕需求变更;中间过程不可控;测试周期被 一缩再缩;最终结果差强人意
• 公开:在团队合作中,大家都会表达我们做得如何,以及遇到的 障碍。我们发现将担忧说出来是一件好事,因为只有这样才能让 这些担忧及时得到解决。
• 尊重:因为我们在一起工作,分享和成功失败,这有助于培养并 加深互相之间的尊重,并帮助彼此成为值得尊重的人。
• 承诺:由于对自己的命运有更大的掌握,我们会有更坚强的信念 获得成功。
Perform Maintenance and Customizations
Define Product Backlog
Planning