在Rally Rest API中花费在HierarchicalRequirement上的时间

时间:2013-07-22 12:39:18

标签: rally

我有一个挂钩到Rally API网络服务的报告。它列出了用于向外部客户端呈现的用户故事和缺陷。 开发人员在时间表中填写他们在任务上花费的时间,但是当我尝试使用'TaskActualTotal'值时,它总是回到0。

当我在时间表上的内部报告生成这些值时,将确定记录这些值。

我是否需要花费时间使用其他方法?

由于

1 个答案:

答案 0 :(得分:1)

您的开发人员是否在Time Tracker模块中输入时间? Actuals和Time Tracker模块之间没有任何关联。实际值也早于Time Tracker。

“实际值”字段旨在用于回顾期间,以提供对错过承诺的根本原因的洞察,而时间跟踪器模块旨在帮助报告开发成本。

我们通常只建议使用新的Scrum或Agile团队的Actuals值,他们仍在努力提供良好的估算。在回顾期间将估计值与实际值进行比较可能很有价值,有助于确定估算中可能出现较大差距的位置。

对于更成熟的团队,我们建议隐藏实际字段,因为这些值似乎可以将重点放在花费在特定功能上的时间或资源上,而不是突出显示团队是否作出承诺。

当然,所有团队在使用过程和开发周期方面都有很大不同。

时间表值的目的更多是捕获和报告计费和资本化的开发成本,而不是用于协助完成或估算图表。然而,实际情况是为了在这方面提供帮助,并且就像“估计”和“待办事项”值所做的那样,在故事层面上进行操作,以便于比较。

您仍然可以在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"
      }

但是,如果在任务的“详细信息”页面上输入了“估计”和“实际值”,则此查询将仅返回结果,而不是在时间跟踪器中输入。

我们的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"
      },