Scrum并没有对重构进行任何说明(请参阅Robert C. Martin的演讲,“ Scrum遗忘的土地”)。
在Scrum中,任务是针对客户指定的软件功能,而不是要通过重构偿还的技术债务。这些是完全不同的抽象级别。客户大多无法评估必要性。
Scrum是统计项目管理。为了获得有意义的“花费多长时间”的度量,您必须了解性能(每个sprint的输出)。您将至少一个冲刺(sprint)以上的功能的估计值与实际持续时间进行比较,以进入统计数据。我建议5个冲刺。但这取决于您的团队。
最主要的是保持措施有意义并具有可比性,以使任何预测成为可能。如果由于技术债务导致业绩下降,情况就不会如此。
如果您现在仍然想到重构任务,那么您将遇到两个问题:1.一个不了解客户的原因,为什么他必须接受不会产生新功能的任务2.您完全扭曲了统计数据,因此无法预测当您突然更改先前冲刺中未考虑的其他变量时
在这两种情况下,您都希望与客户讨论功能时折衷Scrum的想法,并对“需要多长时间?”做出可靠的预测。以统计的方式。为了安全起见,您必须保持代码库的质量恒定(也许很高)。
在大多数情况下,重构是一项地下任务。“出色的”重构意味着过去从未处理过“很少的”重构。
最后一点:如果进行重构,请确保您要重构的组件在测试中。哦,您还没有测试?做一个任务来编写测试。您的客户很高兴得知他当前使用的软件没有足够的测试范围...
让技术人员远离客户,并作为专业开发人员来工作。