用清晰简单的术语解释软件开发中的 Scrum 角色

敏捷软件开发方法,例如 Scrum,目前被众多企业广泛采用,成为其数字化转型策略的关键组成部分。

关于 Scrum

Scrum 框架旨在为敏捷软件开发提供结构化的方法,从而促进团队高效协作,并交付高质量的软件产品。

它是一个促进团队合作开发复杂产品的框架。Scrum 的核心理念并非一开始就交付完整的最终产品,而是以小而持续的增量方式发布,避免冗长的规划、设计、开发和测试周期。

Scrum 的关键原则在于透明的团队沟通、定期质量验证以及适应变化的能力。如果运用得当,Scrum 可以帮助团队及时且高效地交付高质量的软件产品。

Scrum 的主要优势

来源: scrum.org

  • 提高生产力: Scrum 团队将复杂问题分解成易于管理的小块,在冲刺周期内逐步交付。团队成员专注于冲刺(通常为期两周)内的特定任务。
  • 促进沟通: Scrum 鼓励团队定期沟通,确保每个人对目标和期望保持清晰认识,从而减少误解。尤其是在高节奏的冲刺周期中,团队必须同心协力。
  • 灵活适应: Scrum 具备高度的灵活性,允许团队根据不断变化的需求和优先级进行调整。这使得团队能够快速响应项目范围或客户需求的变动,无需等到开发周期结束。
  • 强调质量: Scrum 非常重视测试和质量保证,提倡自动化测试,以提高最终产品质量,降低缺陷风险,并确保满足客户需求。
  • 以客户为中心: Scrum 以客户为中心,让客户从始至终参与开发过程,通常以产品负责人的角色或直接沟通的方式参与。这确保了最终产品满足客户的需求并具有正确的优先级。

接下来,我们将详细探讨 Scrum 方法论的具体作用。

Scrum 方法论的作用

来源: 环聊网

Scrum 方法论的目标是为敏捷软件开发提供一个框架,促进团队协作。通过建立 Scrum 团队,定期举行会议并在每次冲刺周期中安排讨论(仪式),可以有效推进项目。以下是一些常见的 Scrum 仪式:

  • 每日站会: 团队成员每天聚在一起,简要讨论昨天的工作、今天的工作以及遇到的障碍。
  • 故事细化: 这是讨论和最终确定下一个冲刺中要执行的新需求(用户故事)的会议。
  • 冲刺计划: 团队在此仪式中评估已准备好的用户故事,并根据优先级和工作量估算,承诺在冲刺中完成特定子集。
  • 冲刺评审: 团队与利益相关者会面,展示在上一个冲刺周期中的成果。
  • 冲刺回顾: 团队内部的讨论,旨在反思哪些方面可以改进,以及未来需要调整的地方。

Scrum 方法论的核心意义在于它能够帮助团队更有效地工作。Scrum 的核心原则源于敏捷宣言,具体如下所示。

经验过程控制

Scrum 基于以下理念:通过持续检查和适应的经验过程可以实现最佳进展。这意味着团队应定期检查其工作,并调整流程以提高绩效。

自组织团队

Scrum 团队是自组织的,这意味着他们负责管理自己的工作并做出实现目标的决策。这有助于促进团队内部的协作和责任感。

限时迭代

Scrum 项目被划分为时间限制的迭代(称为冲刺),通常持续一到四周。这确保团队朝着特定目标努力并定期取得进展。

优先产品待办列表

产品待办列表是团队在项目期间将处理的功能和需求的优先级列表。产品负责人负责维护产品待办事项列表并确保其反映客户的需求和优先级。

持续改进

Scrum 强调持续改进的重要性,无论是正在开发的产品还是用于开发该产品的流程。这意味着团队应定期反思他们的工作并寻找提高绩效的方法。

挑战

来源: scrum.org

尽管 Scrum 方法在软件开发中非常有效,但团队在实施时可能会遇到一些挑战。

抵制变革

Scrum 需要思维方式和文化的显著转变,这对于某些团队成员来说可能难以接受。一些团队成员可能会抵制变革,这可能会对 Scrum 的有效实施构成挑战。关键是要理解 Scrum 的核心价值,否则难以有效参与。

缺乏经验

有效实施 Scrum 需要一定的经验和专业知识。如果团队成员不熟悉 Scrum 或敏捷方法,则可能面临挑战。

缺乏投入

Scrum 需要所有团队成员,包括产品负责人、Scrum Master 和开发团队的高度投入。如果团队成员没有完全投入到这个过程中,就很难达到预期的结果。

沟通不畅

Scrum 高度依赖团队成员之间的沟通和协作。如果团队成员不能经常有效地沟通,可能会遇到障碍。

过分强调流程

虽然 Scrum 为敏捷软件开发提供了一个框架,但重要的是要记住它只是一个框架。如果团队成员过于专注于遵循流程,他们可能会忽视交付高质量软件产品的最终目标。

Scrum 团队的角色

为了有效运作,每个 Scrum 团队都应由一些特定的角色组成。如果这些角色没有清晰的责任或数量不合理,可能会影响 Scrum 团队的成功组建。

#1. 开发团队

这是团队的执行部门,因此从产品交付的角度来看,可能是团队中最重要的部分。一个典型的 Scrum 开发团队由开发、测试、架构和分析师等专家组成,成员通常在 4 到 10 人之间。如果人数过少,可能难以称为团队,而人数过多则会使团队的日常沟通和管理变得过于复杂。

开发团队从待办事项列表中选取用户故事,进行评估,并在冲刺周期内将其实现。该团队负责用户故事的开发和测试,并在完成后将其部署到生产环境中。

#2. 敏捷大师

Scrum Master 充当开发团队的协调人。他安排定期会议,确保开发团队对内容有清晰的了解,并在冲刺期间组织活动,以实现冲刺计划和目标。

Scrum Master 并非内容创建者。事实上,Scrum Master 不需要从技术角度理解开发团队正在处理的用户故事(尽管这样做肯定有帮助)。Scrum Master 的主要职责是服务开发团队,保护他们免受外部干扰,确保团队按照敏捷原则工作。他充当团队的代言人,防止未经计划的更改干扰当前冲刺计划。

#3。 产品负责人

产品负责人 (PO) 充当开发团队和团队外部的业务用户(利益相关者)之间的桥梁。PO 与所有利益相关者讨论需求,并将商定的内容传递给 Scrum 团队。

然后 PO 为团队创建用户故事,提供清晰的描述和期望。PO 需要确保开发团队理解这些内容,以便团队能够评估每个用户故事。因此,PO 有权主导团队内部的用户故事细化讨论。

除了内容和整个待办事项管理之外,PO 还负责为待办事项列表中的每个用户故事设置优先级。但是,PO 不负责选择哪些用户故事进入冲刺。只有开发团队可以决定提交哪些范围,并选择下一个冲刺的范围。PO 只能通过正确设置和传达优先级来影响选择。

Scrum 团队内部角色的交互

来源: scrum.org

即使人员和角色都安排妥当,有效的沟通仍然是成功的关键。最重要的是,要有正确的沟通方式,因为很多方法都可能导致错误。这实际上是许多 Scrum 团队失败的最大原因:他们没有正确地设置沟通机制。

例如,产品负责人经常要求开发团队提出新的用户故事。但创建待办事项列表并非开发团队的责任。当然,他们可以帮助定义用户故事,使其更详细,并将其拆分以便可以在冲刺中完成。但产品负责人应对待办事项列表负责。理想情况下,PO 不应要求开发团队直接与业务利益相关者沟通。

另一方面,Scrum Master 和产品负责人都不应定义下一个冲刺的范围。然而,这种情况经常发生,因为 Scrum Master 和产品负责人在 Scrum 团队中通常扮演某种自然领导者的角色。但实际上,他们不能决定开发团队应该或不应该在冲刺中做什么。开发团队才是决定者。这意味着 PO 提供的信息是关于从业务角度来看哪些用户故事更重要;PO 甚至可以按照从最重要到最不重要的顺序对积压的用户故事进行排序。通过这种方式,开发团队就知道首先要处理哪些用户故事。

产品负责人应努力定期与团队讨论 PO 希望团队交付的新内容。PO 在这里充分讨论他/她创建或提交到待办事项列表中的每个用户故事。开发团队中的每个人都必须理解该用户故事,并且他们清楚验收标准。

Scrum Master 不仅是团队的协调人,也是团队的保护者。在某种程度上,SM 保护团队免受产品负责人、领导层或其他外部利益相关者的干扰。SM 负责维持内部 Scrum 流程的运作并主持团队的大部分仪式。在每日站会上,SM 确保每个人只分享当天重要的更新,以便会议时间不超过预定时间。这实际上适用于所有会议。

SM 还定期为团队组织回顾会议,帮助团队反思在上一个冲刺周期中所做的工作,并确定团队可以改进的领域。

结语

建立一个成功的 Scrum 团队通常需要一个过程。即使团队成员已经拥有一定的经验,也需要在团队内部积累经验。每个 Scrum 团队都是独一无二的,找到一种团队合作、就共同主题进行协作的方法总是需要时间。

最重要的是,团队组建后保持稳定。只有这样,团队才能在下一个冲刺中开始改进。最终目标是转变为一个自组织团队,在大多数情况下,即使 Scrum Master 的存在也不是必须的。如果你不能使团队凝聚在一起,你就仍然处于学习阶段。

接下来,我们将介绍适合初创企业和中型企业的最佳 Scrum 工具。