我有一份与 Rally API 网络服务挂钩的报告。它列出了向外部客户展示的用户故事和缺陷。开发人员在时间表中填写他们在任务上花费的时间,但是当我尝试使用“TaskActualTotal”值获取实际花费的时间时,它总是返回为 0。
当我在时间表上的内部报告产生这些值时,这些值肯定会被记录下来。
我是否必须要求使用其他方法花费的时间?
谢谢
我有一份与 Rally API 网络服务挂钩的报告。它列出了向外部客户展示的用户故事和缺陷。开发人员在时间表中填写他们在任务上花费的时间,但是当我尝试使用“TaskActualTotal”值获取实际花费的时间时,它总是返回为 0。
当我在时间表上的内部报告产生这些值时,这些值肯定会被记录下来。
我是否必须要求使用其他方法花费的时间?
谢谢
您的开发人员是否在时间跟踪器模块中输入时间?实际值和时间跟踪器模块之间没有连接。实际值也早于时间跟踪器。
Actuals 字段旨在用于回顾期间,以提供有关错过承诺的根本原因的洞察力,而 Time Tracker 模块旨在帮助报告开发成本。
我们通常只建议刚接触 Scrum 或敏捷且仍在努力提供良好估计的团队使用实际值。在回顾过程中,将估算值与实际值进行比较有助于确定估算中可能出现的较大差距。
对于更成熟的团队,我们建议将“实际值”字段保持隐藏,因为这些值似乎将注意力集中在花费在特定功能上的时间或资源上,而不是强调整个团队是否做出了承诺。
当然,所有团队在他们使用的流程和遵循的开发周期方面都非常不同。
时间表值的目的更多是为了捕获和报告开发成本以进行计费和资本化,而不是帮助完成或估算图表。然而,实际值旨在在这方面提供帮助,并像 Estimates 和 ToDo 值一样在 Tasks 上运行,并在故事级别汇总以便于比较。
您仍然可以在 WS API 中查询 Actuals。例如,我有一个包含两个任务的故事,每个任务的 Estimate 设置为 2,Actuals 设置为 3。如果我通过该故事计划的特定迭代查询用户故事,只要我得到 TaskEstimateTotal 和 TaskAcutalTotal把它们拿来。这是我的查询:
https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/1111&query=(Iteration.Name = i5)&start=1&pagesize=20&fetch=TaskEstimateTotal,TaskActualTotal
这是回报的相关部分:
{
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/hierarchicalrequirement/22222",
"_objectVersion": "9",
"_refObjectName": "my story",
"TaskActualTotal": 6,
"TaskEstimateTotal": 4,
"_type": "HierarchicalRequirement"
}
但是,如果在任务的“详细信息”页面上而不是在时间跟踪器中输入了 Estimate 和 Actuals 值,则此查询只会返回结果。
我们的 WS API 中有两个与 Time Tracker 相关的对象:TimeEntryItem 和 TimeEntryValue。
以下是基于 Worproduct.Name 查询 TimeEntryItem 的示例:
https://rally1.rallydev.com/slm/webservice/v2.0/timeentryitem?workspace=https://rally1.rallydev.com/slm/webservice/v2.0/workspace/11111&query=(WorkProduct.Name = us1)&start=1&pagesize=20&fetch=WorkProductDisplayString,TaskDisplayString,Values
以及结果的相关部分:
{
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/timeentryitem/77777",
"_objectVersion": "3",
"TaskDisplayString": "TA1: ta1",
"Values": {
"_rallyAPIMajor": "2",
"_rallyAPIMinor": "0",
"_ref": "https://rally1.rallydev.com/slm/webservice/v2.0/TimeEntryItem/77777/Values",
"_type": "TimeEntryValue",
"Count": 2
},
"WorkProductDisplayString": "US1: us1",
"_type": "TimeEntryItem"
},