2020 Scrum 指南™


Scrum 指南的目的

在 1990 年代初,我们开发了 Scrum。在 2010 年,我们撰写首版 Scrum 指南,以帮助全世界的人们理解 Scrum。自那时起,我们通过小的功能更新对 Scrum 指南进行了演进。我们是 Scrum 指南的共同后盾。

Scrum 指南包含了 Scrum 的定义。框架的每个元素都有其特定的目的,这对于使用 Scrum 实现全部价值和成果是至关重要的。如果更改 Scrum 的核心设计或理念、遗漏元素或不遵循 Scrum 的规则,将掩盖问题并限制 Scrum 的好处,甚至可能变得毫无用途。

我们关注到 Scrum 在日益复杂的世界中应用越来越广泛。我们很荣幸地看到Scrum 在许多本质上具有复杂性的工作领域中被采用,超越了 Scrum 的起源领域——软件产品开发。随着 Scrum 的应用范围不断扩大,开发者(developers)、研究人员、分析师、科学家和其他专家都能在工作中应用。因此,我们在 Scrum 中使用 “developers” 一词并不是为了排除其他使用者,而是为了简化统称。如果您从 Scrum 中获得价值,那么您可以将自己视为其中一员。

在使用 Scrum 时,可以找到、应用和设计适合本文中所描述的 Scrum 框架的模式、过程和见解。对它们的描述超出了 Scrum 指南的目的,因为它们因 Scrum 的使用具体情境不同而不同。这些使用 Scrum 框架的特定技巧有很大的差异,因此不在本文中描述。

Scrum 的定义

Scrum 是一个轻量的框架,它通过提供针对复杂问题的自适应解决方案来帮助人们、团队和组织创造价值。

简而言之,Scrum 需要 Scrum Master 营造一个环境,从而:

  1. 一名产品负责人将解决复杂问题所需的工作整理成一份产品待办列表。
  2. Scrum 团队在 一个 Sprint 期间将选择的工作转化为价值的增量。
  3. Scrum 团队和利益攸关者检视结果并为下一个 Sprint 进行调整。
  4. 重复

Scrum 是易于理解的。原封不动地去尝试,并确定其哲学、理论和结构是否有助于实现目标和创造价值。 Scrum 框架故意不完整,仅定义了实施 Scrum 理论所需的部分。Scrum 建立在其使用者的集体智慧之上。Scrum 的规则没有为人们提供详细的使用说明,而是指导他们之间的关系和互动。

在 Scrum 框架中,可以使用各种不同的过程、技术和方法。Scrum可以将一些已有的实践包装进来,也可以甄别出非必须的实践。Scrum 可以凸显当前管理、环境和工作技术的相对成效,以便可以进行改进。

Scrum 理论

Scrum 基于经验主义和精益思维。 经验主义主张知识源自实际经验以及根据当前观察到的事物作出的判断所获得。精益思维减少浪费,专注于根本。

Scrum 采纳一种迭代和增量的方法来优化对未来的预测性并控制风险。 Scrum 让一群共同拥有所有技能和专长的人员参与进来完成工作,并根据需要分享或获得所需技能。

Scrum 将 4 个正式事件组合在一起以在一个容器型事件 Sprint 中进行检视和适应。这些事件之所以起作用,是因为它们实现了基于经验主义的 Scrum 的三个支柱:透明、检视和适应。

透明(Transparency)

涌现的过程和工作必须对执行工作的人员和接受工作的人员都是可见的。在 Scrum 中,重要的决策是基于其 3 个正式工件的感知状态。透明度较低的工件可能导致做出降低价值并增加风险的决策。

透明使检视成为可能。没有透明的检视会产生误导和浪费。

检视(Inspection)

Scrum 工件和实现商定目标的进展必须经常地和勤勉地检视,以便发现潜在的不良的差异或问题。为了帮助检视,Scrum 以 5 个事件的形式提供了稳定的节奏。

检视使适应成为可能。没有适应的检视是毫无意义的。Scrum 事件旨在激发改变。

适应(Adaptation)

如果过程的任何方面超出可接受的范围或所得的产品不可接受,就必须对当下的过程或过程处理的内容加以调整。 调整工作必须尽快执行以最小化进一步的偏差。

当所涉人员没有得到授权或不能自管理时,则适应将变得更加困难。 在通过检视学到任何新东西时,Scrum 团队会做出相应调整。

Scrum 价值观

Scrum 的成功应用取决于人们变得更加精通践行并内化 5 项价值观:

承诺, 专注, 开放, 尊重和勇气

Scrum 团队致力于达成其目标并且相互支持。他们主要专注于 Sprint 的工作,以便尽可能地向着这些目标获取最好的进展。 Scrum 团队及其利益攸关者对工作和挑战持开放态度。 Scrum 团队成员相互尊重,彼此是有能力和独立的人,并因此受到与他们一起工作的人的尊重。Scrum 团队成员有勇气做正确的事并处理那些棘手的问题。

这些价值观为 Scrum 团队的工作、行动和行为指引方向。做出的决定、采取的步骤以及使用Scrum 的方式应强化这些价值观,而不是削弱或破坏它们。Scrum 团队成员通过 Scrum 事件和工件来学习和探索这些价值观。当 Scrum 团队和与他们一起工作的人们体现这些价值观时,基于经验主义的 Scrum 的三个支柱:透明、检视和适应,就成为现实,并在每个人之间构建信任。

Scrum 团队(Scrum Team)

Scrum 的基本单位是小团队,称为 Scrum Team。 Scrum 团队由一名 Scrum Master,一名产品负责人和开发人员组成。在 Scrum 团队中,没有子团队或层次结构。Scrum 团队是具有凝聚力的专业团体,一次专注于一个目标,即产品目标。

Scrum 团队是跨职能的,这意味着团队成员具有在每个 Sprint 中创造价值而所需的全部技能。他们也是自管理的,这意味着他们在团队内部决定谁做什么、何时做以及如何做。

Scrum 团队规模足够小以保持灵活,同时足够大以便可以在 一个 Sprint 中完成有意义的工作,通常只有 10 人或更少。总的来说,我们发现较小的团队沟通更好,效率更高。如果 Scrum 团队变得太大,则应考虑将他们重组为多个具有凝聚力的 Scrum 团队,每个团队都专注于同一产品。因此,他们应该共享相同的产品目标、产品待办列表和产品负责人。

Scrum 团队负责所有与产品相关的活动,包括与利益攸关者的协作、验证、维护、运营、实验、研究和开发,以及可能需要进行的其他任何活动。组织组建并授权 Scrum 团队自行管理他们自己的工作。以可持续的速度在 Sprint 中工作可以提高 Scrum 团队的专注度和一致性。

整个 Scrum 团队都有责任在每个 Sprint 中创建有价值的、有用的增量。 Scrum 在 Scrum 团队中定义了三种特定的职责:开发人员、产品负责人和 Scrum Master。

开发人员(Developers)

开发人员是 Scrum 团队中致力于创建每个 Sprint 可用增量的任何方面的人员。

开发人员所需的特定技能通常很广泛,并且会随着工作领域的不同而变化。但是, 开发人员始终要负责:

产品负责人(Product Owner)

产品负责人负责将 Scrum 团队的工作所产生的产品价值最大化。 如何做到这一点可能在组织、Scrum 团队和个体之间存在很大差异。

产品负责人还负责对产品待办列表进行有效管理,包括:

产品负责人可以自己做上述工作,或者也可以将职责委托他人。 然而无论如何, 产品负责人是负最终责任的人。

为保证产品负责人取得成功,整个组织必须尊重他们的决定。这些决定在产品待办列表的内容和顺序中可见,并在 Sprint 评审会议时透过可检视的增量予以体现。

产品负责人是一个人,而不是一个委员会。在产品待办列表中,产品负责人可以代表许多利益攸关者的期望要求。那些想要改变产品待办列表的人可以尝试去说服产品负责人来做到这一点。

Scrum Master

Scrum Master 负责按照 Scrum 指南的游戏规则来建立 Scrum。他们通过帮助 Scrum 团队和组织内的每个人理解 Scrum 理论和实践来做到这一点。

Scrum Master 对 Scrum 团队的效能负责。他们通过让 Scrum 团队在 Scrum 框架内改进其实践来做到这一点。

Scrum Masters 是真正的领导者,服务于 Scrum 团队和作为更大范围的组织。

Scrum Master 以多种方式服务于 Scrum 团队,包括:

Scrum Master 以多种方式服务于产品负责人,包括:

Scrum Master 以多种方式服务于组织,包括:

Scrum 事件(Scrum Events)

Sprint 是所有其他事件的容器。Scrum 中的每个事件都是检视和适应 Scrum 工件的正式机会。这些事件都是为实现所需的透明度而特别设计的。未能按规定运作任何事件将导致失去检视和适应的机会。Scrum 使用事件来创造规律性,并以此最小化对 Scrum 中未定义的会议的需要。 最理想的是,所有事件都在同一时间同一地点举行,以便减少复杂性。

Sprint

Sprint 是 Scrum 的核心,在这里创意转化为价值。

它们是固定时长的事件,为期一个月或更短,以保持一致性。前一个 Sprint 结束后,下一个新的 Sprint 紧接着立即开始。

实现产品目标所需的所有工作,包括 Sprint 计划会议、每日 Scrum 会议、Sprint 评审会议和 Sprint 回顾会议,都发生在 Sprint 内。

在 Sprint 期间:

Sprint 通过确保至少每个日历月一次对达成产品目标的进展进行检视和适应,来实现可预测性。当 Sprint 的长度拉得太长时,Sprint 目标可能会失效,复杂性可能会上升,同时风险可能会增加。可以使用较短的 Sprint 来产生更多的学习周期,并将成本与工作投入的风险限制在更短的一段时间内。每个 Sprint 都可以视为一个短期的项目。

存在各种各样的实践来预测进展,例如,燃尽图、燃起图或累积流图。尽管被证明是有用的,然而这些实践并不能用来取代经验主义的重要性。在复杂的环境中,未来将要发生什么是未知的。只有已经发生的事情才能用来做前瞻性的决策。

如果 Sprint 目标已过时,那么就可以取消 Sprint。只有产品负责人有取消 Sprint 的权力。

Sprint 计划会议(Sprint Planning)

Sprint 计划会议通过安排在 Sprint 中要做的工作来启动 Sprint。最终的计划是由整个 Scrum 团队协作创建的。

产品负责人要确保与会者准备好讨论最重要的产品待办列表项 ,以及它们如何映射到产品目标。Scrum 团队还可以邀请其他人参加 Sprint 计划会议以提供建议。

Sprint 计划会议处理以下话题:

话题一:为什么这次 Sprint 有价值?

产品负责人提议产品如何在当前的 Sprint 中增加其价值和效用。然后,整个 Scrum 团队将共同制定一个 Sprint 目标,用以沟通当前 Sprint 对利益攸关者有价值的原因。必须在 Sprint 计划会议结束之前最终确定 Sprint 目标。

话题二:这次 Sprint 能完成(Done)什么?

通过与产品负责人讨论, 开发人员从产品待办列表中选择一些产品待办列表项,放入当前 Sprint 中。 Scrum 团队可以在此过程中精化这些产品待办列表项,从而增加理解和信心。

选择在 Sprint 中可以完成多少任务可能会有挑战。 但是,开发人员对他们以往的表现,他们在即将到来的 Sprint 内的产能以及对他们的完成的定义了解得越多,他们对 Sprint 预测就越有信心。

话题三:如何完成所选的工作?

对于每个选定的产品待办列表项,开发人员都会规划必要的工作,以便创建符合完成的定义的增量。这通常是通过将产品待办列表项分解为一天或更短的较小项来完成的。开发人员自行决定如何完成这一工作。没有人告诉他们如何将产品待办列表项转化为价值的增量。

Sprint 目标、这次 Sprint 所选出的产品待办列表项加上如何交付它们的计划称之为 Sprint 待办列表。

Sprint 计划会议是有时间盒限定的,以一个月的 Sprint 来说最多为 8 个小时。对于更短的 Sprint,Sprint 计划会议所需时间通常会更短。

每日 Scrum 会议(Daily Scrum)

每日 Scrum 会议的目的是检视达成 Sprint 目标的进展,并根据需要调整适应 Sprint 待办列表,以调整即将进行的计划工作。

每日 Scrum 会议是一个属于 Scrum 团队的开发人员的 15 分钟的事件。为了降低复杂性,它在 Sprint 的每个工作日都在同一时间同一地点举行。如果产品负责人或 Scrum Master 正在积极处理 Sprint 待办列表上的项,那么他们将作为开发人员参与其中。

开发人员可以选择他们想要的任何举行每日 Scrum 会议的结构和技术,只要他们专注于实现 Sprint 目标的进展,并为下一工作日的工作制定可行的计划即可。这可以创建专注点并改进自管理。

每日 Scrum 会议改善沟通,发现障碍,促进快速决策,从而消除其他会议的需要。

每日 Scrum 会议并不是唯一一次允许开发人员调整计划的时间。他们可以在一天中任何时间碰面,详细讨论如何调整适应或重新规划 Sprint 的剩余工作。

Sprint 评审会议(Sprint Review)

Sprint 评审会议的目的是检视 Sprint 的成果并确定未来的适应性。Scrum 团队向关键利益攸关者展示他们的工作结果,并讨论产品目标的进展情况。

在 Sprint 评审会议期间,Scrum 团队和利益攸关者将评审在这次 Sprint 中完成了什么,以及环境发生了什么变化。基于这些信息,与会者可以就下一步的工作进行协作。产品待办列表也可能会进行调整以适应新的机会。Sprint 评审会议是一个工作会议,Scrum 团队应避免将其仅限于展示。

Sprint 评审会议是 Sprint 的倒数第二个事件,Sprint 评审会议是有时间盒限定的,以一个月的 Sprint 来说,最多为 4 个小时。 对于更短的 Sprint,Sprint 评审会议通常所需的时间更短。

Sprint 回顾会议(Sprint Retrospective)

Sprint 回顾会议的目的是规划提高质量和效能的方法。

Scrum 团队检视最近 Sprint 中有关个体、交互、过程、工具和他们的完成的定义的情况如何。被检查的元素通常随工作领域而变化。识别使他们误入歧途的假设,并探究其起源。Scrum 团队讨论在 Sprint 期间哪些进展顺利,遭遇到哪些问题以及这些问题是如何解决(或未解决)的。

Scrum 团队识别出最有用的改变以提高其效能。最有影响力的改进将尽快得到执行。甚至可以将它们添加到下一个 Sprint 的 Sprint 待办列表中。

Sprint 回顾会议结束 Sprint。它是有时间盒限定的,以一个月的 Sprint 来说,最多为 3 个小时。对于更短的 Sprint, Sprint 回顾会议通常所需的时间更短。

Scrum 工件(Scrum Artifacts)

Scrum 的工件代表工作或价值。 它们旨在最大限度地提高关键信息的透明度。 因此,为适应而检视它们的每个人对工件都有相同的基础。

每个工件都包含一个承诺,以确保它提供可增强透明度并聚焦于可度量进展的信息:

这些承诺的存在是为了强化经验主义和 Scrum 团队及其利益攸关者的 Scrum 价值观。

产品待办列表(Product Backlog)

产品待办列表是一份涌现的和有序的清单,它列出了改进产品所需的内容。它是 Scrum 团队所承担工作的唯一来源。

能够被 Scrum 团队在一个 Sprint 中完成(Done)的产品待办列表项被认为准备就绪,在 Sprint 计划会议事件中可供选择。它们通常在精化活动后获得这种透明度。产品待办列表精化是将产品待办列表项分解并进一步定义为更小更精确的行为。这是一项持续进行的活动,为产品待办列表项增添细节,例如描述、优先顺序和规模。这些属性通常随工作领域而变化。

将要做这项工作的开发人员负责使其适当的大小。产品负责人可以通过帮助开发人员理解和权衡取舍来影响他们。

承诺:产品目标(Product Goal)

产品目标描述了产品的未来状态,可以作为 Scrum 团队制定计划的目标。产品目标在产品待办列表中。产品待办列表的其余部分涌现,用来定义“做什么”将实现产品目标。

产品是传递价值的载体。它具有明确的边界、已知的利益攸关者和定义明确的用户或客户。产品可以是一种服务、实体产品或其他更抽象的东西。

产品目标是 Scrum 团队的长期目标。他们必须先实现(或放弃)一个目标,然后再开始下一个目标。

Sprint 待办列表(Sprint Backlog )

Sprint 待办列表由 Sprint 目标(为什么做)、为 Sprint 选择的产品待办列表项(做什么)以及交付增量的可执行计划(如何做)组成。

Sprint 待办列表是开发人员为其制定的计划。它是开发人员在 Sprint 期间为实现 Sprint 目标而计划完成的工作,是一个高度可视且实时的工作画面。因此,随着学到更多,Sprint 待办列表在整个 Sprint 期间会进行更新。它应该有足够的细节,以便他们可以在每日 Scrum 会议中检视其进展。

承诺: Sprint 目标(Sprint Goal)

Sprint 目标是 Sprint 的单个目标。尽管 Sprint 目标是开发人员的承诺,但它为实现该目标所需的确切工作方面提供了灵活性。 Sprint 目标还创造了连贯性和专注点,鼓励 Scrum 团队一起工作而不是分开独自行动。

Sprint 目标在 Sprint 计划会议事件中确定,然后添加到 Sprint 待办列表中。当开发人员在 Sprint 期间工作时,他们将 Sprint 目标铭记在心。如果需要做的工作与预期的不同,他们将与产品负责人协作,在不影响 Sprint 目标的情况下,协商本次 Sprint 待办列表的范围。

增量(Increment)

一个增量是迈向产品目标的一块坚实垫脚石。每个增量都是之前所有的增量累加起来的,并经过彻底地验证,以确保整合在一起的所有增量都能工作。为了提供价值,增量必须是可用的。

在一个 Sprint 中可以创建多个增量。 增量的总和在 Sprint 评审会议中展示,从而支持经验主义。 但是,增量可以在 Sprint 结束之前交付给利益攸关者。Sprint 评审会议决不应该被视为发布价值的关口。

一项工作除非符合完成的定义,否则不能将其视为增量的一部分。

承诺: 完成的定义(Definition of Done)

完成的定义是当增量符合产品所需的质量度量标准时对其状态的正式描述。

当一个产品待办列表项符合完成的定义时,就会产生一个增量。

完成的定义通过使每一个人对作为增量的一部分、什么样的工作算是已完成的工作有一个共同的理解来创建透明。如果一个产品待办列表项不符合完成的定义,那么它就不能发布,甚至不能在 Sprint 评审会议中展示它。相反,它返回到产品待办列表中以供将来考虑。

如果增量的完成的定义是组织标准的一部分,那么所有 Scrum 团队都必须以此为最低标准来遵守。如果它不是组织标准的一部分,那么 Scrum 团队必须制定适合于该产品的完成的定义 。

开发人员需要遵守完成的定义。如果有多个 Scrum 团队在同一产品上一起工作,那么他们必须一起制定并遵守同样的完成的定义。

结束语

Scrum 是免费的,并在本指南中提供。本文概述的 Scrum 框架是不可改变的。虽然仅实施部分的 Scrum 是可能的,但其结果就不是 Scrum 了。Scrum 仅以完整形式而存在,唯其如此才能有效成为其他技术、方法和实践的容器。

致谢

人们

在为 Scrum 作出贡献的成千上万的人中,我们要特别指出那些在其最初提供帮助的人们:Jeff Sutherland 以及与他一道工作的 Jeff McKenna 和 John Scumniotales,还有 Ken Schwaber 以及与他一道工作的 Mike Smith 和 Chris Martin,他们一起工作 。 在随后的几年中,许多其他人作出了贡献,如果没有他们的帮助,Scrum 不会被提炼至如今这般。

Scrum 指南历史

在 1995 年的 OOPSLA 大会上,Ken Schwaber 和 Jeff Sutherland 首次联合公开演讲 Scrum。这场演讲本质是 Ken 和 Jeff 在之前数年运用 Scrum 积累所得的记录,并首次公开提出 Scrum 的正式定义。

Scrum 指南记录了 Jeff Sutherland 和 Ken Schwaber 在 30 多年间对 Scrum 的开发、演进和维护。此外,其他一些资源在模式、过程和见解方面为 Scrum 框架提供了补充。这些可能可以提高生产力、价值、创造力和对结果的满意度。

Scrum 的完整历史在其他地方也有记载。我们向首先尝试和证实 Scrum 的公司:Individual Inc.,Newspage,Fidelity Investments 和 IDX(现为 GE 医疗)表示致敬。

致谢简体中文译者

本简体中文指南 2020 版由上述致谢的开发者 Ken Schwaber 和 Jeff Sutherland 所提供的英文原版 2020 版翻译而来。

全中文版译者:

同时,我们对以往中文版的译者表示感谢:

从2017 版到 2020 版指南的变更

规定性更低

这些年来,Scrum 指南开始变得越来越有规定性。 2020 版旨在通过删除或淡化规定性语言,使 Scrum 重新成为最低限度的框架。例如删除了每日 Scrum 会议三个提问,淡化了关于产品待办列表项属性的相关描述,淡化了 Sprint 待办列表中改进项的相关描述,删除了“取消 Sprint”一节更改为更为简单的描述 ,等等。

一个团队,专注于一个产品

我们的目标是消除导致产品负责人和 Dev 团队之间出现“代理”或“我们与他们”行为的团队中独立团队的概念。现在只有一个 Scrum 团队专注于同一目标,有三种不同的职责:产品负责人、SM 和开发人员。

产品目标介绍

2020 版 Scrum 指南引入了产品目标的概念,为 Scrum 团队提供了一个更具价值的目标的专注点。每个 Sprint 都应使产品更接近整体的产品目标。

给 Sprint 目标、完成的定义和产品目标安了家

之前版本的 Scrum 指南描述了 Sprint 目标和完成的定义,但是没有真正赋予它们一个身份。 它们不是完全意义上的工件,而是在某种程度上依附于工件。 随着产品目标的增加,2020 版对此提供了更为清晰的说明。现在,三个工件中的每一个都包含一个相应的的“承诺”。 对于产品待办列表,它是产品目标,对于 Sprint 待办列表 则是 Sprint 目标,而增量则是完成的定义(现在,完成不再加引号)。它们的存在是为了带来透明度,并专注于每个工件的进展。

自管理胜过自组织

之前版本的 Scrum 指南将开发团队称为自组织,选择谁和如何做。 2020 版更关注 Scrum 团队,强调一个自管理的 Scrum 团队,选择谁、如何做以及做什么。

三个 Sprint 计划会议话题

Sprint 计划会议的话题除了“什么”和“如何”之外, 2020 版 Scrum 指南还强调了第三个话题“为什么”,即 Sprint 目标。

为更广泛的受众而全面简化语言

2020 版 Scrum 指南着重于消除冗余和复杂的陈述,以及删除所有与 IT工作相关的推断(例如,测试、系统、设计、需求,等等)。现在, Scrum 指南不到 13 页。



© 2020 Ken Schwaber and Jeff Sutherland This publication is offered for license under the Attribution Share-Alike license of Creative Commons, accessible at https://creativecommons.org/licenses/by-sa/4.0/legalcode and also described in summary form at https://creativecommons.org/licenses/by-sa/4.0/. By utilizing this Scrum Guide, you acknowledge and agree that you have read and agree to be bound by the terms of the Attribution Share-Alike license of Creative Commons. 使用本 Scrum 指南,您认可以及同意以知识共享许可协议的署名-相同方式共享的条款。