我使用Scrum开展敏捷项目。
Sprint已经过去了,我们已经成功实现了里程碑。该系统运行良好,足以满足当前客户的要求。
然而,我们留下了一个严重需要重构的系统,因为很多开发都是在很少关注未来的情况下进行的(相反,焦点在于手头的sprint)。
如何最好地处理这个问题? Sprint(s)致力于重构?
答案 0 :(得分:25)
是的,偶尔的其中一个有时并不是坏事。但如果您使用Scrum敏捷,那么您可能会尝试遵循测试驱动开发(TDD),重要的是您要记住序列是红绿色 - 重构,而不仅仅是红 - 绿。质量差的代码不是敏捷开发的输出,而是差的敏捷开发。
答案 1 :(得分:8)
你有'完成'的定义吗?
当您完成编码并准备办理登机手续后,您应该符合团队对“完成”的定义
此定义应包括满足您的验收标准/代码审查/测试审查/以及满足商定的编码标准。
如果经过多次冲刺,您的代码库需要进行严格的重构,我建议您对已完成的定义需要进行审核。
以下是Scrum联盟关于定义'definition of done'
的文章答案 2 :(得分:7)
您不一定需要将整个sprint专用于重构,它也可以在任务级别工作。当你有一个需要使用一些毛茸茸的代码的故事时,在该故事中包含一个重构任务,作为使该部分做出任何合理的事情的先决条件。这样,您可以在功能上取得进步,但也可以逐步完成一些重构。
答案 3 :(得分:5)
对于我的团队,我通常每三到四个月开始一次重构冲刺。考虑到我们进行了为期两周的冲刺,那就是大约每七次冲刺就进行一次重构冲刺。
我像任何其他冲刺一样运行重构冲刺 - 严格的2周时间限制。有时我们甚至只运行一周的重构冲刺(当出现紧急情况时)。
关于重构冲刺的说明:不要过于雄心勃勃:
这是我个人用作重构的指南。它不仅可以使重构成为可管理的,而且还可以作为你过度使用时的一个很好的指标。
答案 4 :(得分:3)
在我工作的地方,我们会有专门针对错误的短跑和technical debt。它在一定程度上改善了事物并具有持续改进的精神。
此处还要考虑的是,是否存在客户想要但尚未请求的增强功能。客户是否真的对当前的系统感到满意,或者它是否足够好以至于他不想抱怨?