在我的前面介绍中描述了Release和Sprint以及Story的关系。参考:Scrum管理中的几个会议与我们的实践
简单来说就是一个Release可以包括几个Sprint,一个Sprint包含几个Story. 当然一个Story可以跨越多个Sprint或者Release。不过版本呢?在实践中我们需要用git tag对代码进行版本标记,确保master branch中的所有tag都表示为一个版本。比如从0.1.0, 0.2.0 到1.0.1这样不断迭代。格式:major:minor:patch
我使用的情况是每个Sprint如果被Product owner接受,就可以按照计划结束,此时git tag就对项目仓库打上对应的版本标记。因此Sprint应该对应版本,通常是较小的版本变更,比如minor和patch。Release对应较大的版本,比如major和minor。一般如此,特殊情况也是有的。比如一个Release就包含一个Sprint,而这个Sprint就是修复bug,因此版本号只修改patch部分。
不过在Redmine Backlogs中有点小问题。他们将用Redmine的version来实现Sprint,其实这造成了混乱。这是社区的一个意见贴: