Scrum,如何处理冲刺中的错误以及如何计算错误的时间

时间:2009-12-10 08:26:12

标签: debugging scrum

我正在Scrum项目中为C编写C语言的固件代码。

我们经常很难找到错误。但是我如何估计这些错误呢?

我总是告诉Scrum主人我没有能力估计它们,因为我真的很讨厌错误的时间估计。

你们如何在Scrum项目中处理这个问题?

15 个答案:

答案 0 :(得分:22)

估计错误是一件非常困难的事情。如果你能做到,那么你可能已经有了解决方案而且它不再是一个真正的bug :)所以,不是试图逐个估计它们,我首选的选择是分配一些“bug在Sprint期间修复时间并在此期间修复最重要的错误。这是一种尽力而为的策略,您只需在分配的时间内尽可能多地修复它们。

答案 1 :(得分:9)

对我有用的一种方法是首先没有错误:)

这种方法的工作方式是,当发现错误时,修复它优先于故事实施。只有在现有功能100%工作后才能添加新功能。

我们当然会对错误进行分类。这种停止生产线方法仅适用于严重错误。少于严重的错误被视为功能增强故事,在即将到来的冲刺中估计和计划与任何其他故事一样。

关键错误修复的时间分配最终会反映在您的团队速度中。

答案 2 :(得分:5)

“很难做出预测 - 特别是关于未来。”

除非你已经分析了一个错误并且修了一个解决方案,否则无法估计。这就像在不知道积压的情况下进行scrum计划会议。

您可以使用较大的估算来传达不确定性。历史数据的价值有限。即使新错误的工作分配相同,它对手头的一个错误也没有多大帮助。此外,新错误平均可以更容易或更难。

答案 3 :(得分:5)

我问Jeff Sutherland这个,他告诉我,在PatientKeeper,他们有一个固定的估计半天来修复一个bug。如果您的错误的性质是它们可以相当可预测,以便您可以找到近似的平均值,我想这是一个公平的策略。

然而,在实践中我并不总是发现这一点。通常很难理解错误是什么,分析它可能需要更长的时间而不是解决它。这通常会使错误高度不可预测且难以估计。必须分析您在sprint中包含的所有任务,并且错误通常需要比其他任务更多的分析。

我们在“不可预测”错误的情况下所做的是分配固定时间来确定问题所在。例如。我们选择花一天时间(或x点)挖掘试图理解它的bug,然后计划解决下一个sprint的实际修复。但是,如果没有足够的时间来解决这个问题,我们不希望在当前的冲刺中浪费更多时间,并且不得不重新考虑它。在某些情况下,这个错误可能是非常关键的,你只能得到一个不确定的估计......

答案 4 :(得分:4)

在几周而不是几小时内估算它们。

如果您的Scrum-master不了解时间估计错误修复的问题,那么您的项目可能会受益于拥有至少具有较少编程知识的Scrum-master。

答案 5 :(得分:3)

我们可以对bug进行分类 “我知道哪里出错了我需要更新它”, “我知道这个bug与这个模块有关,并且我可以解决一些这些文件的调试”, “我不确定为什么会出现这个错误”。 根据我们在该项目上的经验,我们可以在前两个案例中进行估算。 但估计最后一个案例真的很难。

答案 6 :(得分:2)

如何根据修复早期错误的平均时间来估算它们?

答案 7 :(得分:2)

我前一段时间问了类似的问题并得到了一些good responses

答案 8 :(得分:1)

根据一致的故事点估计,您应该建立一周内可以完成多少故事点的历史记录。这还包括错误修复时间。

例如,我们知道我们可以在一周内完成20个故事点,而不是之前的冲刺。这20点的开发可能会在2天内完成,然而有测试和错误修复。我们不估计开发错误,因为每个新故事应该有一个大致包括错误修复时间的估计。应该在估计之前调查实时错误,然后应该可以准确估计。

答案 9 :(得分:1)

我们估计每个错误的分析时间为4小时。我们还对错误进行了优先排序。在实施任何其他错误之前,必须修复阻塞或关键的错误。修复的许多错误导致较低的实现故事。但是我们有一个强大的软件用于下一个功能。

答案 10 :(得分:1)

我发现在尝试估计错误时确实没有那么多用处。只是阻止它们,找到它们,让它们可见(在你的任务板上或你使用的任何东西上),确定它们的优先级并修复它们。花费的时间会影响速度。重要的是速度。速度是指示您在下一个冲刺中可以获得多少进展的指标。

如果您对某些指标感兴趣,请改为使用每个sprint的错误数量。

答案 11 :(得分:1)

真正的目标是减轻与错误相关的风险;即不让时间表生效。通常,团队将能够确定哪些故事可能会提前创建棘手的错误。因此,一个缓解策略是首先解决这些故事,为团队提供尽可能多的时间来应对意外情况。

答案 12 :(得分:1)

您可能还会考虑在Sprint期间(可提交时间的10-20%)为错误修复分配“偶然”,而不是使用看板方式来解决问题。这意味着您可以与产品负责人交谈并向他解释错误修复成本是否受到控制(因为特遣队是您的时间框),根据团队认为产品的质量将在每次新的迭代中根据经验进行调整。目标当然是缩短时间并提高透明度。产品负责人可以帮助确定Bug Backlog的优先级,将最有价值的错误 - 通常是保留值 - 以便最高优先级可能会被修复...越高越好。

与KanBan合作,意味着团队坐下来定期查看(每日站立是一个好时机之后)Bug队列中的内容,使用所有团队成员的专业知识来确定外观和要检查什么,比某人(通常配对真的很好)接受错误。当特遣队结束时,团队举手并与产品负责人进行会谈,他将不得不决定是否仍然存在必须修复的错误 - 以故事或更多故事为代价 - 或者他们可以等待下一个Sprint。

一般而言,透明度应该使Scrum团队(包括PO和SM)能够确定修复的成本,并找出如何平衡质量和交付速度。这通常是与PO建立对话的好方法: - )

答案 13 :(得分:0)

与钓鱼相比,我听说过虫子修复。修复一个神秘的虫子需要多长时间?钓鱼需要多长时间?您可以尝试按照这些条款向产品所有者解释。

答案 14 :(得分:0)

非常同意Pascal Thivent的回答。 在我们的Sprint中,如果还有其他更紧急的任务,通常我们会选择一些可以定制的任务。

当出现错误时,我们会对其进行优先级排序并确定其重要性。 如果高优先级或严重性,我们将去做,并且此Sprint中不重要的任务将返回到积压。

如果没有错误或错误不紧急,我们将完成所有Sprint任务。

如果已经运行了很多Sprint,可能会有统计数据显示已经花了多少精力来修复错误,将平均工作量作为下一个sprint的基准测试是另一种选择。