(Source: What is Scrum?)
Scrum是一个项目管理框架,强调团队合作,问责制和迭代进展,以实现明确的目标。该框架从一个简单的前提开始:从可以看到或已知的东西开始。之后,跟踪进度并根据需要进行调整。
Scrum的三大支柱
Scrum的基础是经验主义,它指出知识来自经验,我们应该根据已知的事情做出决定。有三个支柱将Scrum结合在一起。
为什么选择Scrum?
Scrum一次提供功能,而瀑布只提供阶段。典型的瀑布式开发是基于阶段的顺序过程,在项目结束之前不会给出价值。Scrum将这种模式转变为每一周提供新功能,而不是专注于未来的大发布。
Scrum将复杂的工作划分为简单的部分,将大型组织划分为小型团队,将影响深远的项目划分为一系列短时间的称为sprint的视野。
通过迭代和渐进式构建,公司能够更快,更有效地为客户提供他们真正需要的产品和服务。使用Scrum,您可以在每个小开发周期结束时接收并整合客户反馈,这意味着您的结果将通过实际使用而非您的假设来塑造。这使得让客户和主要利益相关者密切参与和参与变得更加容易。
敏捷与Scrum
敏捷方法是一种有助于在SDLC过程中持续迭代开发和测试的实践。敏捷将产品分解为更小的构建。Scrum只是众多迭代和增量敏捷软件开发过程中的一个,它使我们能够专注于在最短的时间内提供业务价值。
Scrum框架通常处理的是需求可能会发生变化,或者大部分时间在项目开始时都不知道。Scrum的特点是:
- 轻量级
- 简单易懂
- 很难精通
Scrum的好处
以下是scrum为组织,团队,产品和个人提供的好处。
- 更好的质量:存在实现愿景或目标的项目。Scrum提供持续反馈和曝光的框架,以确保质量尽可能高。Scrum通过以下实践帮助确保质量
- 缩短产品上市时间:Scrum已被证明能够为传统方法提供比最终客户快30%到40%的价值。
- 提高投资回报率:缩短上市时间是Scrum项目实现更高投资回报率(ROI)的一个关键原因。由于收入和其他目标福利开始提前,早期积累意味着更高的总回报率。这是净现值(NPV)计算的基本原则。
- 士气高级团队:与喜欢工作的快乐人士一起工作可以令人满意和有益。自我管理将通常由经理或组织做出的决策放入scrum团队成员的手中。
- 加强团队协作:当Scrum团队负责项目和产品时,他们可以产生很好的结果。Scrum团队通过增强团队参与和沟通来协作并掌握质量和项目绩效。
Scrum框架
Scrum很简单。它与大量交织的强制组件相反。Scrum不是一种方法论。Scrum实现了经验主义的科学方法。Scrum用启发式方法取代了程序化的算法方法,尊重人和自组织,以处理不可预测性和解决复杂问题。下图显示了Ken Schwaber和Jeff Sutherland在他们的“30天软件”一书中描述的Scrum in Action,它将我们从规划到软件交付。
Scrum流程的组成部分
Scrum框架本身非常简单。它仅定义了一些通用指南,仅包含一些规则,角色,工件和事件。然而,这些组件中的每一个都很重要,用于特定目的,对于成功使用框架至关重要。
Scrum Framework的主要组件是:
- Scrum角色:Scrum Master,Scrum产品负责人和Scrum团队
- 工件:Sprint积压,产品积压,燃尽图,日志等......
- Scrum活动:Sprint计划,Sprint 评论,每日站立 (Daily Standuo) 等......
- 短跑 (Sprint)
下图显示了SCRUM框架的关键元素。该过程已由敏捷软件工具Scrum Process Canvas应用。
Scrum角色
当一个组织决定接受Scrum时,首先要了解的是Scrum角色与传统项目执行角色的不同之处。虽然Scrum中只有三个主要角色,但它们并不会自动与我们大多数人熟悉的标题保持一致。让我们从每个的简要定义开始:
产品拥有者 (Product Owner)
产品所有者是代表业务或用户社区的人员的scrum开发角色,负责与用户组合作以确定产品版本中的功能。产品负责人的主要职责是:
- 制定产品和服务的方向和战略,包括短期和长期目标;
- 提供或获取有关产品或服务的知识;
- 了解并解释开发团队的客户需求;
- 收集,优先排序和管理产品或服务要求;
- 接管与产品或服务预算相关的任何责任,包括其盈利能力;
- 确定产品或服务功能的发布日期;
- 每天与开发团队一起回答问题并做出决定;
- 接受或拒绝与Sprint相关的已完成功能;
- 在每个Sprint的最后展示开发团队的主要实现;
- 负责产品Backlog
Scrum大师 (Scrum Master)
Scrum master是敏捷开发团队的推动者。Scrum是一种方法,允许团队根据敏捷原则自我组织并快速进行更改。Scrum master管理信息交换的过程。Scrum Master的主要职责是:
- 充当教练,帮助团队遵循Scrum价值观和实践;
- 帮助消除障碍并保护团队免受外部干扰;
- 促进团队与利益相关者之间的良好合作;
- 促进团队内部的常识;
- 保护团队免受组织干扰;
Scrum开发团队 (Scrum Development Team)
Scrum团队(又名开发团队)由3到9人组成,他们必须满足提供产品或服务的所有技术需求。它们将由Scrum Master直接引导,但不会直接管理。他们必须是自我组织的,多才多艺的,并且负责任地完成所有必需的任务。
开发团队负责从分析,设计,开发,测试到技术写作等每个sprint提供潜在的可交付产品增量。对于Scrum团队具有以下特征非常重要:
- 团队必须是自组织的。所有团队组件必须管理自己的工作以完成已经给出的任务。在Agile Scrum中,没有团队负责人或直线经理的身影。每个人都必须做出足够的承诺来开展自己的活动,并为团队的成功做出贡献。如果一个失败,每个人都会失败。
- 团队必须是跨职能的。所有团队成员必须拥有所有必需的知识和技能,以提供做得好并且随时可用的服务或产品。专家可用于必要的案例,但仅作为教练将知识传授给团队以实现特定差距。
- 成为产品负责人需要企业愿景。产品负责人代表客户的声音,需要将他们的需求转化为Scrum Master和开发团队。这通常是一份全职工作。
- Scrum Master不是直线经理。他们帮助向开发团队提供所需的教练,并帮助消除团队面临的任何障碍。
Scrum工件
SCRUM工件用于帮助定义进入团队并且当前正在团队中工作的工作负载。还有更多的工件,例如,用户故事,发布积压,刻录图表等。但我们将专注于核心三:
产品积压 (Product Backlog)
产品待办事项是用户故事的集合,其呈现产品团队所需/期望的功能。通常,产品所有者负责此列表。
Sprint积压 (Spring Backlog)
Sprint积压包含一系列可以包含在当前sprint中的故事。有关sprint积压与将项目包含在sprint中之间关系的两个要点需要注意。1)团队决定添加到sprint的内容。因此,团队负责交付这些物品的所有权和责任。2)在将项目从sprint backlog中删除并添加到sprint之前,团队必须确保他们拥有积压中所需的所有信息。通常,团队定义在添加项目之前必须存在的项目清单。
产品Backlog与Sprint Backlog
在冲刺积压是Scrum的冲刺过程中完成了由Scrum团队确定的任务列表。在sprint计划会议期间,团队通常以用户故事的形式选择一些产品待办事项,并确定完成每个用户故事所需的任务,如下图所示:
刻录图表 (Burndown Chart)
Burndown Chat 是剩余工作与时间的图形表示。突出的工作(或积压工作)通常在垂直轴上,沿水平方向的时间。也就是说,这是一份杰出工作的运行图表。它可用于预测何时完成所有工作。它通常用于敏捷软件开发方法,如Scrum。但是,刻录图表可以应用于任何包含一段时间内可衡量进展的项目。杰出的工作可以用时间或故事点来表示。
Scrum活动
沟通是关键!SCRUM依赖于团队的所有方面并且透明地工作(Scrum支柱#1)。考虑到这种核心理念,该方法围绕一系列关键事件构建,以确保其他两个支柱:检查和调整如下表所示:
事件 | 检查 | 适应 |
Sprint计划 |
|
|
每日Scrum |
|
|
Sprint评论 |
|
|
Sprint回顾 |
|
|
注意:在执行每个sprint期间,Scrum中有五个主要会议,如下图所示:
所有冲刺都从计划开始。团队需要确定并承诺将作为sprint的一部分交付哪些项目。可能的项目总是从Sprint Backlog中获取,如下图所示:
这是SCRUM主人可以发光的时间。产品所有者从业务/客户的角度确定他们需要的方面,SCRUM团队,确定他们认为可以提供哪些项目,以及SCRUM主人适应所有项目并确保满足两个方面的最佳要求。
每日Scrum会议 (Daily Scrum)
一旦团队确定了他们承诺作为sprint的一部分交付的项目。该团队将举行每日站立会议。此次会议的核心目标是确保团队中的每个人(以及可能的观察员)完全了解正在完成的任务的状态和进度:
- 他们做了什么
- 他们今天要做什么
- 什么阻止他们
此每日更新向团队提供实例反馈并提供。这些会议意味着简短,每人不超过3分钟。
注意:
观察员在那里观察,SCRUM主人必须尽可能减轻外部干扰和团队干扰。
Sprint评审会议 (Sprint Review)
在Sprint结束时举行Sprint评审/演示会议以检查增量。团队根据完成定义演示增量,重点关注Sprint目标。产品负责人审核并接受交付的增量。
Sprint回顾 (Sprint Retrospective)
冲刺回顾通常是冲刺中最后完成的事情。许多团队将在冲刺审查后立即执行此操作。包括Scrum Master和产品所有者在内的整个团队都应该参与其中。您可以安排scrum回顾展达一个小时,这通常是足够的。回顾展让团队有机会确定3个关键方面:
- 应该开始做什么?
- 什么不顺利(并再次停止做)?
- 什么进展顺利(并且应该继续做什么?)?
这种方法的目的是不断提高团队效率。
积压细化会议 (Product Backlog Refinement)
将积压视为项目的路线图。当团队协作创建需要为项目完成构建或完成的所有事项的列表时,可以修改此列表并将其添加到整个项目中,以确保满足项目的所有必要需求。
短跑 (Sprint)
在Scrum框架中,Scrum产品Backlog中实现条目所需的所有活动都在Sprint中执行(也称为“Iterations”)。短跑总是很短:通常大约2-4周。每个Sprint都遵循一个定义的过程,如下所示:
如前所述,产品待办事项中的项目按优先级排序并选择sprint backlog。一个sprint只包含几个大项目,即使单个项目低估工作的影响也会对sprint产生深远的影响。而且由于较大的项目往往难以估计和理解,因此短跑失败的可能性会进一步增加。经验丰富的Scrum团队花费时间和精力将复杂和较大的项目(即用户功能或史诗)分解为较小的用户故事(或随后分解为任务或子任务)。
Epic
Epic捕捉了大量的作品。它本质上是一个“大型用户故事”,可以分解为许多小故事。完成史诗可能需要几次冲刺。因此,当我们将epic用于开发时,它必须被分解为更小的用户故事。
在项目周期的早期,我们提出了Epics。这些是非常高级的,几乎以营销为中心的功能性要点。
我们将大型故事称为“史诗”,以传达有关它们的信息。我喜欢把这与电影有关。如果我告诉你一部特定的电影是一部“动作冒险电影”,它会告诉你有关电影的一些信息。可能有一些汽车追逐,可能是一些射击,等等。同样,将一个故事称为“史诗”有时可以传达其他意义。
用户故事 (User Story)
故事是产品要求或业务案例的简要陈述。通常,故事用简单的语言表达,以帮助读者理解软件应该完成的内容。产品所有者创建故事。然后,scrum用户将故事分成一个或多个scrum任务。
用户故事通常是最终用户可见的功能。用户故事遵循“我作为世界卫生组织想要做什么”的格式,以便为什么。用户故事为客户/用户提供价值。这是客户/用户的产品要求。
例如“作为客户,我希望能够创建一个帐户,以便我可以看到我去年购买的商品,以帮助我明年的预算。”
任务 (Task)
另一方面,任务更具技术性,任务通常类似于代码,设计,为此类创建测试数据,自动执行等等。这些往往是由一个人完成的事情。任务不是以用户素材格式编写的。任务更具技术性。
例如“评估用户界面的角度材料设计”或“将应用程序提交到应用商店”。
最佳Scrum工具
Scrum Process Canvas是一个用于帮助您管理Scrum项目的Scrum工具 - 从识别项目愿景到最终产品交付。在一个设计精美的Scrum流程画布中无缝导航整个Scrum流程。快速,轻松,无缝地执行Scrum活动。让整个团队充分参与。我们的敏捷软件使敏捷项目变得简单而有效。