Scrum 是一个框架,在这个框架中人们可以解决复杂的自适应问题,同时也能 高效并有创造性地交付尽可能高价值的产品。
Scrum 是:轻量级的、容易理解的 、难以精通的
Scrum 不是开发产品的一种流程或一项技术,而是一个框架,在这个框架里可以应用各种流程和技术。
Scrum能使产品管理和开发实践的相对功效(relative efficacy) 显现出来, 以便进行改进。
Scrum 框架由 Scrum 团队及其相关的角色、事件、工件和规则组成。框架中的每个模块都有其特定的目的, 对Scrum的成功实施和运用都至关重要。
Scrum 基于经验型流程控制理论, 或者称为经验主义。经验主义主张知识源于经验, 而决策基于已知的事物。Scrum采用迭代增量式的方法来优化可预测性和管理风险。
透明性、检视、调整是经验型流程的三大支柱,支撑起每个经验型控制流程的实施。
1.我们首先需要确定一个 Product Backlog(按优先顺序排列的一个产品需求列表),这个是由 Product Owner 负责的;
2.正式开始一个 sprint 开始之前,产品、研发、测试需要一同开一次 sprint planning meeting,共同讨论本次 sprint 的功能点,需求讨论或技术讨论;成员预估需求所需开发时间;团队输出是否满足需求,排入 sprint backlog;
3.planning meeting 下来之后每个团队成员对自己在这个sprint中的工作进行整理,拆分小任务,预估开发完成时间,自己排自己的优先级;
4.进行 Daily Scrum Meeting,这个环节在 agile 中非常关键,是 agile 的日常修炼,控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出来寻求帮助。完了以后SM负责根据结果更新 burndown chart;
5.当一个 Sprint 结束时,我们要进行 Sprint Review Meeting,也称为评审会议,产品负责人和客户都要参加,每一个Scrum Team的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消);
6.最后就是 Sprint Retrospective Meeting,复盘这个 sprint,以轮流发言方式进行,每个人都要发言,总结并讨论做得好的地方、需要改进的地方;根据实际情况进行下一个 sprint 的任务安排。
这样周而复始,按照同样的步骤进行下一次Sprint.
Scrum 关键词汇解释
1.product backlog: 可以预知的所有任务, 包括功能性的和非功能性的所有任务。
2.sprint: 一次跌代开发的时间周期,一般最多以30天为一个周期.在这段时间内,开发团队需要完成一个制定的backlog,并且最终成果是一个增量的,可以交付的产品。
3.sprint backlog: 一个 sprint 周期内所需要完成的任务。
4.Scrum Master: 确保团队合理的运作 Scrum,并帮助团队移除实施中的障碍。
5.PO (Product Owner): 即产品负责人,确定产品的方向和愿景,定义产品发布的内容、优先级及交付时间,为产品负责。
6.scrum team(开发团队): 一个跨职能的小团队,包括开发测试,人数5-9人为佳,团队拥有交付可用软件需要的各种技能。
7.time-box: 一个用于开会时间段。比如每个 daily scrum meeting(每日站立会议) 的time-box为15分钟。
8.sprint planning meeting: 在启动每个sprint前召开。该会议需要制定的任务是:PO 和团队成员将 backlog 分解成小的功能模块,决定在即将进行的 sprint 里需要完成多少小功能模块,确定好这个 Product Backlog 的任务优先级。另外,该会议还需详细地讨论如何能够按照需求完成这些小功能模块。制定的这些模块的工作量以小时计算。
9.Daily Scrum meeting:开发团队成员召开,一般为15分钟。每个开发成员需要向 team 汇报三个项目:
①昨天完成了什么,完成了百分之多少,还剩百分之多少?
②今天你打算做什么?
③完成你的目标是否存在什么障碍?
10.Sprint review meeting:在每个 Sprint 结束后,这个Team将这个 Sprint 的工作成果演示给 Product Owner,客户,老板和其他相关的人员。
11.Sprint retrospective meeting:对刚结束的Sprint进行总结。会议的参与人员为团队开发的内部人员。一般该会议为1小时。
Scrum 三大角色
Scrum“角色”–无规矩不成方圆
PO
必须有一个项目持有者,制定规划并把握项目走向,一般就是产品经理。
SM
敏捷教练。一般由对技术开发以及当前项目明晰的技术经理担任。
TEAM
Scrum 的特性
不断交付软件以满足客户需求,每个迭代版本都是可运行的
欢迎需求的变化
及时沟通,拒绝过度设计
量化了工作项目的进度和团队的产出
流程简单,沟通顺畅