Scrum 的历史

自 1970 年温斯顿·罗伊斯 (Winston Royce) 的“管理大型软件系统的开发”报告发表以来,许多人都在尝试寻找一种可以消除瀑布式开发模型缺点的方法。“瀑布”的替代方法是 Scrum 方法,现在将对其进行讨论。

Scrum 于 1986 年得名于 Takeuchi 和 Nonaki 的著作《新产品开发的新规则》。本文档认为,实现目标的最有效方法是为开发人员提供明确的行动计划。

1995 年,Sutherland 和 Schweiber 出版了另一本指南“使用 Scrum 进行软件开发”。此后,该出版物已多次更新。现在它被认为是开发这种方法的主要指南。当前版本的 Scrum 指南包含 2020 年更新的信息。

Scrum 指南的主要条款建议项目管理模板应基于开发人员在约定的时间范围内交付成品的事实 - 冲刺。为了成功实施 Scrum,建议使用由以下几个元素组成的结构:角色、事件、规则和工件。

Scrum 中的角色

Scrum 中共有三种角色,它们都组成了一个 Scrum 团队:

软件产品的客户是项目中最重要的人,因为只有他才能充分理解其对业务的价值。客户向开发人员解释未来产品的用户需求,但他不负责开发过程中的技术部分。在产品中创建某些元素或功能时,客户还会确定优先级。

开发人员受托执行技术任务,其交叉功能取决于应用范围。开发人员忙于创建冲刺积压工作、编写代码、根据冲刺目标定制项目以及其他任务。

Scrum Master 是 Scrum 团队的推动者。它为客户和开发人员提供帮助。简而言之,Scrum Master 忙于在未参与项目的人员与编写代码的人员之间进行沟通。有时,同一家大公司的不同编码人员团队会在这些团队的 scrum master 大会上进行交流和协调。

Scrum 中的事件

Scrum事件有5种类型:

Sprint 是 Scrum 中最重要的部分。它包括冲刺计划、每日站会(每日站会)、冲刺的回顾和回顾。

冲刺计划。Scrum 团队的所有成员都参与制定未来冲刺的计划。在这里提出产品理念,每个团队成员都可以表达自己的意见,他对此有何看法。然后在会议上确定优先级并宣布最后期限。

Daily Scrum 是每天的短站会,持续时间不超过 15 分钟。通常是为了计划编码器今天或明天的工作。在 Daily Scrum 上,您可以讨论当前的问题。所有参与该项目的开发人员都必须参加这样的研讨会。Scrum Master 的存在是允许的,但不是必需的。

Sprint Review(演示)- 显示在 sprint 期间创建的结果。通常这个事件发生在最后阶段。所有感兴趣的人都参与其中。

Sprint Retrospective——对冲刺结果的讨论。团队成员就他们如何应对分配给他们的任务以及如何在未来提高工作成果发表意见。

此外,有时还会进行 Backlog Refinement - Backlog Refinement。它讨论待办事项、为下一个冲刺做准备以及确定当前任务的优先级。

神器

Scrum 工件是在项目或冲刺结束时发生的工作。共有三个工件 - 产品积压、冲刺积压和增量。它们中的每一个都是及时向用户交付软件所必需的。还有辅助工件(燃尽图等)。

sprint 工件中包含的组件:

产品积压 - 界面和后端功能。

sprint backlog 是需要在迭代期间完成的任务列表。他们在冲刺开始前达成一致。

增量 - 冲刺期间创建的软件积压项目总数以及在此之前进行的增量值。完成的新增量必须在冲刺结束前显示。这意味着您拥有一个满足 scrum 团队要求的工作版本。

产品待办事项 - 它必须在冲刺迭代期间完成。通常,该元素分为几个小任务。

冲刺目标是需要完成的任务(创建积压项目或其他任务)。

冲刺燃尽图是冲刺结束前剩下的工作。燃尽图要么上升要么下降。这完全取决于团队成员在工作中遇到的困难。它不是进步的指标,只是解决问题的途径和激励。

Product Release/Product Burn-Down Chart是Scrum Master在下一个sprint结束前绘制的图表。横轴是冲刺,纵轴是剩余的工作量。

Scrum 框架规则

角色、事件和工件是 Scrum 的基础,但除此之外还有其他规则。所有这些都提高了工作流程的效率。以下是这些规则的列表:

  • Scrum 团队包括软件客户、Scrum 管理员和开发人员。
  • 所有冲刺应该是相同的长度。
  • 完成一个冲刺后,立即开始新的冲刺。
  • 冲刺总是从计划开始。
  • 团队成员在他们的工作日开始时进行早间站会。
  • 在每个冲刺期间审查每个冲刺。这改善了团队和利益相关者之间的沟通。
  • 不建议在 sprint 期间更改 sprint backlog。

Scrum 的局限性

除了明显的优点,Scrum 也有缺点:

  • 由于缺乏共同的截止日期,Scrum 通常会导致执行的工作量减少。
  • 由于项目参与者之间的参与度低或不愿合作,结果失败的可能性很大。
  • Scrum 结构很难在大型团队中使用,但仍有可能。有用于此的扩展框架:LeSS、SAFe、Nexus 等。
  • 项目中途一名或多名成员离开团队,对项目影响不大。