【发布时间】:2012-11-18 07:12:57
【问题描述】:
这组问题试图引出关于如何使用 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 Areas, Optimal Definition and Configuration
- Team Foundation Server - Area / Iteration
我们计划申请区域的典型布局是这样的:
-> 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 积压)的文件夹下都有预定义的查询; 等),但这些查询似乎是针对“根项目\发布 1\Sprint 1”进行硬编码的——在给定针对迭代定义的日期的情况下,这些查询是否应该自动发现当前 sprint?如果不是,那么维护这些查询的最佳做法是什么?
您是否知道一些高质量的 TFS 2012 和 Scrum 2 特定培训/教程可能有助于解决这些问题,或为成功设置 Scrum 2 TFS 提供一些指导?
【问题讨论】: