我正在一个Scrum项目中编写ASIC的C固件代码。
我们时常遇到难以找到的致命错误。但是,我如何估算这些错误需要多少时间呢?
我总是告诉Scrum主管我没有能力估算它们,因为我真的很讨厌估算错误的时间。
在你们的Scrum项目中,你们是如何处理这种情况的?
估计漏洞是一件非常困难的事情。如果您能够做到这一点,则很可能已经找到了解决方案,那就不再是漏洞了 :) 因此,与其尝试逐个估计它们,我更喜欢在Sprint期间分配一些“漏洞修复时间”,并在那段时间内修复最重要的漏洞。这是一种尽力而为的策略,您只需在分配的时间内尽可能地修复漏洞。
我采用的一种方法是在一开始就不出现bug :)
具体做法是,当发现bug时,修复它比实现故事更优先。只有在已有的功能百分之百正常工作后,才能添加新功能。
当然,我们会对bug进行分类。这种停止生产线的方法仅适用于关键性的bug。不太关键的bug被视为功能增强故事,并像其他故事一样在即将到来的迭代中进行估算和计划。
为关键性bug修复分配的时间最终会反映在团队速度中。
"很难对未来进行预测。"
除非你已经分析了一个错误并提出了解决方案,否则无法估计。这就像在不知道待办事项清单的情况下进行Scrum规划会议。
您可以使用大量的估算来传达不确定性。历史数据具有一定的有限价值。即使新错误的工作分配相同,它也不能为手头的一个错误提供太多帮助。此外,新错误平均可能更容易或更难。
将它们估算为几周而不是几小时。
如果你的Scrum-master不理解时间估算修复错误的问题,那么你的项目可能会受益于拥有至少具有较小编程知识的Scrum-master。
根据一致的故事点估算,您应该能够建立一个关于每周完成多少故事点的历史记录。这也将包括修复错误所需的时间。
例如,我们知道我们可以在一周内完成20个故事点,这是从以前的冲刺中得出的结论。这20个点的开发可能在2天内完成,但是接下来需要进行测试和错误修复。我们不会在开发错误上进行估算,因为每个新故事都应该有一个估算,其中大约包括错误修复时间。在估算之前应该先调查现有错误,然后就可以准确地估算了。
我们估计每个漏洞的分析时间为4小时。此外,我们有一个故障优先级。必须在实施其他任何功能之前修复阻止或关键性质的错误。修复许多错误会导致实施的故事减少。但是我们已经为下一个功能提供了一个强大的软件。