背景
橄榄球赛场上争球(下图)时,两队前锋在球面前把胳膊加在一起围成一圈,压低重心争抢球权。这个时候两军对垒,剑拔弩张,气氛非常紧张。队员都必须朝着共同的目标和方向去争抢,不能分散力量,否则难以抢到球权,这边是橄榄球赛场上的Scrum
。
软件产品的传统开发模式(“接力赛”模式)与时代要求最快、最灵活的目标冲突,使人们不得不考虑一种整体方式或“橄榄球”(Scrum,团队作为一个整体进行比赛,来回传球)方式,来迎合当前软件需求的矛盾,故将Scrum比喻成新型的软件开发模式。
概述
Scrum是敏捷开发模型中的一套框架
,是一个增量、迭代
的开发过程框架
。在框架下人们可以解决复杂的自适应难题
,同时也能高效并创造性地交付可能最高价值的产品。
Scrum框架由Scrum团队及与之相关的角色
、事件
、工件
和规则
组成,每个部分都有其特定的目的,对Scrum的成功都起着至关重要的作用。
应用范围
《敏捷宣言》从未对项目的规模作出任何的限制。理论上,Scrum可应用在任何规模的团队当中。但是在实践发现,Scrum的精髓在于小团队(5~9人),个体团队具有高度灵活性和适应性
。
Scrum开发过程由若干个迭代周期组成,一个迭代周期称为Sprint,每个迭代周期的建议间隔为1~4
周。
在Scrum中,使用产品backlog来管理产品的需求,产品Backlog是一个按照商业价值排序的需求列表,列表条目的展示形式通常为用户故事
。Scrum总是优先开发较高价值的需求。
Scrum组件(3355)
Scrum框架由3大角色
、3大工件
、5大事件
、5大价值观
共同编织而成。在实行Scrum之前,我们需要清晰了解这4大组件在自身项目上的自身定义。“谁是团队的Scrum Master?”“谁是团队的Product Owner?”“谁组织每天的站立会议?”等等问题需要明晰。
三大角色
Product Owner
简称PO,确定产品的方向和愿景,定义产品发布内容、优先级和交付时间,为产品投资回报率负责。
PO一般由产品经理担任,其日常工作包括:
- 管理经济效益
- 参与规划活动
- 梳理产品列表
- 定义验收标准
- 与开发团队合作
- 与利益干系人合作,是团队的唯一代言人
Scrum Master
简称SM,主要负责确保团队合力运作Scrum,并帮助团队扫除实施过程中的障碍。
SM一般由开发负责人担任,其日常工作包括:
- 组织和推进Scrum活动
- 指导团队成员
- 和产品负责人梳理产品列表
- 为团队扫除障碍
- 帮助团队持续改进
Scrum Team
是跨职能团队,负责产品的设计、开发、QA、运维等工作,包括架构师、开发人员、测试人员、数据管理员、运维人员等。
三大工件
Backlog:产品待办列表,即整个项目团队未完成的所有任务,包括产品功能、质量属性需求、缺陷修复等。 Sprint:冲刺,一个敏捷项目会划分为几个迭代阶段,每个迭代阶段称为Sprint。
Product Backlog
产品Backlog是由产品负责人把客户的商业需求按照优先级排出来的列表,整个项目有且只有一个Backlog。Backlog的内容由产品负责人随时按照客户的需求进行更新,并作出粗略的工作量预估。
Product Backlog的存储形式可以是Excel,也可以是由专门的管理系统维护(如JIRA、Teambition等)
Sprint Backlog
本次冲刺(Sprint)规划要完成的需求清单。Sprint Backlog由Scrum Master编写完成,Sprint Backlog的状态在每日站立会议后由Scrum Master更新。Sprint Backlog可以是在白板上展示,也可以由系统完成。
Increment
冲刺(Sprint)结束后对外发布的结果,包括新功能、修复缺陷或优化点。
五大事件
Sprint
冲刺,Sprint规划会议、每日Scrum站立会议、Sprint评审会议和Sprint回顾会议四个事件的总称。
Sprint规划会议
下一个Sprint要实现的目标和范围。 由Scrum Master组织,在每次Sprint开始的时候,对所有待开发的产品部件进行讨论,估算和决定哪些是可以在当前Sprint内完成,并进行任务分派。
每日Scrum站立会议(15~30分钟)
促进信息在团队内共享和透明。每日站立会议由Scrum Master组织,每个人需要回答一下问题:
- 我昨天做了什么?
- 我今天要做什么?
- 有什么困难?
Sprint评审会议(2~4小时)
在Sprint结束前召开,确定本次冲刺的结果。Sprint评审会议由Scrum Master组织,关注内容包括:
- 向团队展示完成的功能并收集反馈。
- 对未完成功能进行原因说明。
- 要求所有人参与,包括客户。
Sprint回顾会议(2~4小时)
复盘本次Sprint,总结经验教训并形成切实可行的改进清单。Sprint回顾会议由Scrum Master组织,关注内容包括:
- 检视与调整过程。
- 充分利用主观和客观数据(缺陷分析、燃尽图等)。
- 重点关注持续过程改进的效果。
- 找数量适中的过程改进项并承诺在下个冲刺采用。
五大价值观
- 承诺:愿意对目标作出承诺。
- 勇气:敢承诺,敢履行,敢说不。
- 专注:全身心都用到你承诺的工作中。
- 开放:团队内所有信息对所有人开放。
- 尊重:每个人都有他独特的价值和经验。
Scrum规则
Scrum规则就是把三大角色、三大工件和五大事件组织起来,管理它们之间的关系和交互。
- 产品负责人产品立项之初就要给产品定下愿景、目标。
- 产品负责人用User Story的形式来描述用户需求。
- 产品负责人把用户需求存档到产品Backlog中。
- Scrum Master发起Sprint规划会议,组织从产品Backlog中选出本次Sprint要完成的需求,形成Sprint Backlog。
- 在Sprint迭代过程中,每天由Scrum Master发起并组织站立会议。
- 产品测试验收通过后,由Scrum Master发起Sprint评审会议,以确定Sprint是否能够通过。
- Sprint评审通过后,Scrum Master组织本次Sprint复盘,保持先进,吸取不足,及时提高。
- 由Scrum Master发起Sprint规划会议,准备进入到下一次的Sprint中。
总结
Scrum就像一把双刃剑,用得好可以得到非常高的生产力,用得不好,不但没有提升生产力,反而让团队陷入混乱当中。并不是每一个项目都适合敏捷开发,也不是所有团队都要采取Scrum,具体需要根据团队的构成和能力。
Q&A
-
Sprint是什么意思?
冲刺,一个敏捷项目会划分为几个迭代阶段,每个迭代阶段称为Sprint。
-
Scrum也可以应用于大规模团队当中。
Scrum可以应用于大规模团队中,如SAFe、Nexus等实践,但是Scrum的精髓在于小团队。
-
采用了Scrum是不是就不需要写文档了?
Scrum与写不写文档没有直接关系,但是采用了scrum后,大多数团队的文档工作是减少了。当然,scrum还是需要编写文档,backlog等内容是无法省略的。