Scrum 2020 的学习笔记
scrum的基础知识
Scrum 是一个用于开发和维护复杂产品的框架 ,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个Sprint,每个Sprint的建议长度是2到4周(互联网产品研发可以使用1周的Sprint)。在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。Scrum团队总是先开发对客户具有较高价值的需求。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。挑选的需求在Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog。在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。 Scrum起源于软件开发项目,但它适用于任何复杂的或是创新性的项目。
Scrum流程如下图:
定义
Scrum 是一个轻量的框架,它通过提供针对复杂问题的自适应解决方案来帮助人们、团队和组织创造价值。简而言之,Scrum 需要 Scrum Master 营造一个环境,从而:
- 一名 Product Owner 将解决复杂问题所需的工作整理成一份 Product Backlog。
- Scrum Team 在 一个 Sprint 期间将选择的工作转化为价值的 Increment。
- Scrum Team 和利益攸关者检视结果并为下一个 Sprint 进行调整。
- 重复
从原文中的定义可以看出,Scrum的定义中并没有软件的成分,它是一个方法论,其目标是解决复杂问题,其特点是“自适应”。如何达到这种自适应呢?是通过迭代,迭代的过程包括:
- 工作定义与分解,生成Product Backlog
- 在冲刺期间生成一个价值增量
- 涉众在冲刺结束后对结果进行审查
- 计划下一次冲刺的内容
Scrum理论
Scrum是基于经验主义和精益思想。经验主义是在Scrum里的表现是将所有信息透明化,而精益思想在Scrum的表现是专注。
Scrum的三个支柱是“透明”,“检视”和“适应”。
透明
过程和工作对执行人员是可见的。透明使检视成为可能。
检视
其实就是定期检查,类似于CMMI中的QA活动,目的是发现潜在的不良的差异或者问题。
TODO:标准中写了Scrum以5个事件的形式提供了稳定的节奏。这是什么意思?
适应
当过程的任何方面超过可接受的范围或者所得的产品不可接受,就必须对当下的过程或者过程处理的内容加以调整。
我觉得适应这个词语翻译的不是很好,明显这是合规的意思。
价值观
Scrum的五项价值观:承诺,专注,开放,尊重和勇气。
PS:前边的三个支柱:透明、检视和适应。
Scrum Team
要点:
- 队伍中没有子团队或层次结构
- 一次只专注于一个目标,即Product Goal
- 团队成员具有在每个冲刺中创造价值而所需要的全部技能
- 足够小以保持灵活,一般10人或更少
- 团队负责所有与产品相关的活动
- 整个团队都有责任在每个迭代中创造有价值的增量(increment)
Developers
- 为每个冲刺创建计划
- 通过遵循完成定义来注入质量
- 每天根据冲刺目标来调整计划
- 作为专业人士为彼此负责
Product Owner
负责将工作所产生的产品价值最大化。
还负责对Product Backlog进行有效管理。
- 开发并沟通Product Goal
- 创建并清晰的沟通Product backlog条目
- 对上边的条目进行排序
- 确保Product backlog是透明,可见和可理解的
上述的各项工作,PO都是最终的负责人。PO是一个人,而不是一个委员会,他代表着涉众的期望要求。
Scrum Master
负责按照指南的规则来建立Scrum。他对Scrum Team的效能负责,而效能的改进是通过在Scrum框架内改进实践来实现的。
- 作为教练在自管理和跨职能方面辅导成员
- 帮助队伍转宇宇创建符合Definition of done 的高价值增量
- 促使移除队伍工作进展中的障碍
- 确保所有scrum事件都发生并且是积极的,富有成效的,并且在时间盒内完成。
以多种方式服务于PO,包括:
- 帮助有效定义Product Goal和管理Product Backlog的技巧
- 帮助队伍理解为何要清晰且简明的Product backlog条目
- 帮助建立针对复杂环境的基于经验主义的产品规划
- 当需要或者被要求时,引导利益相关者协作
以多种方式服务于组织,包括
- 带领、培训和作为教练辅导组织采纳Scrum
- 在组织范围内规划并建议scrum的实施
- 帮助员工和涉众理解并实施针对复杂工作的经验主义方法
- 解除队伍和利益相关者的隔阂
sprint
- 目的:将创意转换成价值
- 时间:小于一个月
- 工作:计划、每日站会、回顾、检视(修正)
在sprint期间
- 不能作出危及sprint Goal的改变
- 不能降低质量
- Product Backlog按需进行精细化
- 随着学到更多,可以与PO就范围加以澄清和重新协商
只有PO才有权力取消Sprint。
sprint计划
计划由整个小组协作创建。
PO要确保与会者准备好讨论最重要的Product Backlog条目,以及他们如何映射到Product Goal。
主要话题如下:
- 为什么这次冲刺有价值?PO介绍本次冲刺的价值和效用,然后整个队伍公共制定一个冲刺目标。
- 这次冲刺能完成什么?开发人员从需求列表中选择一些条目,放入当前的冲刺列表,在这个过程中可以对冲刺列表中的条目进行精化以加深理解和信心。
- 如何完成所选工作?开发人员对每个选择的条目进行规划,以便创建符合完成条件的增量,一般是分解成一天或更小的条目来完成的。开发人员自行决定如何完成。
计划所花费的时间不要超过8小时。
每日站会
- 目的:检视达成冲刺目标的进展;根据需要调整冲刺清单
- 时间:15分钟
冲刺回顾
- 目的: 检视sprint的成果并确定未来的适应性
- 方式: 向关键涉众展示工作成果,并讨论Product Goal的进展情况
- 时间:小于四个小时
内容:
- 本次完成了什么
- 环境发生了什么变化
- 下一步需要什么协作
- 是否调整Product Backlog
冲刺检视
目的:规划提高质量和效能的方法
检视范围:冲刺中有关个体,交互,过程,工具和他们的完成定义的情况,被检查的元素通常随着工作领域而变化,识别使他们误入歧途的假设,并探究其起源,Scrum team讨论在冲刺期间哪些进展顺利,遭遇到哪些问题以及这些问题如何解决(或未解决)的。
时间:小于3小时
Scrum工件
Scrum的工件代表工作或价值,每个工件都包含一个承诺,以确保它能提供可增强透明度并聚焦于可度量进展的信息。
工件 | 承诺 |
---|---|
Product backlog | Product Goal |
Sprint backlog | sprint goal |
increment | definition of Done |
Product Backlog
列出了改进产品所需的内容的清单。
Product Goal
Product Goal描述了产品的未来状态。它是Scrum team的长期目标。
sprint backlog
sprint backlog是由sprint goal(为什么做),为sprint选择的Product backlog条目(做什么),以及交付increment的可执行计划(如何做)组成。
它是开发者为其定制的计划,目的是为了实现sprint goal,是一个高度可视且实时的画面。
sprint goal
它是sprint的单个目标。
increment
每个increment都是之前累加起来的,并经过彻底验证的。
一个sprint中可以创建多个increment。increment的总和在sprint review中展示。
definition of done
它是当increment符合产品所需要的的质量度量标准时对其状态的正式描述。