本文并非专为版本控制专家所写,实际上这样的专家在本文中找不到新东西。本文是为我们这些希望进行简单、有效的协作的人所准备的。任何直接参与敏捷软件开发的人,无论他承担何种角色,都有可能对其感兴趣——每个人都会用到分支和合并,而不只是配置经理。
介绍
本文讲述了关于如何在敏捷的环境中与多个团队共同进行版本控制工作的实例。我假定你已经熟悉了Scrum的基本元素、XP方法和任务板。这些方式不是我发明的,它们是基于“主线(mainline)模型”或“稳定主干(stable trunk)模式”。想阅读更多信息请查看引用部分。
撰写本文,是因为我一直在遇到需要类似内容的团队。许多团队在理解了模型之后,似乎非常喜欢这些模型。它也正是我们在《Scrum and XP from the Trenches》中描述的公司所采纳的方式。它真的可以帮助我们以更敏捷的方式来开发和发布软件。通过以易于阅读的方式来描述模型,也许我不再需要反复在白板前做解释了。:o)
注意这只是众多模式中的一种,不是“银弹“。如果你决定采用该模型,也许你需要做出一些变更来适应你自己的特定上下文。
目标
在多个团队构成的敏捷环境中,版本控制模型必须达成以下目标:
快速失败
代码冲突和集成问题应该可以被迅速发现。
经常修复小问题要胜过不常修复大问题。
一直可发布
即使经历了一个混乱的Sprint,也要保证至少有些可以发布的内容。
简单
所有的团队成员每天都会使用这些模式,所以相关规则和程序必须要简单明了。
单页总结(对于挂在墙上的内容)
如果该图让你觉得很迷惑,别着急,阅读本文即可。如果其中的理念对你来说很明显,读读本文也无妨。