我使用的代码库超过50万行代码。迫切需要重构。已经确定了重构工作将比正常的两周冲刺花费更长的时间。正如我在本网站上的其他答案所建议的那样,这些不能分解成较小的任务。产品需要在迭代结束时工作,并且部分重构将使系统处于无法使用的状态,因为项目之间的依赖关系非常糟糕。那么解决这一障碍的最佳方法是什么?我再次提到,将其分解成较小的部分不是一个选择,这已经完成了。
更新:人们似乎需要解释为什么这不能适合2周的冲刺。冲刺中涉及的不仅仅是编写代码。我们的政策是没有测试就没有代码。该策略并不总是存在,并且代码库中的很大一部分都没有。另外,我们的某些集成测试仍然是手动测试。问题不在于重构本身如此之大。事实是,小的更改会影响系统的许多部分,因此我们需要确保这些部分仍然可以正常运行。
因为我们有每月的修补程序,所以我们不能推迟或延长冲刺。因此,经过sprint的更改无法停止将其他工作添加到此修补程序中。
重构与重新设计:仅仅因为我们的开发过程效率不足,无法在两周的周期内完成此重构,所以不能保证将其重命名为重新设计。我想相信,随着我们流程的改进,将来我们可以在两周的周期内完成完全相同的任务。这里讨论的代码很长时间都不需要更改,并且相当稳定。现在,随着公司的发展方向变得更加适应变化,我们希望代码库的这一部分与其余部分一样具有适应性。这需要重构。根据这里的答案,很明显,在正常的sprint的时间范围内缺少必要的脚手架来进行此重构。
回答:
我将采用科宾·马奇(Corbin March)首次提出的分支与合并方法,以便我们可以更多地了解这些问题领域以及如何识别缺失的测试。我认为,向前迈进,我们应该采用Buhb建议的方法,确定缺少测试的区域并先实施这些区域,然后再进行重构。这将使我们能够保持正常的两周冲刺周期,就像这里的许多人一直在说的那样,重构应该总是如此。