Scrum(软件开发)

Scrum是一个框架项目管理[1]最初强调软件开发,尽管它已用于其他领域,包括研究,销售,市场营销和高级技术.[2]它是为十个或更少成员的团队而设计的目标可以在定时式迭代中完成,称为冲刺,不超过一个月,最常见的是两个星期。Scrum团队评估进度盒装每日会议15分钟或更少,称为每日混乱(一种形式站立会议)。在冲刺结束时,团队举行了另外两次会议:一项冲刺评论旨在证明为利益相关者并引起反馈,一个Sprint回顾旨在使团队能够反思和改进。

基于Scrum敏捷事件2020 Scrum指南[3]

姓名

期限Scrum从中藉来橄榄球,它是玩家的形成。期限Scrum是由论文的作者选择的,因为这意味着团队合作。[4]软件开发术语Scrum最初是在1986年的题为“新产品开发游戏”的论文中使用的Hirotaka TakeuchiIkujiro Nonaka.[5][6]该论文发表在1986年1月号哈佛商业评论.

Scrum偶尔会用全符合人士看Scrum.[7]虽然这个词本身不是缩写,其资本化样式可能来自肯·施瓦伯(Ken Schwaber)[8]大写Scrum在其标题中。[9][10]

期限Scrum以前商标由施瓦伯(Schwaber),但注册已被允许失误。据推测,这是为了认识和实现该术语的广泛社区使用。[11]

关键想法

Scrum是轻量级,迭代, 和增加的开发,交付和维持复杂产品的框架。[12][13]框架挑战了传统的,顺序的产品开发方法的假设,并使团队能够通过鼓励身体来进行自我组织共同位置或关闭所有团队成员的在线合作,以及所有团队成员和涉及的学科之间的每日面对面沟通。

Scrum的关键原则是双重认可,即客户将改变想要的范围(通常称为要求波动[14])并且将面临不可预测的挑战 - 因为这种预测或计划的方法不适合。这些变化来自各种来源,但是根据Scrum的说法,了解为什么无关紧要,并且应该简单地接受,拥抱和分析改变。

历史

Hirotaka Takeuchi和Ikujiro Nonaka介绍了该术语Scrum产品开发在他们的1986年哈佛商业评论文章“新产品开发游戏”。[15]Takeuchi和Nonaka后来争论知识创造公司[16]这是“组织知识创造,[...]特别擅长连续,渐进和螺旋上创新的一种形式。

作者描述了一种新的商业产品开发方法,该方法将根据汽车,复印机和打印机的制造公司的案例研究提高速度和灵活性行业.[15]他们称这个为整体或者橄榄球方法,因为整个过程是由一个人执行的跨职能团队在多个重叠的阶段中,团队“试图以一个单位进行距离,来回传球”。[15](在橄榄球, 一个Scrum用来重新启动比赛,因为每个团队的前锋都摔倒了,并试图获得球。[17]

Scrum框架是基于Schwaber的研究Babatunde Ogunnaike在杜邦研究站和特拉华大学。[9]Ogunnaike建议,尝试开发复杂产品(例如软件)的尝试,并不是基于经验主义的,注定要随着初始条件和假设的变化而面临更高的风险和失败率。经常检查和适应性,具有灵活性和透明度的经验主义是最合适的方法。

在1990年代初期,肯·施瓦伯(Ken Schwaber)使用了他公司的先进开发方法中会变成混乱的东西;尽管杰夫·萨瑟兰(Jeff Sutherland),John Scumniotales和Jeff McKenna在Easel Corporation开发了类似的方法,指的是使用单词Scrum.[18]

萨瑟兰(Sutherland)和施瓦伯(Schwaber)共同努力,将他们的想法纳入一个框架Scrum。他们测试了Scrum并不断改进,导致他们的1995年论文,[19]敏捷软件开发宣言在2001年,[20]自2002年以来,全球传播和使用Scrum。

1995年,萨瑟兰(Sutherland)和施瓦伯(Schwaber)共同发表了一篇论文,描述了业务对象设计和实施研讨会上的Scrum框架,作为作为一部分的一部分面向对象的编程,系统,语言和应用'95(OOPSLA '95)在德克萨斯州奥斯汀。[19]在接下来的几年中,施瓦伯(Schwaber)和萨瑟兰(Sutherland)合作,将这些材料(并在他们的经验和发展良好的实践中)结合起来,以开发被称为Scrum的东西。[3]

2001年,施瓦伯(Schwaber)与迈克·贝德(Mike Beedle)要描述书中的方法,敏捷软件开发与Scrum.[21]Scrum的计划和管理产品开发方法涉及带来做决定授权运营属性和确定性的授权。[9]

2002年,施瓦伯(Schwaber)与其他人建立了Scrum Alliance[22]并设置经过认证的Scrum认证系列。施瓦伯(Schwaber)于2009年底离开了Scrum Alliance,并创立了Scrum.org[23]监督平行专业的混乱认证系列。[24]

自2009年以来,一份公共文件称为Scrum指南[3]Schwaber和Sutherland已发布和更新。它已被修订了6次,当前版本是2020年11月。

Scrum团队

Scrum的基本单位是由产品所有者,Scrum Master和Developers组成的小团队。团队是自我管理的,跨职能的,一次专注于一个目标:产品目标。

产品拥有者

产品主,代表产品的利益相关者客户的声音(或可能代表一个委员会[25]),负责提供良好的业务成果。[26]因此,产品所有者负责产品积压并最大程度地提高团队所提供的价值。[25]产品主根据以顾客为中心结果(通常 - 但不限于 - 用户故事),将它们添加到产品积压中,然后优先它们基于重要性和依赖性。[27]Scrum团队只能拥有一个产品所有者(尽管产品主可以支持一个以上的团队)[28]强烈建议不要将这种角色与Scrum大师的角色相结合。产品主应专注于产品开发的业务方面,并将大部分时间与利益相关者和团队联系在一起。产品主不规定团队如何达到技术解决方案,而是在团队成员之间寻求共识。[29][30][31]这个角色至关重要,需要对双方的深刻理解:Scrum团队中的企业和工程师(开发人员)。因此,好的产品所有者应该能够传达业务所需的内容,询问为什么需要它(因为有更好的方法可以实现这一目标),并根据需要将信息传达给所有利益相关者,包括开发人员,使用技术语言。产品所有者使用Scrum的经验工具来管理高度复杂的工作,同时控制风险和实现价值。

沟通是产品所有者的核心责任。传达优先事项和同情团队成员和利益相关者的能力对于将产品开发朝着正确的方向发展至关重要。产品主角色弥合了团队与其利益相关者之间的沟通差距,并为团队的利益相关者和总体利益相关者社区的团队代表提供了代理。[32][33]

作为团队与利益相关者的面对面,以下是产品所有者与利益相关者的一些交流任务:[34]

  • 定义并宣布发布。
  • 交流交付和产品状态。
  • 在治理会议期间分享进展。
  • 共享重要的里达斯(风险,障碍,依赖性,和假设)与利益相关者。
  • 协商优先级,范围,资金和时间表。
  • 确保产品积压可见,透明和清晰。

建立联系的能力是产品主拥有的关键属性,即将自己的鞋子放在他的鞋子上的能力。产品所有者与不同的利益相关者进行对话,这些利益相关者俱有各种背景,职位和目标 - 应该能够欣赏这些不同的观点。为了有效,产品主知道受众需求的细节水平是明智的。开发人员需要彻底的反馈和规格,以便他们可以建立一个产品达到期望,而执行赞助商可能只需要进度的摘要即可。提供比必要的更多信息可能会失去利益相关者的利益和浪费时间。经验丰富的产品所有者首选直接的交流方式。[28]

产品所有者的有效沟通能力也可以通过熟练的技术来确定利益相关者需求,协商利益相关者利益之间的优先级并与开发人员协作以确保有效实施需求的技术来增强。

开发人员

开发人员执行所有需要每次冲刺的价值增量所需的工作。[27]

期限开发人员[3]指的是任何在系统或产品的开发和支持中发挥作用的人,可以包括研究人员,建筑师,设计师,数据专家,统计学家,分析师,工程师,程序员和测试人员等。[35]但是,由于某些人不觉得“开发人员”一词适用于他们时可能会引起混乱,因此他们通常被称为团队成员.

团队是自组织的。尽管除了通过产品所有者外,还没有任何工作来参加团队,并且预计Scrum Master将保护团队免受干扰,但鼓励团队与客户和/或利益相关者直接互动,以最大程度地了解和即时反馈。[27]

Scrum Master

Scrum由Scrum Master促进,他负责消除团队实现产品目标和可交付成果的能力的障碍。[36]Scrum大师不是传统的组长或者专案经理但是,团队与任何分心的影响之间都是障碍。Scrum Master确保Scrum框架之后是在Scrum理论和概念方面指导团队,通常会促进关键会议,并鼓励团队成长和改进。该角色也被称为团队主持人或仆人领导加强这些双重观点。

Scrum Master的核心职责包括(但不限于):[37]

  • 帮助产品所有者以确保所需工作的方式维护产品积压,以便使团队不断取得进步
  • 通过关键利益相关者的意见,帮助团队确定产品的定义
  • 在Scrum原则中指导团队,以便为其产品提供高质量的功能[38]
  • 教育主要的利益相关者和组织的其他成员,就Scrum(甚至可能是敏捷)原则进行教育
  • 帮助Scrum团队避免或消除对团队内部或外部的障碍
  • 促进团队内部的自组织和跨功能
  • 促进团队活动以确保定期进步

Scrum大师帮助人们和组织采用经验和精益思维,留下了对确定性和可预测性的希望。

Scrum Master角色与项目经理不同的方式之一是后者可能人管理职责和Scrum Master没有。Scrum Master提供了有限的方向,因为预计团队有能力和自组织。[39]Scrum并未正式认识到项目经理的角色,作为传统命令与控制倾向会造成困难。[40]

工作流程

短跑

Scrum框架
混乱过程

冲刺(也称为迭代时箱或者设计冲刺)是Scrum中发展的基本单位。冲刺是耗时努力;也就是说,每次冲刺的长度是预先确定的,并且通常是在一个星期到一个月之间的,最常见的是两个星期。[9]

通常,举行日常会议,以讨论实施该项目时团队中任何团队成员所面临的任何困难的项目进度。冲刺的结果是可交付的,尽管有些增量。Scrum用于网络技术或新市场产品开发等项目,即具有许多要求或快速换的产品。

每个冲刺都以一个冲刺计划定义冲刺目标的事件。即将到来的冲刺的优先级是从积压中选择的。每个冲刺以两个事件结束:

  • 一个Sprint评论(显示出利益相关者以引起反馈的进展)
  • 一个Sprint回顾(确定下一个冲刺的课程和改进)。[18]

Scrum在刚刚完成的冲刺结束时强调了有价值的,可操作的输出。每次迭代的产出应使开发产品更接近市场成功。[41]就软件而言,这可能包括产品已完全集成,测试和记录,并可能释放。[40]

冲刺计划

在冲刺开始时,Scrum团队举办了一项冲刺计划活动:

  • 同意Sprint目标,简短地描述了他们预测的Sprint End,根据产品所有者设定的优先级
  • 选择有助于此目标的产品积压项目
  • 通过相互讨论并达成共识,形成冲刺积压

四周冲刺的短跑计划的最大持续时间为八个小时。[3]由于详细阐述了详细的工作,如果团队认为他们无法在单个冲刺中完成该工作,则某些产品积压项目可能会被分开或返回产品积压。

每日混乱

计算室中的每日混乱。这个集中位置可以帮助团队准时开始。

每天冲刺期间,开发人员每天都有一支混乱(有时进行站起来)有具体的准则:[42][9]

所有开发人员都做好了准备。每日混乱:

  • 专注于检查朝着冲刺目标的进度
  • 应该每天同时和地点发生
  • 是有限的 (耗时)到十五分钟
  • 进行了,但是团队决定
  • 可能包括其他人,尽管只有开发人员应该讲话。
  • Scrum Master可能会促进
  • 可能会确定进步的障碍(例如,绊脚石,风险,问题,依赖延迟,假设被证明是没有根据的)[43]
  • 不包括讨论
  • 不是更新进度图表的手段

在日常混乱期间不应进行详细的讨论。一旦结束,各个成员就可以详细讨论问题,通常称为“突破性会议”或“聚会后”。[44]确定的问题或错误应在日常混乱之外集体讨论,以期为解决方案而努力。

在团队在此事件中看不到价值的地方,确定为什么要确定为什么[45]并教育团队和利益相关者有关Scrum原则的教育,[38]或鼓励团队设计自己的方法,以使团队充分了解冲刺进展。

Sprint评论

在短跑结束时进行的团队:

  • 向利益相关者提供完整的工作(又名演示
  • 与利益相关者合作讨论:
    • 邀请有关完成产品增量的反馈
    • 讨论不完整工作的影响(计划或其他)
    • 收到有关即将到来的工作的建议(下一步工作的指导)

产品主应该将此活动视为与利益相关者一起审查和完善产品积压的宝贵机会的宝贵机会。如果审查意味着产品中的任何偏差,则尽快进行调整以控制进一步的偏差。

Sprint评论指南:

  • 不应该证明不完整的工作;尽管应向利益相关者提供他们将要收到的产品增量,但也可以要求在必要时查看正在进行的工作。但是,团队只能准备好展示已完成的工作。
  • 建议的持续时间为两周的冲刺两小时(与其他冲刺成正比)。[3]

Sprint回顾

在Sprint的回顾展中,团队:

  • 反思过去的冲刺
  • 检查上一个冲刺的发展方式(个人,互动,过程,工具,完成的定义)
  • 确定并同意持续的过程改进动作

Sprint回顾指南:

  • Sprint回顾中需要考虑的三个建议领域是:
    • 在冲刺期间进展顺利?
    • 什么进展不顺利?
    • 下一个冲刺我们可以做什么?
  • 为期四个星期的冲刺最多三个小时,与其他冲刺持续时间成正比(例如一个半小时,为期两周的冲刺)。

Scrum Master可能会促进此事件,但也可以作为团队的一员来参加。

积压精炼

尽管最初不是核心混乱练习,但积压精致(以前称为修饰)被添加到Scrum指南中,并采用作为管理Sprint产品积压项目质量的一种方式。根据新信息,这是审查和修改/更新/重新排序产品积压项目的持续过程。

修改积压和内部项目的原因可能包括:

  • 较大的物品可能分为多个较小的物品
  • 接受标准可以澄清
  • 可以识别和调查依赖项
  • 项目可能需要进一步的发现和分析
  • 优先事项可能已经改变;预期的回报现在会有所不同

改进意味着项目得到适当准备和订购的方式,使它们清晰可为Sprint计划的开发人员提供清晰和可执行性。

积压也可以包括技术债务(也称为设计债务或代码债务)。这是软件开发中的一个概念,它反映了现在选择简单解决方案而不是使用更好的方法而导致的其他返工的隐含成本。

建议投资一支团队冲刺能力的10%[3]在积压的精炼中。更成熟的团队不会将其视为计划定义的事件,而是构成自然工作流程的一部分,在需要时完善和调整产品积压的一部分的临时活动。

取消冲刺

产品所有者可以在必要时取消冲刺,[3]并可以通过其他人的意见(开发人员,Scrum Master或Management)来做到这一点。例如,最近的外部环境可能会否定冲刺目标的价值,因此继续进行毫无意义。

当冲刺异常终止时,下一步是进行新的冲刺计划,审查终止的原因。

文物

工件是指用于管理项目工作的文档。

产品积压

产品积压是要完成的工作的细分,并包含一个有序的列表产品要求团队为产品。积压项目的普通格式包括用户故事用例.[40]这些要求定义特征bug修复非功能要求等等 - 无论提供可行的产品。产品所有者根据风险,业务价值,依赖关系,规模和日期等考虑因素将产品积压项目(PBI)优先考虑。

产品积压是“需要的,需要何时需要的东西”,并且每个人都可以看到,但只能在产品所有者的同意下更改,后者负责管理和维护产品积压项目。

产品积压包含产品所有者对业务价值的评估,可能包括团队对努力或复杂性的评估,但并非总是如此,但并非总是如此。故事点使用圆形斐波那契量表。这些估计有助于产品所有者评估时间表,并可能影响产品积压项目的顺序;例如,对于具有相同业务价值的两个功能,产品所有者可以通过较低的开发工作安排早期交付工作(因为投资回报更高)或具有更高发展努力的人(因为它更复杂或更风险,他们希望更早地退休这种风险)。[46]

产品积压和每个产品积压项目的业务价值是产品所有者的责任。交付每个项目的努力可以在故事点或时间中估算。通过估算故事点,团队减少了个别开发人员的依赖性;这对于动态团队特别有用,在冲刺交付后经常将开发人员分配给其他工作。例如,如果用户故事被估计为5的努力(使用斐波那契序列),则它仍然是5

故事点在时间框中定义了努力,因此它们不会随着时间而变化。例如,在一个小时内,一个人可以走路,跑步或攀爬,但是所花费的努力显然不同。斐波那契序列中的术语之间的差距进展鼓励团队进行精心考虑的估计。1、2或3的估计意味着类似的努力(1是微不足道),但是如果团队估计8或13(或更高),对交付和预算的影响可能会很大。使用故事点的价值是,团队可以通过比较以前的冲刺的类似工作来重复使用它们,但是应该认识到估计是相对于该团队的。例如,一个团队的估计值为5可能是由具有更高能力的经验丰富的开发人员组成的另一个团队的2。

每个团队都应该拥有一个产品主,尽管在许多情况下,产品主可以与多个团队合作。[28]产品所有者负责最大化产品的价值。产品主收集输入并从许多人那里得到反馈,并游说许多人,但最终对建造的东西做出了最终决定。

产品积压:

  • 捕获修改产品的请求 - 包括新功能,更换旧功能,删除功能和修复问题
  • 确保开发人员的工作最大化产品的业务利益

通常,整个团队共同努力,以完善产品积压,随着有关产品及其客户的新信息的发展,后来的冲刺可能会解决新的工作。

管理

产品积压以最简单的形式只是要处理的项目列表。关于如何添加,删除和订购的工作方式有完善的规则,有助于整个团队就如何更改产品做出更好的决定。[47]

产品所有者根据需要尽快将产品积压项目确定优先级。受冲刺目标影响的开发人员会选择用于即兴冲刺的项目,将这些物品从产品积压列表转移到Sprint Backlog,这是他们将要构建的项目列表。从概念上讲,Sprint目标受列表顶部的高优先级项目的影响,但是如果Sprint中剩下时间来容纳更多工作,则看到开发人员服用一些较低优先级的项目并不罕见。

高优先级项目(在积压的顶部)应分解为更详细的,适合开发人员进行工作。积压越远,详细的项目将是。正如Schwaber和Beedle所说的那样,“优先级越低,直到您几乎无法确定积压项目为止。”[9]

当团队通过积压工作时,必须假设变革发生在他们的环境之外 - 团队可以了解利用新的市场机会,竞争对手的威胁以及客户的反馈,这些反馈可以改变产品的含义方式上班。所有这些新想法倾向于触发团队以适应积压以纳入新知识。这是敏捷团队的基本心态的一部分。世界改变了,积压从未完成。[48]

冲刺积压

Sprint积压是产品积压的项目子集,旨在供开发人员在即将到来的Sprint中解决。[49]开发人员将填写此积压,直到他们认为自己有足够的工作来填补冲刺,并利用过去的性能评估下一个冲刺的能力,以此为指导他们可以完成多少“努力”。

从未将Sprint积压的工作从未分配(或推动)给开发人员;团队成员根据积压优先级和他们自己的技能和能力,根据需要提取工作。这促进了开发人员的自组织。

Sprint积压是开发人员的属性,所有随附的估计都由开发人员提供。尽管不是Scrum的一部分,但有些团队使用伴随的董事会来可视化当前冲刺的工作状态:TODO,DOVE,DOVE。

增量

增量是符合Sprint目标的冲刺的潜在发布的输出。它是由所有已完成的Sprint积压项目组成的,并与所有以前的Sprint的工作集成在一起。根据Scrum团队的说法,增量必须完成完成的定义(DOD),功能齐全,并且在可用条件下,无论产品所有者是否决定实际部署和使用它。

扩展

以下工件和技术可用于帮助人们使用Scrum。[3]

燃烧图

一个完整的冲刺的样本燃烧图表,显示每天结束时剩余的努力。

经常在Scrum中使用(但不在Scrum的一部分),这是一个公开显示的图表,显示了剩余的工作。[50]每天更新,它提供了快速的可视化供参考。燃烧图的水平轴显示了剩余的日子,而垂直轴显示了每天剩余的工作量。

在Sprint计划中,绘制了理想的燃烧图表。然后,在冲刺期间,开发人员使用剩余的工作更新图表,以便每天更新图表,显示实际和预测之间的比较。

它不应该与赚取的价值图.

释放燃烧图表

释放的样品燃烧图表,显示范围完成了每个冲刺(MVP =最低可行产品)

发布燃烧图表是团队提供可见性和跟踪发布进度的一种方式。在每个冲刺的结尾进行更新,它显示了提供预测范围的进展。释放燃烧图的水平轴显示了释放中的冲刺,而垂直轴显示了在每个冲刺末端完成的工作量(通常代表完成的工作点的累积故事点)。进度被绘制为长大后符合表示预测范围的水平线的线。通常以预测为基于迄今为止的预测显示,这表明在给定发布日期之前可以完成多少范围或完成给定范围需要多少冲刺。

发布燃烧图表使您可以轻松查看完成了多少工作,添加或删除了多少工作(如果水平范围线移动)以及要完成多少工作。

准备就绪(DOR)的定义

确定是否的开始标准规格并将输入设置得足够明确以开始工作项目。

完成(DOD)的定义

出口标准为了确定Sprint积压项目是否完成的工作,例如:DOD要求所有回归测试成功的。完成的定义可能因一个团队而异,但必须在一个团队中保持一致。[51]

速度

团队对单个冲刺的全部能力工作,通过评估上一条冲刺中完成的工作得出。历史速度数据的收集是协助团队了解其能力的指南,即:他们可以舒适地实现多少工作。

这个指标引起了Scrum社区的争议:

  • 故事点消耗了不等于交付的价值:团队可能会看到完成工作并忽略对利益相关者的可交付利益
  • 引入分心实践:估计与实际情况,差异调查和重新估计的政策开始出现
  • 管理层认为速度是性能指标,因此试图增加它,这意味着:
    • 质量受苦 - 团队开始“割伤”以包括增加的工作量
    • 士气受苦 - 团队无法以舒适的可持续步伐和增加的压力造成燃烧
    • 估计受苦 - 开发人员将夸大估计值以建立缓冲区和“游戏指标”,从而在不同规模上衡量相同的努力
    • 价值受苦 - 最终效果是干扰,导致利益相关者不满,这是由于将重点转移到业务价值交付的原因

尽管了解团队的交付能力是有价值的,但应将速度视为团队的指标,而不是可以调整的表盘。

长钉

用于研究概念或创建简单原型的时间盒时期。可以计划在冲刺之间进行尖峰,或者对于较大的团队,可能会被接受为许多冲刺送货目标之一。在交付大型或复杂产品积压项目之前,通常会引入峰值,以确保预算,扩展知识或产生概念证明。峰值的持续时间和目标是在开始之前由团队一致的。与冲刺的承诺不同,尖峰可能会或可能不会提供有形,可畅通,有价值的功能。例如,尖峰的目的可能是成功做出行动方案的决定。时间到了,不一定是在实现目标时结束了。[52]

示踪子弹

Tracer Bullet也称为无人机Spike,是当前体系结构,当前技术集,当前最佳实践的尖峰,可导致生产质量代码。这可能只是功能的非常狭窄的实现,但不是抛弃代码。它具有生产质量,其余的迭代可以基于此代码。这个名字具有军事起源弹药这使得子弹的路径可见,可以进行校正。通常,这些实现是通过应用程序的所有层的“快速拍摄”,例如将单个表单的输入字段连接到后端,以证明图层按预期连接。[53]

术语

Sprint与Sprint积压,Daily Scrum,Sprint评论和其他此类活动一起工作。[54]

产品拥有者

产品拥有者负责产品的当前开发状态和最大化产品的价值。产品主可以是一个人,即使他们代表委员会。[54]他们的工作包括:

  • 维护项目产品积压.
  • 将订单分配给积压中的项目。
  • 开发团队确保产品积压中的项目清楚。[54]

开发团队

开发团队负责在Sprint Backlog中实施这些文章。尽管开发团队的几个成员可能专门研究不同领域,但整个开发团队负责功能的发展。[54]

冲刺积压

SPRINT积压是指产品积压的子集,该子集选择用于Sprint及其交付计划。根据Sprint积压的项目,开发团队决定如何创建“完成”产品。[54]

每日混乱

Daily Scrum是一个固定的时间,固定的地方事件,它使开发团队可以根据自上次每日Scrum以来所做的工作量进行同步和计划工作。[54]在日常混乱期间,开发团队成员解释:

  • 昨天我做了什么帮助Sprint目标?
  • 我今天要做什么冲刺目标?
  • 我对实现冲刺目标有什么障碍?

每日混乱通常持续15分钟,但可以随后会议进行详细讨论。

Sprint评论

Sprint评论是在Sprint结束后计划进行的。团队和利益相关者检查完成的工作量。如有必要,产品所有者会适应产品积压。[54]Sprint评论是每个冲刺结束时的一次检查和适应机会。

Sprint回顾

Sprint Retrospective用于分析Sprint中发生的事情以及可以改进的内容。Scrum团队检查了用于构建该增量的过程。这种回顾性反馈有助于改善sprint的过程。Sprint Retrospective是每个冲刺结束时的一次检查和适应机会。[55]

限制

Scrum的好处可能更难实现:[56][57]

  • 成员在地理上分散或兼职的团队:在Scrum中,开发人员应该进行紧密和持续的互动,理想情况下在大多数情况下在同一空间合作。尽管技术最近的进步降低了这些障碍的影响(例如,能够在数字白板上进行合作),但敏捷宣言断言最好的交流是面对面的。[58]
  • 成员具有非常专业技能的团队:在Scrum中,开发人员应该拥有T形技巧,允许他们从事专业化之外的任务。良好的Scrum领导能力可以鼓励这一点。尽管具有非常具体技能的团队成员可以并且确实做出了良好的贡献,但应鼓励他们了解更多有关其他学科的知识并与其他学科合作。
  • 具有许多外部依赖性的产品:在Scrum中,将产品开发分为短冲刺需要仔细的计划;外部依赖性,例如用户验收测试或与其他团队的协调可能导致延误和单个冲刺的失败。
  • 产品成熟或者遗产或受监管质量控制:在Scrum中,应该在单个冲刺中充分开发和测试产品增量;需要大量的产品回归测试或每个版本的安全测试(例如,医疗设备或车辆控制)不适合短冲刺,而不是更长的时间瀑布发行。

可用的工具

像其他敏捷方法一样,可以通过(但不取决于)多种可用工具来支持有效的Scrum。

许多公司使用通用工具,例如电子表格来构建和维持冲刺积压。还有开源和专有软件包,它们使用Scrum术语进行产品开发或支持包括Scrum在内的多种产品开发方法。

其他组织在没有软件工具的情况下实施Scrum,并以硬拷贝形式(例如纸张,白板和粘稠的笔记)维护其伪像。[59]

Scrum值

Scrum是一种反馈驱动的经验方法,与所有经验过程控制一样,受到透明,检查和适应性的三个支柱的支撑。对于负责结果的人来说,Scrum框架内的所有工作都应可见:过程,工作流程,进度等。为了使这些事情可见,Scrum团队需要经常检查正在开发的产品以及团队的状况如何在职的。通过经常检查,团队可以发现他们的工作何时偏离可接受的限制并调整其过程或正在开发的产品。[27]

这三个支柱需要团队中的信任和开放性,以下五个scrum值启用了:[3]

  1. 承诺:团队成员单独致力于实现自己的团队目标短跑.
  2. 勇气:团队成员知道他们有勇气共同解决冲突和挑战,以便他们可以做正确的事。
  3. 重点:团队成员专注于他们的团队目标和冲刺积压;除了通过他们的积压以外,没有其他工作。
  4. 开放性:团队成员及其利益相关者同意对他们的工作和面临的任何挑战保持透明。
  5. 尊重:团队成员互相尊重,在技术上有能力并有意识地工作。

改编

Scrum在各种环境中都用于实现许多不同的目标。为了完成那些不同的末端,经常量身定制或适应Scrum。[60]适应混乱的一种常见方法是将Scrum与其他软件开发方法杂交,因为Scrum不涵盖整体产品开发生命周期;因此,组织发现需要添加其他流程以创建更全面的实施。例如,在产品开发开始时,组织通常会添加有关业务案例,需求收集和优先级,初始高级设计以及预算和计划预测的流程指南。[61]

使用Scrum的各种作者和社区也提出了有关如何应用或适应特定问题或组织的更详细的技术。许多人将这些方法论技术称为“模式” - 类比设计模式在体系结构和软件中。[62][63]

Scrumban

Scrumban是基于Scrum和的软件生产模型看板。 Scrumban特别适合产品维护频繁和意外的工作项目,例如生产缺陷或编程错误。在这种情况下,尽管Scrum的日常活动和其他实践仍然可以采用,但根据团队和手头的情况,Scrum的日常活动和其他实践仍然可以使用,但Scrum框架的时间限制冲刺可能会较小。看板模型的同时未完成工作和缺陷的工作阶段的可视化和局限性。使用这些方法,团队的工作流程针对每个工作项或编程错误的最小完成时间的方式,另一方面,可确保每个团队成员不断使用。[64]

为了说明每个工作阶段,在同一空间工作的团队经常使用后笔记或大型白板。[65]对于分散的团队,阶段插图软件,例如集会吉拉或者阿吉洛可以使用。

Scrum和看板之间的主要区别在于,在Scrum工作中被分为固定时间的冲刺,而在看板中,工作流程是连续的。这在工作阶段表中可见,在每次冲刺之后,在Scrum中清空,而在看板中,所有任务都在同一张桌子上标记。Scrum专注于具有多方面专有技术的团队,而看板使专业的,功能的团队成为可能。[64]

混乱

Scrums Scrums是一种大规模操作Scrum的技术,对于多个从事同一产品工作的团队,使他们能够讨论其相互依存关系的进度,重点是如何协调交付软件,[66]特别是在重叠和集成领域。根据Scrums Scrums的节奏(时机),每个Scrum团队的相关每日混乱结束时,将一名成员指定为与其他团队的大使一起参加大使的大使。根据背景,大使可以是技术贡献者或每个团队的Scrum大师。[66]

不仅仅是进度更新,Scrums的混乱应该集中在团队如何共同工作以解决,减轻或接受已识别的任何风险,障碍,依赖性和假设(RIDA)。Scrums的混乱通过自己的积压来追踪这些Ridas,例如风险板(有时被称为一个漫游板在解决,拥有,接受和缓解的首字母缩写之后)[67]这通常会导致团队之间更大的协调和协作。[66]

这应该类似于每日混乱,每位大使回答以下四个问题:[68]

  • 自从我们上次开会以来,您的团队已经解决了哪些风险,障碍,依赖性或假设?
  • 在我们再次见面之前,您的团队会解决哪些风险,障碍,依赖或假设?
  • 是否有任何新的风险,障碍,依赖性或假设可以减慢您的团队或阻碍他们的方式?
  • 您是否要引入新的风险,障碍,依赖性或假设,这将以另一个团队的方式获得?

作为杰夫·萨瑟兰(Jeff Sutherland)评论,[66]

由于我最初定义了Scrums的混乱(Ken Schwaber在IDX与我一起工作),因此我可以确定地说,Scrums的混乱不是“元scrum”。我使用过的混乱,负责将所有团队的工作软件传递到Sprint结束时完成的定义,或者在Sprint期间发行。每次冲刺的患者保管员分配了四次生产。Ancestry.com每两周冲刺220次提供生产。HubSpot每天提供100–300次实时软件。Scrums Master的Scrum对完成这项工作负有责任。因此,混乱是一种操作交付机制。

大规模混乱

大型Scrum(Light)是一个产品开发框架,可扩展使用缩放规则和准则,而不会失去Scrum的最初目的。

框架有两个层次:第一个较小的级别是为多达八支球队设计的;第二层被称为“不太巨大”,引入了多达数百个开发人员的开发元素。“缩放Scrum始于理解并能够采用标准的真实一支球队混乱。大规模的混乱需要检查单队混乱元素的目的,并弄清楚如何在标准Scrum规则的约束中达到相同的目的。”[69]

BAS VODDE和克雷格·拉曼(Craig Larman)从他们在大规模产品开发中,尤其是在电信和金融行业的经验中,他们的框架越来越少。它通过服用Scrum并尝试许多不同的实验来发现有效的方法来发展。在2013年,实验被巩固为较少的框架规则。[70]少的意图是“下降”组织的复杂性,消除不必要的复杂组织解决方案,并以更简单的方式解决它们。更少的角色,较少的管理,更少的组织结构。[71]

批评

据报导,Scrum事件受到伤害生产率浪费时间可以更好地花在实际的生产任务上,[72][73]通常是由于对事件的目的和目标的误解而引起的。[74]许多Scrum实施者进行活动,例如每日Scrum,作为彻底的地位会议,而不是短暂的时间盒讨论。Scrum实践可以变成一种形式微管理太快了[75]并重新引入与试图消除的实践相同的功能障碍。Scrum还假设可以准确估算完成工作所需的努力,尽管这可能很常见不可预料的.[76]Scrum故意省略了规定的实践[77]鼓励实证分析和实验自由。常见的功能失调方法[78]现在,Scrum已被认为是反对者,包括黑暗的混乱[79]尖叫.[80]

也可以看看

参考

  1. ^施瓦伯,肯;萨瑟兰,杰夫(2017年11月),Scrum指南:Scrum的权威指南:游戏规则,检索5月13日,2020
  2. ^“经验教训:在非技术团队中使用Scrum”.敏捷联盟。 2018年5月18日。检索4月8日,2019.
  3. ^一个bcdefghij肯·施瓦伯(Ken Schwaber)杰夫·萨瑟兰(Jeff Sutherland).“ Scrum指南”。 scrum.org。检索10月27日,2017.
  4. ^“ Scrum,名字是什么? - dzone敏捷”.dzone.com.
  5. ^“存档副本”(PDF)。存档原本的(PDF)2021年2月9日。检索4月7日,2021.{{}}:CS1维护:存档副本为标题(链接)
  6. ^Hirotaka Takeuchi和Ikujiro Nonaka(1986)的“新产品开发游戏”
  7. ^“应该用所有帽子写”“ Scrum”吗?”.stackoverflow.com。检索1月10日,2017.
  8. ^“ Scrum.org Ken Schwaber”。检索2月13日,2022.
  9. ^一个bcdef施瓦伯,肯(2004年2月1日)。敏捷项目管理与Scrum.Microsoft Press.ISBN 978-0-7356-1993-7.
  10. ^Schwaber,Ken(2004)。“ Scrum开发过程”(PDF).先进的开发方法.
  11. ^约翰逊,希拉里·路易丝(2011年1月13日)。“ Scrummaster vs Scrum Master:您怎么看?”.agilelearninglabs.com。检索5月10日,2017.
  12. ^“什么是Scrum?”.什么是Scrum?完成复杂项目的敏捷框架 - Scrum Alliance。 Scrum Alliance。检索2月24日,2016.
  13. ^Verheyen,Gunther(2013年3月21日)。“ Scrum:框架,不是方法论”.Gunther Verheyen。 Gunther Verheyen。检索2月24日,2016.
  14. ^J. Henry和S. Henry。软件维护过程和需求波动的定量评估。在Proc。在ACM计算机科学会议上,第346-351页,1993年。
  15. ^一个bcTakeuchi,Hirotaka;Nonaka,Ikujiro(1986年1月1日)。“新产品开发游戏”.哈佛商业评论。检索6月9日,2010.将Scrum向下移动
  16. ^知识创造公司。牛津大学出版社。 1995年。 3。ISBN 9780199762330。检索3月12日,2013.
  17. ^“ Scrum”.词典英国英语词典.牛津大学出版社。存档原本的2020年3月22日。
  18. ^一个b萨瑟兰,杰夫(2004年10月)。“敏捷的发展:从第一个混乱中学到的教训”。存档原本的(PDF)2014年6月30日。检索9月26日,2008.
  19. ^一个b萨瑟兰,杰弗里·维克多施瓦伯,肯(1995)。业务对象设计和实施:OOPSLA '95研讨会程序.密歇根大学。 p。 118。ISBN 978-3-540-76096-2.
  20. ^“敏捷软件开发宣言”。检索10月17日,2019.
  21. ^施瓦伯,肯; Beedle,Mike(2002)。敏捷软件开发与Scrum。 Prentice Hall。ISBN 978-0-13-067634-4.
  22. ^Maximini,Dominik(2015年1月8日)。Scrum文化:在组织中引入敏捷方法。专业人士的管理。CHAM:Springer(2015年出版)。p。26。ISBN 9783319118277。检索8月25日,2016.肯·施瓦伯(Ken Schwaber)和杰夫·萨瑟兰(Jeff Sutherland)于1995年在德克萨斯州奥斯汀举行的OOPSLA会议上首次介绍了Scrum。[...] 2001年,关于Scrum的第一本书出版。[...]一年后(2002年),肯创立了Scrum联盟,旨在提供全球的Scrum培训和认证。
  23. ^“家”.scrum.org。检索1月6日,2020.
  24. ^约书亚Partogi(2013年7月7日)。“经过认证的Scrum Master vs Professional Scrum Master”。精益敏捷研究所。检索5月10日,2017.
  25. ^一个b麦格雷尔,唐;乔查姆(Jocham),拉尔夫(Ralph)(2018年6月4日)。专业产品主:利用Scrum作为竞争优势。 Addison-Wesley专业人士。ISBN 9780134686653.
  26. ^鲁宾,肯尼思(2013),必不可少的混乱。最受欢迎的敏捷过程的实用指南,Addison-Wesley,p。 173,ISBN 978-0-13-704329-3
  27. ^一个bcd莫里斯,大卫(2017)。Scrum:敏捷项目的理想框架。在简单的步骤中。第178-179页。ISBN 9781840787313.OCLC 951453155.
  28. ^一个bc科恩,迈克。成功使用敏捷:使用Scrum的软件开发。新泽西州上萨德尔河:Addison-Wesley,2010年。
  29. ^“ Scrum指南”(PDF).
  30. ^Scrum指南(PDF)。 p。 6。
  31. ^“产品主的角色”.Scrum Alliance。检索5月26日,2018.
  32. ^罗马皮克勒(2010年3月11日)。敏捷的产品管理与Scrum:创建客户喜欢的产品。 Addison-Wesley专业人士。ISBN 978-0-321-68413-4.
  33. ^阿姆布勒,斯科特。“产品主角色:敏捷团队的利益相关者代理”。 agileModeling.com。检索7月22日,2016.[...]实际上证明了这一角色的两个关键方面:首先是开发团队中的利益相关者代理,第二名是整个利益相关者社区的项目团队代表。
  34. ^“产品主角色”.Scrum主测试准备。检索2月3日,2017.
  35. ^Rad,Nader K。; Turley,Frank(2018)。敏捷Scrum Foundation Rescursware,第二版。'S-Hertogenbosch,荷兰:范·哈伦(Van Haren)。p。26。ISBN 9789401802796.
  36. ^Carroll,N,O’Connor,M。和Edison,H。(2018)。美国路易斯安那州新奥尔良,美国信息系统会议(AMCIS 2018),美国信息系统会议(AMCIS,2018年),识别和分类。
  37. ^“核心混乱”.Scrum Alliance。检索1月25日,2015.
  38. ^一个bDrongelen,Mike Van;丹尼斯,亚当;理查德(Richard)Garabedian;冈萨雷斯,阿尔贝托;Krishnaswamy,Aravind(2017)。精益移动应用程序开发:应用精益启动方法来开发成功的iOS和Android应用程序。英国伯明翰:Packt Publishing Ltd. p。43。ISBN 9781786467041.
  39. ^Cobb,Charles G.(2015)。项目经理掌握敏捷指南:适应性方法的原理和实践。新泽西州霍博肯:约翰·威利(John Wiley&Sons)。 p。 37。ISBN 9781118991046.
  40. ^一个bc皮特·迪默(Pete Deemer);加布里埃尔·恩奇菲尔德;克雷格·拉曼(Craig Larman);Bas Vodde(2012年12月17日)。“ Scrum Primer:Scrum理论和实践的轻量级指南(版本2.0)”。 infoq。
  41. ^Marta Dunajko(2022年3月3日)。“计划中的计划 - 如何使其有效?”。neurosys.com。检索8月4日,2022.
  42. ^“什么是每天的混乱?”.scrum.org。检索1月6日,2020.
  43. ^小乔(2011年1月17日)。“障碍管理”。敏捷联盟。{{}}引用期刊需要|journal=帮助
  44. ^Paul Flewelling(2018)。敏捷开发人员的手册:从您的软件开发中获得更多价值:从敏捷方法中获得最佳。英国伯明翰:Packt Publishing Ltd. p。91。ISBN 9781787280205.
  45. ^麦肯纳,戴夫(2016)。Scrum的艺术:Scrum Masters如何绑定开发团队并释放敏捷性。宾夕法尼亚州阿利基帕(Aliquippa):CA按。 p。 126。ISBN 9781484222768.
  46. ^希金斯,托尼(2009年3月31日)。“敏捷世界的创作要求”。学士。
  47. ^“产品积压:您的终极待办事项清单”.阿特拉斯利亚人。检索7月20日,2016.
  48. ^皮克勒,罗马。敏捷的产品管理与Scrum:创建客户喜欢的产品。新泽西州上萨德尔河:Addison-Wesley,2010年。[需要报价来验证]
  49. ^Russ J. Martinelli;Dragan Z. Milosevic(2016年1月5日)。项目管理工具箱:实践项目经理的工具和技术。威利。 p。 304。ISBN 978-1-118-97320-2.
  50. ^查尔斯·科布(Charles G. Cobb)(2015年1月27日)。项目经理掌握敏捷指南:适应性方法的原理和实践。约翰·威利(John Wiley&Sons)。 p。 378。ISBN 978-1-118-99104-6.
  51. ^肯·施瓦伯(Ken Schwaber),敏捷项目管理与Scrum,第55页
  52. ^“创建尖峰解决方案”。极端编程。
  53. ^克里斯·斯特林(2007年10月22日)。“研究,尖刺,示踪子弹,哦,我的!”.变得敏捷。检索10月23日,2016.
  54. ^一个bcdefg肯·施瓦伯(Ken Schwaber)杰夫·萨瑟兰(Jeff Sutherland).“ Scrum指南”(PDF)。 scrum.org。检索5月25日,2018.{{}}:CS1维护:使用作者参数(链接)
  55. ^鲁宾,肯尼思(2012),必不可少的混乱。最受欢迎的敏捷过程的实用指南,Addison-Wesley(2013年出版),第1页。375,ISBN 978-0-13-704329-3
  56. ^特克,丹;法国,罗伯特;Rumpe,Bernhard(2014)[2002]。“敏捷软件流程的局限性”。第三届国际极端编程国际会议论文集和软件工程的灵活流程会议论文集:43–46。arxiv1409.6600.
  57. ^“ Scrum实施中的问题和挑战”(PDF).国际科学与工程研究杂志.3(8)。 2012年8月。检索12月10日,2015.
  58. ^肯特·贝克;詹姆斯·格伦宁;罗伯特·马丁;迈克·贝德(Mike Beedle);吉姆·高史密斯(Jim Highsmith)史蒂夫·梅洛(Steve Mellor); Arie van Bennekum;安德鲁·亨特肯·施瓦伯(Ken Schwaber)Alistair Cockburn罗恩·杰弗里斯(Ron Jeffries)杰夫·萨瑟兰(Jeff Sutherland)沃德·坎宁安;乔恩·克恩(Jon Kern)戴夫·托马斯(Dave Thomas)马丁·福勒;布莱恩·马里克(Brian Marick)(2001)。“敏捷宣言背后的原则”。敏捷联盟。检索8月7日,2017.
  59. ^杜巴科夫,迈克尔(2008)。“敏捷工具。好,坏和丑陋”(PDF)。检索8月30日,2010.
  60. ^米哈尔·哈隆;尼古拉斯(2022年1月1日)。“为什么以及如何在实践中适应Scrum:系统评价”.系统与软件杂志.183:111110。doi10.1016/j.jss.s.2021.111110.ISSN 0164-1212.S2CID 240950847.
  61. ^HRON,M。; Obwegeser,N。(2018年1月)。“实践中的Scrum:Scrum改编的概述”(PDF).2018年第51夏威夷国际系统科学会议(HICS)会议录,2018年1月3日至6日.
  62. ^Bjørnvig,Gertrud;吉姆·科普林(Coplien)(2008年6月21日)。“ Scrum作为组织模式”。 Gertrude&Cope。
  63. ^“ Scrum模式社区”.scrumplop.org。检索7月22日,2016.
  64. ^一个b尼伯格,亨里克;斯卡林,马蒂亚斯(2009年12月21日)。“看板和混乱 - 充分利用两者”(PDF)。 infoq。检索7月22日,2016.
  65. ^拉达斯,科里(2007年10月27日)。“ Scrum-Ban”。精益软件工程。存档原本的2018年8月23日。检索9月13日,2012.
  66. ^一个bcd“ Scrums Scrums”。敏捷联盟。2015年12月17日。原本的2014年2月9日。检索12月17日,2013.
  67. ^“风险管理 - 如何阻止风险搞砸您的项目!”。凯利·沃特斯(Kelly Waters)。
  68. ^“ Scrums Scrums”.Scrum主测试准备。检索5月29日,2015.
  69. ^拉曼Scrumyear = 2013。“缩放敏捷开发(Crosstalk Journal,2013年11月 / 12月)”(PDF).
  70. ^“大规模的杂物(少)”。 2014。
  71. ^Grgic(2015)。“少(博客)的下降组织”.
  72. ^詹森,约翰(2019年3月8日)。“会议:开发人员的生产力杀手”.串联 - 体验创新公司。检索6月5日,2020.
  73. ^“并非所有像敏捷这样的开发人员,这是为什么五个原因的原因”.业务很重要。 2019年12月4日。检索6月5日,2020.
  74. ^“每日混乱的5个功能障碍”.scrum.org。检索7月3日,2021.
  75. ^在,isaak tsalicoglou。“如何从敏捷到微观管理|黑客中午”.hackernoon.com。检索6月5日,2020.
  76. ^卡格尔,库尔特。“敏捷的终结”.福布斯。检索6月5日,2020.
  77. ^詹姆斯(MJ),迈克尔(2021年3月29日)。“肯·施瓦伯(Ken Schwaber)故意省略了Scrum的事情”.西雅图Scrum Company。检索7月3日,2021.
  78. ^Derecskey,戴夫(2018年7月18日)。“ 5个普通团队功能障碍(以及5个核心Scrum值如何直接解决它们)”.中等的。检索7月3日,2021.
  79. ^“黑暗混乱”.ronjeffries.com。检索7月3日,2021.
  80. ^“尖叫指南”.谷歌文档。检索7月3日,2021.

进一步阅读

  • 丹尼尔·瓦尼蒂(Vacaniti)(2018年2月)。“ Scrum团队的看板指南”(PDF).scrum.org。检索3月12日,2018.
  • 萨瑟兰,杰夫; Schwaber,Ken(2013)。“ Scrum Guides”。 scrumguides.org。检索7月26日,2017.
  • Verheyen,Gunther(2013)。Scrum - 袖珍指南(聪明的旅行伴侣)ISBN978-9087537203。
  • 穆尼奇(Jürgen);臂章,ove;索托,马丁;Kowalczyk,Martin(2012)。软件流程定义和管理.ISBN 978-3-642-24291-5.
  • Deemer,皮特;Benefield,Gabrielle;拉曼,克雷格;Vodde,BAS(2009)。“ Scrum底漆”。检索6月1日,2009.
  • 新泽西州Janoff; Rising,L。(2000)。“小团队的Scrum软件开发过程”(PDF)。存档原本的(PDF)2015年11月6日。检索2月26日,2015.

外部链接