什么是Scrum?
Scrum是一个用于管理复杂产品开发的流程框架,而并非一项构建产品的流程或技术,在敏捷开发方法流行起来后,Scrum成了最流行的敏捷开发流程框架。其它的敏捷开发流程框架还包括Kanban, Lean等。
Scrum的理念
Scrum是基于实证流程控制理论(Empirical process control theory)设计的。TBD
下面我们从Scrum的参与角色和流程入手,看看如何来落地Scrum:
参与角色
- 产品负责人(Product Owner):产品负责人是团队的领导,他的主要职责是最大化产品和开发团队的价值。产品负责人的主要工作内容是管理产品待办事项表(Product Backlog),包括:清晰地描述产品待办事项表,设定待办事项优先级,确保其它的参与者(特别是开发团队)都理解待办事项。
- Scrum大师(Scrum Master):Scrum大师是团队教练,他的主要职责是保证团队正确的理解和实施Scrum方法论。Scrum大师要在团队中布道Scrum的理论,规则和最佳实践,同时按需参与到具体的Scrum事件中,指导团队的活动。
- 开发团队(Development Team):开发团队由交付可发布的产品增量的所有专家组成。开发团队是自组织的,自行决定如何实现待办事项;开发团队的成员是跨功能的,包含完成产品增量所需的所有技能;团队的成员可以有特定的技能和擅长的领域,但是他们的角色都是开发者(Developer),也不会再分为测试、需求分析等子团队。
Scrum流程
Scrum流程可以分为事件(Events)和工件(Artifacts),在上图中,蓝色的图形表示事件,青色图案黑色文字表示工件,工件也可以理解为流程中的产出物。Scrum中的预定义事件是用于产生规律并减少其它会议的需要,每个事件都是有固定时间的,(如以下列表中给出了每个事件的事件限制),以减少非生产活动的时间浪费。
下面来按顺序看一下所涉及到的事件和工件:
- 产品待办事项表(Product Backlog):产品待办事项表是一个按优先级排序的列表,包含了所有待实现的产品特性、需求、改进和修复。产品待办事项表是一个不断更新的列表,由产品负责人负责维护。在Scrum中,产品待办事项下表应当是需求的唯一来源。
- 冲刺计划(Sprint Planning):(活动,每个冲刺不超过8小时)在冲刺开始时,整个Scrum团队坐在一起,计划本冲刺的工作,以及讨论如何实现增量。
- 冲刺待办事项表(Spring Backlog):冲刺计划中,根据冲刺的目标,结合开发团队预估的工时,从产品待办事项列表中选择出的冲刺待办事项。在Sprint中,由开发团队负责更新:当发现为了完成本冲刺目标,有额外工作需要完成时,开发团队会增加冲刺待办事项;当开发团队完成了部分或全部工作时,也会更新预计剩余工时(estimated remaining work)。
- 每日站会(Daily Meeting):(活动,每日不超过15分钟)开发团队的每个成员回答三个问题:昨天做了什么,今天要做什么,遇到了什么问题。
- 冲刺评审(Spring Review):(活动,每个冲刺不超过4小时)在冲刺结束前,Scrum团队向干系人展示这个冲刺的增量,根据干系人的反馈调整产品待办事项列表。
- 产品增量(Increment):增量是一个冲刺完成的所有待办事项。
- 冲刺回顾(Spring Retrospective):(活动,每个冲刺不超过3小时)冲刺回顾是Scrum团队自我审视,评价人员、关系、流程和工作,并建立在下个冲刺中的改进计划。
实践Scrum时需要注意的问题
- 明确待办事项“完成”的定义
参考资料
1. https://dzone.com/refcardz/scrum
2. https://baike.baidu.com/item/Scrum
3. https://www.scrumstudy.com/whyscrum/scrum-empirical-process-control