Scrum-冲刺期间团队成员忙什么


33

因此,Scrum冲刺是一个固定的时间段,在此期间应实现一组特定的功能。Scrum团队由致力于提供这些功能的所有人员组成,其中大多数通常是开发人员和测试人员。

建立了这些规则后,您可能会想知道如何在整个冲刺期间让所有这些人都忙。在sprint的开始阶段,没有什么要测试,而在sprint的末尾,通常没有什么东西可以开发/修复。

我已经看到了两种方法可以解决此问题,但是它们似乎都无法正确解决问题。

1)让团队成员决定在任务结束时应该做什么。

缺点:

  • 如果他们的工作没有得到充分的计划(例如,重大的重构,改用新的测试框架),那么他们的工作可能会变得毫无用处,或者被困在中间
  • 另一方面,计划这样的工作可能要花费大量时间,并且客户可能会失望地看到团队浪费时间在无法带来即时价值的事情上
  • 通常无法对这些任务进行彻底的估算,因此,无原则的工作人员很容易花时间看YouTube猫,而不会在Scrum板或其他任何地方反映出来

2)在sprint中留出仅用于开发的空间,并在sprint完成后开始测试(当开发人员开始处理下一个sprint的功能时)

缺点:

  • 在为当前sprint开发功能时,开发人员会通过修正前一个bug来分心,而他们可能无法执行估计在当前sprint期间完成的工作量
  • 需要两个Scrum板:一个用于当前的sprint功能,一个用于以前的sprint错误

所以我的问题是:如何在开发人员和测试人员之间的冲刺期间正确分配工作,以使任何人都不会负担过多的工作,或者在任何时候都没有任务而最终失败?有什么方法可以改善上述方法?还是有更好的方法?


9
您似乎迷上了利用神话
Nathan Cooper

1
@holdenmcgrohen估计如何完成-规划扑克之类的事情?
罗比·迪

3
测试人员应该在第一天就编写测试用例。他们要做的就是这些故事。如果开发人员在sprint期间有大量的停机时间,则意味着您没有足够的经验。此外,假设您的测试人员是优秀的,那么他们会使您的开发人员忙于sprint末尾的错误报告。同样,理想情况下,您可以充实待办事项列表中的头几个故事,因此在最坏的情况下,开发人员可以处理待办事项列表中最重要的几个。

1
@holdenmcgrohen,我们的项目也面临类似的问题。我们已经开始在冲刺中添加Stretch故事(不应为' must have '),并且仅在开发人员无法完成任务时才选择。现在,这种方法可以帮助我们在下一个冲刺开始的几天中保持测试人员的忙碌。
user6005214'3

1
请记住,在大多数sprint中,您都是从待办事项中选择任务的子集。如果您完成了所承诺的所有工作,则可以开始处理积压的更多项目,从而在下一个冲刺中抢占先机-就像您跑完了一样,您在下一个冲刺中从积压中提取了更少的项目,可以完成尚未完成的任务。转储教条; 意识到工具的目的是为您服务,而不是为您服务。
keshlam '16

Answers:


49

在冲刺开始时,尚无任何测试

真?您没有验证要求吗?没有与您的客户进行讨论?没有评估的线框?没有要考虑的测试计划?

在冲刺结束时,通常没有任何东西或只有很少的东西可以开发/修复

我从来没有去过那个项目中的那个地方。没有更多工作要做?总有东西。您的所有测试都完全自动化了吗?您的CI看起来如何?能否将数据库访问层重构为更简单?而且我从来没有做过带有空错误列表和未完成订单的工作。您的开发人员在瀑布测试阶段曾经做什么?

我知道有人对什么是“ SCRUM”非常虔诚。我对此一点也不在乎。但我认为您在这里有两个问题:

  1. 一个“传统的”质量检查部门,负责在开发人员“完成”代码后对其进行测试,而不是与客户和开发人员合作以确保您构建正确的事物以及正确构建事物。看看Lisa Crispin 的敏捷测试象限。最好的测试人员会参与软件开发生命周期的每个阶段,并且最好的开发人员会编写自己的测试。

  2. 尝试过于严格地遵循1周/ 2周冲刺的SCRUM时间表,而没有按优先级划分大小的待办事项,这些积压工作分解成易于在短时间内单个冲刺中完成的任务。如果您有这个,那么总会有更多工作要做。也许您在此sprint中使用的最后一个功能不会加入该sprint的发行版,但始终可以进入下一个功能。

在旁边。如果您的团队凝聚力很小,那么角色的作用就较小。与其让标签测试人员不允许编写生产代码,或者让标签开发人员认为自己已经超出测试水平,不如让每个人都为团队成功做任何必要的事情,包括在执行任务时所犯的可怕的项目管理任务。他们是必要的,这称为跨职能团队。

@Cort Ammon在评论中提出了另外一点。敏捷宣言谈论的是客户在合同谈判中的协作。你说:

客户可能会失望地看到团队浪费时间在没有带来立即价值的事情上

这可能很难解释,而且我了解客户有时可能非常困难,但这对我来说是一个很大的危险信号。他们相信他们的源代码/客户关系/业务/您为他们开发的内容。如果他们不信任您以他们的最大利益行事,那么您可能会遇到问题,或者他们会这样做。

我写了一篇文章,谈到软件开发人员不被视为专业人员。专业的医生,律师,土木工程师面对客户,他们在整个过程中改变了对他们的要求,这不仅会降低质量,还会抱怨。他们会告诉客户这将是一个问题。如果客户推了推,那么专业人士将不会只是盲目地以低劣的低劣标准来做,因为他们将承担责任。我们不参加专业的入学考试,因此不承担任何责任。这并不意味着我们不应该尝试变得更好。

总而言之,我不会太担心在冲刺的开始和结束时让人们变得更有效率,而是将其视为团队中更广泛问题的征兆。您是否听说过eXtreme编程(XP)。我想说XP中适用的原则是沟通和尊重:

  • 尊重您的团队做他们认为最好的事情。我会说,如果有很多观看猫的视频,那么您要么开发人员欠佳,要么对待他们的待遇不佳。
  • 通讯。如果您的开发人员正在互相交谈,与测试人员,与管理人员以及与客户进行交谈,那么每个人都应该对接下来发生的事情有很好的感觉,如果没有,他们可以问问。

是的,是的,是的。以各种方式现场回答。
David Arno

好的答案-最后一段需要工作。在这里提出并解释要点,而不是指向一些书。
罗比·迪

1
您的开发人员在瀑布测试阶段曾经做什么?-我并不是要把混乱与失败联系起来,而是要把类似看板的方法进行比较,那里总是有待评估和优先处理的功能清单。Scrum积压中包含团队未正确检查的功能,因此,如果单个开发人员(当前没有任何功能需要处理)决定在sprint的中间阶段开始实施其中的一个功能,则可能导致意外后果。
holdenmcgrohen '16

@holdenmcgrohen足够公平。我的估计总是很糟糕,我想对此加以考虑,因此我总是喜欢接下来提出一些建议。我认为,每天的站起来和配对可以为您提供帮助,如果您的开发人员没有被单独搁置太久,他们就不会偏离得太远。
Encaitar'3

@Encaitar伟大的东西+1
罗比·迪伊

20

第一点是,Scrum只是为了优化团队,而不是每个人。如果团队高效且高效,那么在任务开始或结束时有人闲置就没有关系。

但是,在我所服务的每个团队中,总是有很多工作要做。让我解决您的一些具体问题:

在冲刺开始时,尚无任何测试

尽管从字面上看可能是正确的,但这意味着您认为测试人员的唯一工作就是“测试”。在他们开始测试之前,有很多事情可以做。首先,他们可以与产品所有者和开发人员会面,以充分了解需求。他们可能会忙于制定测试计划,收集测试数据等等。如果他们拥有一个好的框架,那么他们可以提前开始编写自动化测试。

在冲刺结束时,通常没有任何东西或只有很少的东西可以开发/修复

我还没有看到一个开发团队用光了要修复的东西。但是,这不是他们在冲刺结束时应该做的。在冲刺即将结束时,他们应该帮助测试人员测试产品。他们可以帮助编写自动化测试,可以对测试人员编写的测试和装置/关键字/代码进行代码审查。他们可以与文档团队合作,以帮助他们完成工作等。

我已经看到了2种方法来解决此问题... 1)让团队成员决定在任务结束时应该做什么。

您的思维缺陷是个人无法完成任务。任务总体上属于团队。只要当前的Sprint中还剩下团队需要的故事或任务,他们就不应该做其他工作。

在冲刺中腾出空间仅用于开发,

这种方法不在Scrum或Agile的传统定义之内。敏捷的全部要点是整个团队都致力于实现一个共同的目标。这意味着完成故事所需的所有工作都必须以冲刺的方式表示-设计,开发,测试,文档等。

最后,这不是唯一可行的解​​决方案。您忽略了真正的解决方案,那就是每个团队成员都应按需介入以帮助完成冲刺中的故事。

目标是团队目标,但您正在写作,好像每个人都有各自的目标(“完成任务”)。如果某人无事可做,他们可以看到当前正在做什么,并愿意提供帮助。或者,他们可以接下一个任务或故事并开始进行工作。


1
+1。敏捷过程需要懈怠。为了优化系统,通常必须取消子流程的优化。在这种情况下,您最好说“优化团队”。其他任何情况都是利用率谬误的征兆。
CodeGnome

在我的职业生涯开始时,我遇到了一些公司,希望他们能在所有PHP,Java,C#,Desktop Apps(VB),QA(自动,手动),Photoshop,CSS等上工作。那个时候,行业因为专业化价值而认为这些公司不那么专业。我想知道在敏捷下,相同的模式是否会获得认可(甚至成为必要)。
kuldeep.kamboj

1

在我工作过的所有敏捷商店中,测试人员都被视为鸡,因此它们不会像开发人员那样被限制在sprint中。在尝试使用该软件之前,测试人员应编写计划,并确保正确设置了环境以接收该软件。为此,他们应该关注所有设计文档。

接下来,您应该寻求填补冲刺。如果估算不错,则冲刺结束时不应有任何空闲时间,尽管估算当然是一种妖术,所以很少准确地填满。

如果开发人员在冲刺结束时确实有空闲时间,则仍应跟踪该时间以确保它正在增加价值(学习新框架,进行分析,进一步测试等)。

修复错误是进入sprint的一种完全可以接受的活动。它有助于功能,因此增加了价值。这不应视为从下一个冲刺中偷走了时间-更恰当地完成一项功能。


8
阅读Scrum指南。也许您会发现它表明可以将开发团队分为测试人员和开发人员(可以,您不会)。
内森·库珀

3
该文件没有说您拥有具有专业知识的开发团队成员,但是您没有将团队划分为像“鸡”那样对待。
内森·库珀

5
对于失望的选民,您错过了敏捷培训的哪一部分,它指定了您应该采用适合自己团队的策略?罗比·迪(Robbie Dee)的团队采用了独特的项目和环境约束在他们独特的环境中为他们工作的产品。每个公司都有环境壁垒和“损害”,需要解决。对于所提出的问题,这似乎是一种完全可以接受的方法。问题不是关于组织测试人员和对冲刺团队进行测试的最佳方法。
maple_shaft

4
否。OP特别询问了Scrum。您无法做任何您喜欢的事情并将其称为Scrum。它可能会或可能不会变得敏捷,而是将自己的跨职能的“团队”作为外部资源或比开发团队的一类成员以外的任何处理的部分是不是 Scrum的。
CodeGnome

2
@CodeGnome是绝对正确的,并且涉及到我经常提出的观点:敏捷是一种哲学,Scrum是该哲学的实现。两者不是一回事,要遵守不同的规则。(是的,Scrum首先出现,但后来进行了改进以实现敏捷实现)

-2

在理想的世界中,您的团队将是跨职能的。每个人都有自己的专业领域,但每个人也都可以作为另一个专业领域工作。如果您的测试人员无法编写最简单的任务,那么您就没有跨职能团队。

SCRUM方法将使您的团队具有跨职能的能力。无论如何,您的测试人员都应该具有测试自动化的技能,这是编码一些不太复杂的事情的一小步。


6
T型人是一回事,让测试人员编写代码(除非我们要谈论测试自动化)是另一回事。
罗比·迪

2
这只是假设只有测试人员在冲刺中有停机时间吗?开发人员也有停机时间。
maple_shaft

我认为开发人员无需进一步培训即可进行测试。我住的地方是教育和工作的一部分。
nvoigt
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.