当我们必须共享相同的QA环境时,我们应该如何为多个团队构建我们的SVN环境以进行Agile / Scrum开发?

时间:2015-01-26 15:09:41

标签: svn version-control continuous-integration agile scrum

我的任务是为我们向Agile过渡提供一个svn结构,该结构必须扩展到多个团队(有多个开发人员)。在与同事交谈后,我想出了下面的示例结构。我从其他有合法顾虑的团队成员那里得到了一些回击。当我们必须共享QA环境时,我希望找到在多个团队中拥有svn结构的最佳实践。

Proposed SVN structure

在上面的例子中,您可以看到我使用了很多敏捷/ Scrum术语。我这样做是为了帮助解释我为什么想出这个结构的决定。本质上是"主要" trunk将始终只有来自所有团队的故事,这些故事已经完成了#34;已完成的定义"其中包括质量保证。我指出的主要问题是我们必须共享环境(并且出于原因,我们无法虚拟化这些环境),因此,每天发布QA测试将很困难,因为每个团队都会踩到每个环境其他。他们想要解决的另一个问题是,有些人不希望每个开发人员都拥有自己的分支,因为这会增加每个团队/个人必须合并的数量。

此时我不知道该如何回应。我希望有些人/团队能够在这片土地上告诉我们他们的结构如何,以及你因为结构而遇到的问题。

2 个答案:

答案 0 :(得分:2)

我建议你看看"持续交付"作者:Jez Humble和David Farley。他们详细介绍了分支策略,并专门讨论了SVN。

您是否正在推动频繁发布?如果你是,那么最好的方法通常是让所有队员进入后备箱。分支的唯一时间是发布,这样您就可以立即解决生产问题,而不必担心正在进行的工作的影响。

您可能认为这会导致很多集成问题而且您会是对的。但我们的想法是尽早提出整合问题,这通常是修复它们的努力最低的时候。

您需要有一些强大的持续集成来支持这种方法。优选具有良好的自动化回归测试覆盖率。

答案 1 :(得分:0)

我强烈建议您考虑以下敏捷问题:

  1. QA角色必须是您团队的成员(最喜欢软件质量的高级开发人员)。否则,QA将被视为外部服务,因此它不是很敏捷(参见Kent Beck撰写的“极端编程解释”)。
  2. Scrum Master应该强制执行这样的事实:与分支机构合作不是一个问题,而是一个解决方案,恰好适用于有许多开发人员的情况。
  3. 与一组开发人员合作意味着Scrum Master必须确保每个模块都是完善的。为此,TDD(测试驱动开发)是获取代码覆盖率,检查样式​​,复制+粘贴代码(CPD)和圈复杂度指数(等等)报告的好策略。
  4. Scrum Master还应考虑定义持续集成策略,以确保每个应用程序模块的更改都不会修改当前版本或候选版本的预期行为。
  5. 敏捷方法不仅要么是一个好的源代码策略,要么是管理;整个团队必须精心定位,良好的同步和良好的动力。否则,您的项目将取得成功,但不会敏捷。