我们有一个软件产品的发展节奏的客户需要及更一般的路线图。

因为我们是在一起的项目的环境中,这种情况非常没有按时,一个新的特征使得它的方式产品,然后我们面临的选择:

  • 执行这个设在一个已经释放了部门(不是真的有一个分支,然后)
  • 制作一个新的分支-但然后我们有一个分支,每三周,并且它只是不maintanable了

不释放的新的特征不是一个选项,客户不要等待一个长期的里程碑的计划,以获得他们想要的,它并不总是faisible移动功能,在客户模块的-我们有时候需要变更核心的产品...

有任何人的任何反馈意见上的一个良好做法给予这种限制?

有帮助吗?

解决方案

我建议下,我们使用在当前的环境:治疗计划外的功能像你一个安全修复。

  • 每个计划的发布(例如3.0,3.1)都有自己版本的数量,并且它自己的标签源代码。之后就释放了,你不要碰它。
  • 新的功能,后一个计划的发布进入下一个计划释放(例如3.2)
  • 如果你必须修改的一个释放的代码版本,它是一个"意外释放",并得到一个补丁版本的数量(例如3.1.1,3.1.2).所有变化:
    • 得到实施一个新的分支机构根据关的最新补给,释放(例如3.1.1创建3.1.0,3.1.2创建3.1.1)
    • 是立即合并到主干,因此它们也能进入下一个计划的发布
  • 后实现计划外的功能,你打开支进一标签(aka不要碰它了)和回到工作在后备箱。

这种方式,每个计划的特征获取一个分支,但只有足够长的时间,使新的释放和融入主干。你做的几乎所有的你的工作在一个地方-干-并没有很多的合并工作要做。

其他提示

一个新的分支像('new_feature_branch')是否有实现个 发展努力 这不是兼容目前支(如'release_branch')

所以如果你现release_branch不是非常积极,可以使用它的新特点(提供定义的标签 之前 发展这种新的功能,在情况需要取消这一进程,并回到以前的状态这个新的要素)

制作一个新的分支机构可以是一个很好的解决方案提供的它是合并定期(每3周)对释放的分支,然后离开了。它尤其建议如果你有一些活动release_branch(如一些热错误定).然后两个工作必须保持分开的。

基本上,这一切都归结到你 合并工作流程 定义。

留意见如果你想要我详细一些的选择你觉得我没有足够的深度。

在我的办公室我们通常的工作关的3个分支在任何给定的时间点。

  • 释放:这是这里的代码这就是目前部署的标记和储存。如果我们需要做的任何严重错误的修正,这是在哪里工作已经完成。部署时我们通常会增加修补程序部分的标签(即1.19.0->1.19.1).
  • QA:这是这里的代码这就是准备为客户进行标记和储存。这个分支是用于当我们开始新的工作,并有一些代码,是目前正在测试通过QA在编制下交付。
  • 主要:这是所有新工作已经完成。

在极少数情况下,我们需要发展的第四个线(由于非常紧张的发布时间表),我们偶尔会打开了我们的沙盒行代码。尽管更通常情况下,我们将只有一个单一的开发工作隔离和不检查,直到的主要线路已被清除。

与分支战略上,我们已经能够使主要特征的变化与交付在每个冲刺。

它不会听起来像你真的生活在一起环境。Scrum 需要 该团队将完成在每个冲刺,这是应该不超过四个星期(更有可能一两个星期)。因此,每隔几个星期,你应该有一个全面测试、运行时,潜在的部署系统,无论如何。

只有这样,我知道,这样做是要有全面的、完全自动化的套房客户和开发试验(如极端的程规定的).

我不知道为什么你会需要的分支机构,在这种情况下,但我也不明白为什么它不会维护。以我的经验,shorterlived的一个分支的更好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top