Project management 如何将Scrum应用于维护和遗留代码改进?

Project management 如何将Scrum应用于维护和遗留代码改进?,project-management,scrum,Project Management,Scrum,正如标题所示。。。 我如何将scrum过程应用于任何不适用于新代码且在某种程度上可以估计的东西 当我仍想计划做一些事情时,我如何将scrum流程应用于维护和紧急修复(修复可能需要5分钟到2周)类型的环境 基本上,我如何克服计划外任务和scrum过程中很难估计的任务?还是我只是在这个环境中应用了错误的过程?将所有修复和改进视为单独的故事,并进行相应的评估。我个人的观点是,那些不到10-15分钟就能解决的问题应该马上解决。对于那些需要更长时间的项目,它们将成为当前“修复和改进”迭代周期的一部分。与评

正如标题所示。。。 我如何将scrum过程应用于任何不适用于新代码且在某种程度上可以估计的东西

当我仍想计划做一些事情时,我如何将scrum流程应用于维护和紧急修复(修复可能需要5分钟到2周)类型的环境


基本上,我如何克服计划外任务和scrum过程中很难估计的任务?还是我只是在这个环境中应用了错误的过程?

将所有修复和改进视为单独的故事,并进行相应的评估。我个人的观点是,那些不到10-15分钟就能解决的问题应该马上解决。对于那些需要更长时间的项目,它们将成为当前“修复和改进”迭代周期的一部分。与评估常规需求一样,作为一个团队,您可以进行最佳猜测。随着更多的信息被曝光,估计值也被取消,调整迭代和即将到来的冲刺

很难将迭代周期应用于修复和改进,因为它们常常会阻止系统正常工作,“业务”会给它们施加压力,要求它们尽快投入使用。在这一点上,移动到一个非常短的迭代周期可能会更好,比如一到两周

将所有没有故事的“bug修复”视为新代码。对其进行评估,并按正常方式进行操作。通过将它们视为新的故事,您将建立一个故事和测试库。只有这样,您才能开始锁定应用程序的行为

看一看Michael Feathers的遗留代码的有效使用。这里是一个摘录的链接


-Jason

您询问如何在紧急情况下使用流程。尝试保留“紧急情况”一词,用于同时连接用户的生产环境中需要破解代码的事情。否则,利益相关者很可能会滥用这个词,对任何他们想尽快得到的东西发出紧急呼吁。缺少流程并不意味着失控:必须有人负责宣布紧急情况,并且有人(最佳实践是其他人)必须授权正常流程之外的更改,然后对此负责


除此之外,建议使用每次迭代来完成一些修复和改进可能是最好的方法。

如果您的环境中有那么多的搅动,那么您的关键将是更短的迭代。我听说过团队每天进行迭代。您还可以转向看板类型的样式,其中您有一个具有固定限制(通常非常低,如2或3个项目)的队列,并且在完成之前不能添加更多的项目

我要做的是尝试一周的迭代,包括每日站立、待办事项优先级排序和“完成,完成”。然后在5或6周后重新评估,看看有什么可以改进。不要害怕按原样尝试这个过程——并且在尝试之后,不要害怕根据您的环境调整它


还有一个名为PDF的文件,最近发布到了雅虎网站上

这在很大程度上取决于应用程序的生命周期。当然,如果这是一个即将重试的“日落”应用程序,那么重点将只放在修复最高优先级的bug上

如果该产品是“成熟的”,并且有一个路线图,并且正在继续发展,那么您将需要进行修复和增强。通过重构来保持设计的整洁和发展有很大的动力。这可能意味着定期发布次要和主要版本[EFIXE-紧急修复/热修复程序除外]。您可以随心所欲地实践敏捷,因为增强和修复可以成为故事板,并成为Sprint积压工作的一部分。整个列表将使您的产品积压

一句话:如果你想重构并保持你的应用程序设计干净[程序员倾向于走捷径,如果他们只关注bug修复],这只能发生在一个“活的”应用程序上。进化和更新的人。敏捷是天生的适合


即使您只有修复(这是一个图灵完整的;)或Sunset应用程序,但如果它们都可以集成到一个sprint中,并集成到每个sprint的生产端中,这也会有所帮助。如果修复需要在修复后立即投入生产,那么应用Scrum就困难得多。

没有人说积压项目必须是新代码。维护工作,无论是bug修复、增强还是数据修复,都可以放入产品待办事项中,并进行估计和优先排序。这实际上是使用Scrum的最大好处之一——不再与用户争论什么是bug修复还是增强

对于瀑布,有一种默契,即bug是开发人员的责任。不知何故,他们在不影响新代码和特性的开发的情况下就可以解决这些问题。因此,它们对用户来说是“免费的”,但对开发者来说却是一个巨大的不便


在Scrum中,您认识到所有工作都需要时间。没有“自由”。因此,开发人员可以自由地接受某些东西是一个bug,但它仍然会进入产品待办事项列表中。然后由客户决定修复bug是否比添加新功能更重要。您可以忍受一些bug。

我们已经在这种情况下应用了scrum

成功的一些关键。
1.企业中的每个人都支持scrum理念(这对成功至关重要)
2.大约2周的冲刺时间(我们的2-3个第一冲刺时间为1周以了解流程)
3.在任何情况下都不能在当前sprint中添加一个点 4.如果出现真正的紧急情况,停止冲刺,进行回顾并开始新的冲刺。
5.花点时间回顾一下(花点时间分享上一次冲刺并分析一下)
6.在sprint中,插入至少一个任务来改进流程(通常添加到