这组问题试图引出关于如何使用 Scrum 2 设置 TFS 2012 区域和迭代的最佳实践答案。
背景: 自 TFS 2005 以来,我们一直在使用 Team System,最初为我们拥有的每个产品创建了一个团队项目,然后使用了我们最终稍微调整的 MSF 4.2 流程模板(仅向某些工作项类型添加了一些字段)。
向前推进到今天,我们现在运行 TFS 2012 和 VS 2012。考虑到过去的经验和社区反馈,我们将转移到单个团队项目和 Scrum 2.1,然后使用区域来分离产品和团队。以下链接很好地阅读了这种方法:
- http://blog.hinshelwood.com/when-should-i-use-areas-in-tfs-instead-of-team-projects-in-team-foundation-server-2010/
- TFS 区域、优化定义和配置
- Team Foundation Server - 区域/迭代
我们计划申请区域的典型布局如下:
-> Team Project (Area root)
|--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
|---> Product A
| |---> Feature Area 1
| |---> Feature Area 2
| |---> Feature Area 3
|
|---> Product B
| |---> Feature Area 1
| |---> Feature Area 2
|
| (ETC)
|--> Client B (This is also out team boundary - ie. we have another TFS Team for Client B)
|---> Product C
| |---> Feature Area 1
| |---> Feature Area 2
|
| (ETC)
从概念上讲,我们对上述内容非常满意,因为它对我们的环境是合乎逻辑的。根据以上内容,我们将有以下团队:*“客户 A 团队”*“客户 B 团队”
问题 1)我们认为,由于我们的团队规模不大,并且为了使管理更易于管理,我们不想为每个产品定义团队,因为我们实际上每个客户都有团队,他们监督该客户的所有产品。这是一个错误,还是可以?
问题 2)假设上述团队配置正常,那么我们是否正确将上述每个区域“映射”到每个团队,即对于团队“客户 A 团队”,指定区域“客户 A”(以及所有子区域)为该团队拥有的区域。那么默认区域呢,将“客户端A”区域的根设置为团队默认区域可以吗?
至于迭代布局,我们计划类似的东西,像这样:
-> Team Project (iteration root)
|--> Client A (This is also out team boundary - ie. we have a TFS Team for Client A)
|---> Product A
| |---> Release 1
| | |---> Sprint 1
| | |---> Sprint 2
| | |---> Sprint 3
| |
| |---> Release 2
| | |---> Sprint 1
| | |---> Sprint 2
| | |---> Sprint 3
| |
| |---> Release 3
|
|---> Product B
| |---> Release 1
| | |---> Sprint 1
| | |---> Sprint 2
| |
| |---> Release 2
| | |---> Sprint 1
| | |---> Sprint 2
|
| (ETC)
|--> Client B (This is also out team boundary - ie. we have another TFS Team for Client B)
|---> Product C
| |---> Release 1
| | |---> Sprint 1
| | |---> Sprint 2
| |
| |---> Release 2
| | |---> Sprint 1
| | |---> Sprint 2
|
| (ETC)
问题 3)正确进行迭代似乎比较棘手,尤其是在 TFS 显示积压时。具体来说,对于 TFS Scrum 2 迭代设置,我似乎应该只选择(复选框)那些用于规划和后续开发的叶级迭代。因此,扩展上面的示例,我们可能会认为“客户 A 团队”将在接下来的 4 周(假设 2 周的 sprint)中开始新产品 B 的工作。那么我们是否只能从 Release 1 中选择(复选框)“Sprint 1”和“Sprint 2”?我是否正确理解/使用它?
问题 4)团队待办事项迭代选择——这可能是有问题的,因为我们的概念是每个客户都有团队,而不是每个产品都有团队,但也许我只是理解错了。在 TFS 区域设置中,您指定哪个迭代是“团队的积压迭代”。我的问题是我们的 PBI(产品待办事项)将是特定于产品的,并且不希望将它们与其他产品的 PBI 混合。所以我还无法理解的是,如果我们选择区域“客户 A”作为“团队的待办事项迭代”而不是“产品 B”,将会产生什么影响。我想我在这里让自己感到困惑 - 什么是明智的选择?
上述问题使我不了解这些迭代、区域、团队积压迭代和默认区域的选择将对每个定义的 TFS 2012 团队产生什么影响。我在此设置中遇到的一些问题是 TFS 无法正确识别团队的产品待办事项和冲刺待办事项。
我不知道是否有一个团队项目和多个产品领域(通常建议)使问题复杂化。
问题 5) TFS Web 访问网站 - 对于“工作 | 工作项 | 共享查询”下的任何给定团队,在名为“当前 Sprint”(阻止任务;Sprint 积压等)的文件夹下都有预定义的查询,但似乎这些查询针对“Root Project\Release 1\Sprint 1”进行了硬编码——在给定针对迭代定义的日期的情况下,这些是否不应该自动发现当前的 sprint?如果不是,那么维护这些查询的最佳做法是什么?
您是否知道一些高质量的 TFS 2012 和 Scrum 2 特定培训/教程可能有助于解决这些问题,或者为成功的 Scrum 2 TFS 设置提供一些指导?