sdm 242 scrum: 介绍最新的快捷软件研发过程

32
SDM 242 SDM 242 Scrum: Scrum: 介介介介介介介介介介介介介 介介介介介介介介介介介介介 介介介介 介介介介 介介介介介介 介介介介介介

Upload: jacob-ruiz

Post on 15-Mar-2016

175 views

Category:

Documents


7 download

DESCRIPTION

SDM 242 Scrum: 介绍最新的快捷软件研发过程. 朱敏博士 微软有限公司. 议程 1. 快捷软件开发过程 [ Agile Software Development ] 什么是 Scrum? Scrum 的重要特性 Scrum 工作流 Scrum 团队的组成 产品主管 [ Product Owner ] Scrum 主管 [ Scrum Master ] Scrum 团队. 议程 2. Scrum 研发过程 概况 产品记录 [ Product Backlog ] - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: SDM 242 Scrum:  介绍最新的快捷软件研发过程

SDM 242SDM 242Scrum: Scrum: 介绍最新的快捷软件介绍最新的快捷软件研发过程 研发过程

朱敏博士朱敏博士微软有限公司微软有限公司

Page 2: SDM 242 Scrum:  介绍最新的快捷软件研发过程
Page 3: SDM 242 Scrum:  介绍最新的快捷软件研发过程

议程 议程 11

快捷软件开发过程 快捷软件开发过程 [[Agile Software Agile Software DevelopmentDevelopment]]什么是什么是 Scrum?Scrum?ScrumScrum 的重要特性的重要特性ScrumScrum 工作流工作流ScrumScrum 团队的组成团队的组成

产品主管产品主管 [[Product OwnerProduct Owner]]ScrumScrum 主管 主管 [[Scrum MasterScrum Master]]ScrumScrum 团队团队

Page 4: SDM 242 Scrum:  介绍最新的快捷软件研发过程

议程 议程 22ScrumScrum 研发过程研发过程

概况概况产品记录 产品记录 [[Product BacklogProduct Backlog]]SprintSprint 规划会议 规划会议 [[Sprint Planning Sprint Planning MeetingMeeting]]ScrumScrum 记录 记录 [[Scrum BacklogScrum Backlog]]日常日常 Scrum Scrum [[Daily ScrumDaily Scrum]]SprintSprint 评估会议 评估会议 [[Sprint Review Sprint Review MeetingMeeting]]SprintSprint 回顾会议回顾会议

[[Sprint Sprint Retrospective MeetingRetrospective Meeting]]

调整调整 ScrumScrum 规模 规模 [[Scaling ScrumScaling Scrum]]

Page 5: SDM 242 Scrum:  介绍最新的快捷软件研发过程

议程 议程 33

ScrumScrum 带来的挑战带来的挑战资源指南资源指南问题回答问题回答

Page 6: SDM 242 Scrum:  介绍最新的快捷软件研发过程

快捷软件开发过程快捷软件开发过程速度速度 ,, 适应性和灵活性是现代商业软件开发适应性和灵活性是现代商业软件开发的本质的本质Agile Software DevelopmentAgile Software Development 在不同公在不同公司的数以千计的不同项目体现了有效性和司的数以千计的不同项目体现了有效性和可行性可行性特别适用于小型研发队伍经常性的推出产特别适用于小型研发队伍经常性的推出产品更新品更新 (<=10(<=10 团队成员团队成员 ))

Page 7: SDM 242 Scrum:  介绍最新的快捷软件研发过程

一个快捷轻便的过程一个快捷轻便的过程一个迭代递增型的实践一个迭代递增型的实践一个适应和经验型的系统管理一个适应和经验型的系统管理现存软件工程实践的包装 现存软件工程实践的包装 [[A wrapper for A wrapper for existing engineering practices (XP, existing engineering practices (XP, RUP)RUP)]]一个提高软件生产效率一个提高软件生产效率 ,, 改善沟通和合作的改善沟通和合作的方法方法

什么是什么是 Scrum?Scrum?

Page 8: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 的重要特性的重要特性自发组织管理的团队自发组织管理的团队由商业价值由商业价值 [[Business ValueBusiness Value]] 驱使的频繁驱使的频繁而快速的检验和规划而快速的检验和规划 ,, 使功能不断更新和使功能不断更新和加强加强及时控制需求利益等因素的冲突和矛盾及时控制需求利益等因素的冲突和矛盾实时地监测和扫除障碍实时地监测和扫除障碍

Page 9: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 工作流程工作流程

*Source: *Source: http://www.controlchaos.com

Page 10: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 工作流程工作流程 :: 另一视角另一视角

*Source: *Source: http://www.controlchaos.com

Page 11: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 团队的组成团队的组成 :Product :Product OwnerOwner

代表产品线的利益代表产品线的利益 ,, 与与 Scrum M asterScrum M aster和 和 Scrum TeamScrum Team 合作合作负责管理和确定产品记录的优先次序负责管理和确定产品记录的优先次序 ,, 相相应按照商业价值开发产品更新换代的功能应按照商业价值开发产品更新换代的功能侧重于投资回报侧重于投资回报 Return Of Return Of InvestmentInvestment

Page 12: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 团队的组成团队的组成 :Scrum :Scrum MasterMaster

为为 Scrum TeamScrum Team 服务服务 ,, 确保每一个成员都确保每一个成员都认同认同 ScrumScrum 价值观和遵守其游戏规则价值观和遵守其游戏规则组织每天的组织每天的 Daily ScrumDaily Scrum 会议会议负责保证负责保证 Scrum TeamScrum Team 的持续进展的持续进展决策和免除障碍决策和免除障碍帮助帮助 Scrum TeamScrum Team 规划规划 SprintSprint 计划计划

Page 13: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 团队团队自我管理自我管理 ,, 自我组织自我组织 ,, 多功能多功能 ,, 通常由通常由 6 – 6 – 10 10 人组成人组成负责将负责将 Product BacklogProduct Backlog 转化成转化成 SprintSprint中的工作项目中的工作项目所有团队成员协调所有团队成员协调 ,, 合作和完成合作和完成 SprintSprint 中中每一个规定的工作每一个规定的工作所有团队成员和所有团队成员和 Scrum M asterScrum M aster 负责每一负责每一个个 SprintSprint 的成功的成功

Page 14: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 研发过程 研发过程 - - 概况概况 11

ScrumScrum 的进程由一系列迭代过程的进程由一系列迭代过程 SprintsSprints组成组成 需要研发的功能在需要研发的功能在 Product BacklogProduct Backlog 中列中列表表表中的项目是商业和技术功能的动态序列表中的项目是商业和技术功能的动态序列SprintSprint 从从 Sprint Planning M eetingSprint Planning M eeting开始开始Product OwnerProduct Owner从从 Product BacklogProduct Backlog中选择最高级别和最优先的项目去实现中选择最高级别和最优先的项目去实现Scrum TeamScrum Team 决定该项目有多少可以在决定该项目有多少可以在SprintSprint 中开发完成中开发完成

Page 15: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 研发过程 研发过程 - - 概况概况 22经同意要实现的功能转到经同意要实现的功能转到 Sprint BacklogSprint Backlog Scrum TeamScrum Team 一步步开发需要的功能一步步开发需要的功能 ,,Scrum Scrum MasteMasterr 通过通过 D aily ScrumD aily Scrum 会议会议关注每天的进展 关注每天的进展 SprintSprint 结束时结束时 ,, 在在Sprint Review M eetingSprint Review M eeting 会议上会议上 SprintSprint向向 Product OwnerProduct Owner给出给出 Production-Production-QualityQuality 和 和 Demonstrable Business Demonstrable Business FunctionalityFunctionality

Page 16: SDM 242 Scrum:  介绍最新的快捷软件研发过程

产品记录产品记录 :Product Backlog:Product Backlog每一个产品线有一个专门的每一个产品线有一个专门的 Product BacklogProduct Backlog 由 由 Product OwnerProduct Owner 负责负责优先级确定的优先级确定的 ,, 主要的产品项目表格主要的产品项目表格

FeaturesFeaturesFunctionsFunctionsTechnologiesTechnologiesEnhancementsEnhancements

次序完全由商业价值决定次序完全由商业价值决定随时间推移产生商业价值变化导致从新确定项目的随时间推移产生商业价值变化导致从新确定项目的优先次序优先次序 ((ReprioritizationReprioritization))最高级别的产品更新换代项目需要立刻进行分析和最高级别的产品更新换代项目需要立刻进行分析和估计估计 ,, 决定最终的研发要求决定最终的研发要求

Page 17: SDM 242 Scrum:  介绍最新的快捷软件研发过程

SprintSprint 规划会议规划会议 :: 上半部分上半部分整个会议通常需要一天整个会议通常需要一天在在 SprintSprint 开始时进行开始时进行Product OwnerProduct Owner描述描述 Product BacklogProduct Backlog 中最中最高级别的项目高级别的项目Product OwnerProduct Owner 回答回答 Scrum TeamScrum Team关于项目关于项目内容内容 ,, 目的和具体功能的问题目的和具体功能的问题Scrum TeamScrum Team 估计可以在估计可以在 SprintSprint 中完成的任务中完成的任务被选择的项目转移到被选择的项目转移到 Sprint BacklogSprint BacklogScrum TeamScrum Team 确定确定 SprintSprint 的目标的目标简单描述哪些任务回在简单描述哪些任务回在 SprintSprint 中完成中完成概括终结概括终结 Sprint BacklogSprint Backlog

Page 18: SDM 242 Scrum:  介绍最新的快捷软件研发过程

SprintSprint 规划会议规划会议 :: 下半部分下半部分Scrum TeamScrum Team分别讨论规划分别讨论规划 SprintSprint用户要求用户要求 (User Stories)(User Stories) 分化成具体的分化成具体的工程任务进行时间和人数上的估计工程任务进行时间和人数上的估计 Product OwnerProduct Owner 保证在这次保证在这次 SprintSprint 中中其内容不会更改其内容不会更改如果重要改变发生使得如果重要改变发生使得 Product OwnerProduct Owner预料 预料 SprintSprint内容需要更改内容需要更改 ,, 那么该那么该SprintSprint就被取消就被取消 ,, 新的新的 SprintSprint 产生产生 ,, 需需要进行另一个要进行另一个 Sprint Planning Sprint Planning MeetingMeeting

Page 19: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 记录记录ScrumScrum 记录是记录是 Scrum TeamScrum Team 承诺在承诺在SprintSprint 中能够完成的工作中能够完成的工作Scrum TeamScrum Team基于基于 Product OwnerProduct Owner设设置的优先权和重要性选择置的优先权和重要性选择Product BacklogProduct Backlog 的项目放入的项目放入 Sprint Sprint BacklogBacklogScrum TeamScrum Team 决定决定 SprintSprint 能完成多少工能完成多少工作作Scrum TeamScrum Team 维护和更新维护和更新 Sprint Sprint BacklogBacklog: : 多少工作以完成多少工作以完成 ,, 多少尚未完多少尚未完成成在在 SprintSprint 保存的工作每天计算更新和发布保存的工作每天计算更新和发布Product OwnerProduct Owner 决定如果某份工作需要决定如果某份工作需要从从 SprintSprint 中删除中删除 ,, 必须保证必须保证 SprintSprint 的目的目的仍能达到的仍能达到

Page 20: SDM 242 Scrum:  介绍最新的快捷软件研发过程

日常日常 ScrumScrum 1 1

Scrum TeamScrum Team 每天在同一时间召开会议每天在同一时间召开会议 ,,通常在早晨以确定一天的工作计划通常在早晨以确定一天的工作计划 对项目进行快速总结对项目进行快速总结 ,,Scrum TeamScrum Team 可以可以从新考虑和更新任务从新考虑和更新任务分享最重要的信息分享最重要的信息一般是一般是 15–3015–30分钟分钟

Page 21: SDM 242 Scrum:  介绍最新的快捷软件研发过程

日常日常 ScrumScrum 2 2在每一次在每一次 Daily ScrumDaily Scrum 中每个小组成中每个小组成员回答下面员回答下面 33 个问题个问题 ::

从昨天到现在你完成了什么工作从昨天到现在你完成了什么工作 ??

你今天准备做什么你今天准备做什么 ??

你有什么障碍或依赖你有什么障碍或依赖 ? ?

Page 22: SDM 242 Scrum:  介绍最新的快捷软件研发过程

日常日常 ScrumScrum 3 3Scrum M asterScrum M aster 保证会议简洁明快保证会议简洁明快 ,, 焦点焦点集中于每个人的集中于每个人的 33 个问题个问题Product OwnerProduct Owner 在会议上旁听在会议上旁听 ,, 主要兴趣主要兴趣在于项目进展和困难在于项目进展和困难Scrum TeamScrum Team 由此可以知道整个项目进展由此可以知道整个项目进展的时间表的时间表

Page 23: SDM 242 Scrum:  介绍最新的快捷软件研发过程

日常日常 ScrumScrum 4 4不是不是项目状况更新会议项目状况更新会议 ,, 或关于某个成或关于某个成员是否落后于时间安排员是否落后于时间安排是是 ScrumScrum 成员互相的承诺成员互相的承诺不能不能分散精力成为系统设计讨论会分散精力成为系统设计讨论会会议中提到的问题应会后解决会议中提到的问题应会后解决

Page 24: SDM 242 Scrum:  介绍最新的快捷软件研发过程

SprintSprint 评估会议评估会议Scrum TeamScrum Team向向 Product OwnerProduct Owner或其他有兴趣的人员演示和报告或其他有兴趣的人员演示和报告SprintSprint 开发的成果和进展开发的成果和进展产生对比于产生对比于Sprint Planning M eetingSprint Planning M eeting 定义的定义的需求和功能的评价需求和功能的评价评估是非正式的评估是非正式的 ,, 是对是对 SprintSprint 的一个的一个自然总结报告自然总结报告 ,, 不应不应分散分散Scrum TeamScrum Team 的的注意力注意力每一个月举行一次每一个月举行一次

Page 25: SDM 242 Scrum:  介绍最新的快捷软件研发过程

SprintSprint 回顾会议回顾会议Scrum M asterScrum M aster鼓励每一个鼓励每一个Scrum TeamScrum Team 成员去修正成员去修正 ScrumScrum的研发和管理过程的研发和管理过程 ,, 使下一个使下一个SprintSprint 更为有效和愉快更为有效和愉快

Page 26: SDM 242 Scrum:  介绍最新的快捷软件研发过程

调整调整 ScrumScrum 规模规模使得使得 ScrumScrum 适合于大型软件开发的主要方适合于大型软件开发的主要方法法 : "Scrum of Scrums": "Scrum of Scrums"每一个每一个 Scrum TeamScrum Team 同样有一个代表同样有一个代表(( 通常是 通常是 Scrum MasterScrum Master),),参与参与 Scrum Scrum of Scrumsof Scrums 会议协调多个会议协调多个 Scrum Scrum TeamsTeams 的工作的工作这些会议类似于这些会议类似于 Daily ScrumDaily Scrum,, 但每周召但每周召开一次开一次

Page 27: SDM 242 Scrum:  介绍最新的快捷软件研发过程

ScrumScrum 带来的挑战带来的挑战The success of Scrum The success of Scrum is is largely about executionlargely about execution将将 PM/Dev/TestPM/Dev/Test 的职责转化成的职责转化成 Scrum Scrum TeamTeam确保在确保在 3030 天内有高质量的产品 天内有高质量的产品 紧张积极的编程时间表紧张积极的编程时间表完全可以测试的软件产品更新换代构件完全可以测试的软件产品更新换代构件

序列性地更改体系结构序列性地更改体系结构 ,, 避免从新设计避免从新设计

Page 28: SDM 242 Scrum:  介绍最新的快捷软件研发过程

资源指南 资源指南 – – 书籍书籍Agile Software Development with ScrAgile Software Development with Scrum um by Ken Schwaber and Mike Beedleby Ken Schwaber and Mike BeedleAgileAgile Project Management with Project Management with Scrum by Ken SchwaberScrum by Ken Schwaber

    

Page 29: SDM 242 Scrum:  介绍最新的快捷软件研发过程

资源指南 资源指南 – – 网站网站Agile Alliance Agile Alliance http://www.agilealliance.orghttp://www.agilealliance.org

Scrum web site Scrum web site http://www.controlchaos.comhttp://www.controlchaos.com

Scrum meets RUPScrum meets RUPhttp://www-128.ibm.com/developerworks/rational/http://www-128.ibm.com/developerworks/rational/

library/feb05/krebslibrary/feb05/krebs

Page 30: SDM 242 Scrum:  介绍最新的快捷软件研发过程

资源指南 资源指南 – – 论坛和论文论坛和论文Yahoo Scrum Development Yahoo Scrum Development discussion group discussion group http://groups.yahoo.com/group/scrumhttp://groups.yahoo.com/group/scrumdevelopmentdevelopmentGoogle Agile Methodologies Google Agile Methodologies DirectoryDirectoryhttp://www.google.com/Top/Computers/Programming/http://www.google.com/Top/Computers/Programming/

Methodologies/AgileMethodologies/Agile

Google Scholar Papers about Google Scholar Papers about ScrumScrumhttp://scholar.google.com/scholar?http://scholar.google.com/scholar?

q=scrum+software+development&iq=scrum+software+development&ie=UTF-8&oe=UTF-8&hl=ene=UTF-8&oe=UTF-8&hl=en

Page 31: SDM 242 Scrum:  介绍最新的快捷软件研发过程

问题和回答问题和回答

Page 32: SDM 242 Scrum:  介绍最新的快捷软件研发过程