Scrum-在Sprint之外工作的开发人员


12

Scrum团队

  • 3 x开发人员
  • 2个测试仪
  • 1 x自动化测试分析师

我们不是一个多功能的团队,因为开发人员不进行测试,测试人员也不进行开发。我相信这是问题的根本原因。

我们目前进行两周的冲刺。

冲刺开始时,每个人都很忙,开发人员开始开发工作,而测试人员正在准备测试(编写测试用例等)。

一旦测试人员完成了准备工作,他们现在正在等待开发工作完成,或者开发工作已经完成,开发人员正在等待反馈/错误。

开发人员在这里发痒,开始处理积压中当前冲刺之外的项目。这产生了一种奇怪的影响,即我们总是在当前的Sprint中开发下一个Sprint。对我来说,这感觉不对。

从管理层的角度来看,他们宁愿开发人员做工作,也不愿坐在办公桌前不做任何事情,但与此同时,我觉得Scrum团队的目标和重点应该完全放在当前的sprint上。我希望我们的团队是多功能的,但不幸的是这是无法实现的。测试人员没有进行开发工作所必需的技能,并且大多数开发人员都认为测试在他们之下。

这是Scrum中的问题吗?有针对这个的解决方法吗?Scrum仅与多功能团队一起工作吗?

如果可能的话,我想知道其他人的经验:)


3
我同意管理。由于任意两周的时间而让人们围坐是一个糟糕的主意。也许您的团队的职责太严格了;在如此小的团队中,所有团队成员“跨职能”并不少见,这使他们能够跳入当前冲刺所需的位置。
罗伯特·哈维

...或者您可能没有在冲刺中投入足够的精力来保持团队两个星期的忙碌。
Blrfl

3
混合对开发/测试混搭是否可行?从某种意义上说,该过程与单元测试周期相同。写一点测试。我们没有正式的版本,但是测试人员习惯于发现一两个错误后直接来找我们。我们没有通过正式的错误报告进行交流。到“我的测试人员”完成测试时,我已经完成修复。作为网络应用程序,可以使修复周转高效。但是至少要进行实验。坦率地说,即使情况并非好坏,mgt的个人等待时间也会减少。
–radarbob

3
最初计划用于sprint的工作是否能以足够的质量完成?还是您还剩下原定计划中未完成的故事?
Bart van Ingen Schenau

2
您可以只保留您的流程,而将其称为“看板”而不是“ scrum”,那么您就不必担心您的流程是否适合使用scrum。/有点讽刺,但不是很讽刺
埃里克·金

Answers:


16

这是由流水线引起的一个相当普遍的问题。团队是多功能的,但是当然存在内部孤岛,这会降低绩效。

首先,我想指出一些我认为很重要的事情:

  1. 如果您的开发人员提前进行迭代,那么他们将抢占您的计划会议。您的产品经理和团队需要适当地讨论下一次迭代中最有价值的东西。优先级划分不应由开发人员有效地完成,因为他们无事可做。

  2. 无论您如何划分和安排迭代,只要您的团队中有专家在孤岛上工作,您都无法真正让所有人一直忙碌,只有一个团队参加一次计划会议。即使采用纯瀑布式方法,您仍然需要“将东西扔在墙上”并等待反馈。

  3. 您还遇到了一个问题,即通常单个故事需要一个开发阶段,一个测试阶段,一个错误修复阶段,然后是...这确实会使您的团队效率低下-尤其是如果他们事先工作, ,因为它们需要上下文切换。

显然,这种情况要付出非常现实的代价:团队没有合作。每当有QA团队参与时,我都会遇到这个问题,所以我有一点时间来尝试不同的解决方案。

这两个工具对我来说非常有效:

  1. 强调整个团队负责完成工作的原则。拒绝“开发完成”的故事,因为它们是开发人员说“不再是我的问题”的一种方式,这既不是建设性的,而且显然是错误的。如果一个团队没有交付他们接受的故事,那么整个团队就没有交付。

  2. 要占用开发人员和质量检查人员的时间,请将它们配对。到目前为止,这是共享您可以选择的专业知识和领域知识的最佳方法。开发人员可以帮助测试人员自动化他们的任务。测试人员可以向开发人员展示测试代码的重要位置,因为它很脆弱。双方合作和工作总比没有快。

使用这两种技术,团队应该得到更少的孤立和更高的绩效。尽管测试人员和开发人员不太可能交换工作,但他们将能够团队合作并在内部解决问题,而不必互相指责。


1
谢谢您的回答。我真的很喜欢将开发人员和质量检查资源配对在一起的想法。我将在下次会议上提出建议,希望我们可以在下一个冲刺中试用。我将更新问题,并告诉您它的进展!
fml

@Sklivvz这种情况发生的时间不仅仅是在有质量检查部门时。每当质量检查是只有“某些人”才能执行的角色时,它就会发生。开发人员将闲置,然后拾取更多的工作,而QA会对开发人员的输出做出永久性的响应,而不是由空闲资源承担“下一个”高优先级任务。
Edwin Buck'1

1
如果不是上述明确,“下一个高优先级的任务将是‘减少积压QA项目这样可以从积压运’不是下一个高优先级的开发任务。
埃德温·巴克

1
建议,例如整个团队负责,尽管听起来不错,但实际上并不能为整个团队服务。这表明每个人都是可以互换的,并且缺少每个人都无法参与的想法。这是错误的。SDLC中的每个人都扮演着特殊的角色,并花费了多年的时间来磨练自己的技能。要求软件工程师进行测试不利于质量,因为他们没有必要的经验来进行质量测试,并且可能会三心二意。即使QA工程师指导他们,指导也要花些时间离开测试,并使工作花费更长的时间。
Chuck Conway

1
@ChuckConway没有人建议您说什么。配对不是替代或指导。理想情况下,您相信团队会找到最佳方法来最大程度地减少停机时间,而这只能从人们了解彼此的角色和需求开始。最好,最高效的团队会自我组织(正确与否,这是敏捷的基本原则)。
Sklivvz

2

与SCRUM和sprint有关的工作方式没有问题,只要它可以在评估时记录下来,即开发人员的工作在比计划的时间短(以及少的时间)内完成。这将使团队在下一个冲刺中承担更多的故事要点。毕竟,冲刺的目的是要更好地进行计划。显然,您仍有改进的空间。

我们一直在开发当前Sprint中的下一个Sprint

哇!这在Scrum中是不可能的。您不知道下一个冲刺中将有哪些积压项目,即在冲刺计划会话中的下一个冲刺开始时要确定的积压项目。

了解组织发明以破坏Scrum的新创意方式仍然很有趣。


3
诸如“哇!这在Scrum中在技术上是不可能的”和“ ...组织发明破坏Scrum的新的创造性方式”这样的陈述的问题在于,它们暗示着有一种正确的“ Scrum”方式。为了有一个正确的方法,Scrum需要具有说明性,即将流程放在人们面前。因此,如果有正确的方式进行Scrum,那么Scrum并不是一个敏捷的过程。
David Arno

@David Arno很好,您基本上是在说任何方法在定义上都不敏捷。甚至是敏捷宣言。只有纯粹的,不可预测的混乱才是敏捷的。但是等等..谁在告诉我要混乱?现在很严重:敏捷的“进程前的人”在那里解决冲突。如果必须选择,则应该做有意义的事情,而不一定是规则说的话。在我看来,OP的团队可以毫无顾忌地阅读Scrum书。也许他们确实做到了,关键问题似乎在于它们的透明度如何。
马丁·马特

1
@DavidArno实际上,这仅意味着存在特定的错误方法来执行Scrum,这似乎没有争议。例如,任何与《敏捷宣言》相抵触的事情在客观上看来都是不正确的。
Sklivvz

1

Scrum为团队而不是个人优化。整个争夺点在于团队的效率。如果开发人员开始处理当前冲刺之外的事情,那么他们会对团队造成损害。它还表明,如果您没有计划足够的工作来填补弹簧,那么您在计划过程中会有些失败。

如果开发人员用完了开发任务,他们绝对应该介入并帮助测试人员,技术作家或设计师-团队中的任何人。他们不一定必须编写实际测试(尽管应该),但是他们仍然可以参与测试过程。他们可以编写脚本来帮助测试人员提高效率,或者他们可以简单地与测试人员讨论他们的挑战,然后去帮助他们克服这些挑战(例如:向网页元素添加id属性,提供测试人员可以使用的钩子或API)可以在他们的测试中使用,等等)。

我认为问题的核心在于,如果您的开发人员并不总是在当前的sprint上工作,那么他们还没有团队合作。您的Scrum主管应该引起注意,并努力使团队作为一个整体而不是个人的集合而工作。

我还建议这是一个管理问题。如果他们向开发人员施加压力,使其忙于工作,那么他们还没有完全接受Scrum。这是Scrum管理员可以帮助的另一件事。他们可以与管理层合作,以帮助他们了解Scrum的工作原理,从而可以帮助支持和鼓励开发团队,而不是颠覆他们。


0

我认为这里的关键问题是:

大多数开发人员认为测试在他们之下

我们在公司中处理此问题的方式是,我们问开发人员,如果他们无法证明自己的工作,怎么能说他们实际上完成了工作。当然,证明它的唯一方法是证明他们编写的代码确实有效,并且这是通过测试完成的。应该向他们指出,如果他们同意参加测试,那么测试将更快完成,并且他们将有更多时间编写其他功能(也需要进行测试)。

指出测试代码不在开发人员级别之下。它是开发过程中不可或缺的一部分。它不能与仅编码分开。任何人都可以编码。并非所有人都能编码并证明他们编码的内容确实有效。

保持开发人员忙碌的另一种方法是让他们为在sprint中开发的功能编写自动测试代码。这些测试然后可以用于将定期运行的回归测试。

无论哪种方式,在冲刺开始时都计划不做的事情都是大禁忌。最好什么也不做,比做一些计划之外的事情要好。在这种情况下,他们编写的功能很可能不符合DoD(完成定义)标准,因为它可能没有经过良好的测试,因为测试人员正忙于测试最初计划的内容。这是一种引入错误并降低产品质量的肯定方法,然后使团队陷入回归问题和上下文切换的下行漩涡中,从而导致压力,速度降低,并最终因此退出团队。


我想说程序员正在测试代码,他们只是不创建自动化测试。有很大的不同。
JeffO

在这种特殊情况下,我敢打赌,这些程序员所做的唯一测试就是来自IDE的测试。实际上,没有多少开发人员将解决方案构建到安装程序包中,像最终用户那样从头开始部署该程序包,然后实际测试该解决方案。在大多数情况下,这还不够,这是质量显着下降的原因。
弗拉基米尔·斯托基奇(Fladimir Stokic)'17年

0

从理论上讲,SCRUM团队的所有成员都应具有相同的知识,以便每个成员可以承担其他每个成员的每项任务。如果没有,您应该传播知识。

但是实际上,总会有某种专业化。该软件可能很复杂,团队成员具有不同的技能,等等。将团队分为开发人员和测试人员只是一个(非常常见)的专业化示例。

传播知识所花费的时间可能比管理层希望接受的时间更多。

以我的经验,您可以做几件事:

  • 不要使团队太小。例如,如果您有4个开发人员和4个测试人员,则将任务移到另一个开发人员或测试人员要容易得多,而在此示例中只有3/2。
  • 尝试分解更大的任务。如果您有更小的任务,您将更加灵活。
  • 定义一些可选任务,如果还有时间可以完成。

这些建议可能不是100%SCRUM理论,但首先您必须保持开发正常进行。SCRUM只是一个工具箱。


0

看来您需要使团队不同步。像那样:

   Test.   -------s1 -----------s2
   Dev.        --------s1 -----------s2

如果我理解测试自动化人员必须提前几天开始。

但是我感觉到您的团队中存在一个问题:开发人员遇到了一个问题,即他们没有测试自己的代码。如果测试人员在不检查代码的情况下准备测试,则他们可能仅在进行黑盒测试,而没有考虑已开发程序的决策点。您对软件的质量感到满意吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.