2015-01-21 88 views
0

我们有一个历史上遭受过大量分支机构的应用。并行工作和“突破性变化”的分支策略

这些已经得到批准,但现在已经出现了一种情况,即我们有两个开发流(理想情况下是一个开发流),其中一个流需要进行一些更改,其中实施它们会产生影响,作为单一故事的一部分(或可能是单一的冲刺)。

例如:需要大量查询逻辑更改的大量数据库模式更改。

这些更改不容易标记功能,因为它们系统地破坏现有功能,直到完成工作。理论上我们可以将系统重新置于“建筑”状态,但这会阻止客户使用现有的功能。

为了迎合这一点,我们建议为'突变'创建一个新的分支,以便其他开发流不被打破,并且可以间歇性地发布。

虽然我很讨厌创建新的分支机构,但目前看不到这样做的更好方法。

有没有推荐的做法,要么是分支策略管理,要么是体系结构保护,打破并行开发中的变化?

编辑:已经越过我心中唯一的另一件事是字面上“复制 - 粘贴”现有的功能(包括表/网页等),对其进行重命名,并在同一个分支上的工作,后面的功能旗。 由于多种原因,这显然很麻烦!

有没有人对他们过去如何应对这个问题有任何建议?

回答

1

您应该以增量方式传递数据库模式(以及其他更改)。不要一下子完成整个变更,而应将其分解成可交付的内容。

如果您当前的应用程序架构不支持此模型,那么这是第一个需要解决的问题。

总是在每个Sprint上都符合您的国防部。所有的工作都不需要进一步的工作就可以运送...

+0

在理想的世界里,当然。导致我们遇到问题的原因在于,对于一​​个sprint而言,模式更改太大,因此需要对现有区域进行大量更改。 这些变化的冲击对DAL,BLL和UI同时具有重要意义。 主要问题是,在这种情况下,确保我们可以递增递送所需的努力量是巨大的,相比之下,允许“行李箱”在一段时间内变得不稳定。鉴于此,你会建议单独的分支可能是两个邪恶中的较小者?或者你会努力在单个分支上实现吗? – dougajmcdonald 2015-01-21 17:32:22

+0

我不能打这个电话。只有你的生意可以。在重构过程中,您仍然需要为客户提供价值吗?如果是这样,你必须去#1。否则,你会得到两个不同的代码库 – 2015-01-22 05:30:29

+0

你总是可以分解它。进行较小的更改。一次只能有一张桌子。 – 2015-01-22 05:31:34