Visual studio 2013 Visual Studio Online中的时间跟踪

Visual studio 2013 Visual Studio Online中的时间跟踪,visual-studio-2013,time-tracking,azure-devops,Visual Studio 2013,Time Tracking,Azure Devops,在VisualStudio Online中,有没有一种方法可以度量花费在用例或任务上的时间?我希望将所有内容都放在一个地方(Visual Studio Online就是这样),并从那里生成报告,例如,每个用户的月度时间跟踪报告和反映特定用例/任务的实际工作时间与估计时间的每日报告。当您创建链接到待办事项或Bug的任务时,字段剩余工作时间实际上以小时为单位。所以你可以把它设置成一种时间追踪 不幸的是,据我所知,无法设置任务完成后的实际时间。不,在VSO或TFS中没有现成的方法来完成此任务。这种方法

在VisualStudio Online中,有没有一种方法可以度量花费在用例或任务上的时间?我希望将所有内容都放在一个地方(Visual Studio Online就是这样),并从那里生成报告,例如,每个用户的月度时间跟踪报告和反映特定用例/任务的实际工作时间与估计时间的每日报告。

当您创建链接到待办事项或Bug的任务时,字段剩余工作时间实际上以小时为单位。所以你可以把它设置成一种时间追踪


不幸的是,据我所知,无法设置任务完成后的实际时间。

不,在VSO或TFS中没有现成的方法来完成此任务。这种方法不利于有效和有价值的交付。事实上,研究表明,这可能不利于向客户提供价值

虽然有第三方工具可以插入VSO并提供此功能,但我建议使用另一种方法

对课程粒度的任务进行单独的时间跟踪。关注账单,而不是时间跟踪。我想知道哪一个客户或项目的帐单以及资本支出与运营支出。。。除此之外,这些数据几乎没有什么价值。我使用Freshbooks,过去成功使用过Harvest


更新:如果你是一名顾问,你显然需要跟踪你的计费时间。这应该在独立于TFS的系统中完成

我过去用过Jira,喜欢记录工作时间的方式

我们使用注释列表在VSTS中创建了一个变通方法。它不优雅,但很管用。一个在注释中添加一个数值,该数值被计算为工作小时数。您可以使用正则表达式对此进行更详细的说明,但我所附的代码假定其中有一个浮点或整数

URL_PREFACE =  "https://yourproject.visualstudio.com/defaultcollection/"

def getTicketComments(ticketID):
    """ Gets a list of the comments (in order from oldest to newest) for a given ticket """

    url = URL_PREFACE + "_apis/wit/workitems/" + str(ticketID) + "/comments?api-version=3.0-preview&order=asc"
    jsonDict = readURL(url)

    return jsonDict["comments"]
然后我们求和我们找到的值:

def getHoursSum(ticketID):
    """ For the given ticket, gets their comments, and calculates the hours
    """
    commentList = getTicketComments(ticketID)
    hourSum = 0
    for comment in commentList:
        try:
            hourSum += float(comment["text"]) # Will break if it's not a number
        except:
            pass

return hourSum
最后,我们将工作小时数存储在
CompletedWork
字段中:

def updateHours(ticketID, completedHours):

    headers = {"Content-Type": "application/json-patch+json"}

    url = URL_PREFACE + "_apis/wit/workitems/" + str(ticketID) + "?api-version=1.0"

    body = """[
        {
            "op": "replace",
            "path": "/fields/Microsoft.VSTS.Scheduling.CompletedWork",
            "value": """ + str(completedHours) + """
        }
    ]"""

    username = 'username'  # Doesn't matter
    password = TOKEN

    # TO GET TOKEN:
    #   Log into https://yourproject.visualstudio.com/
    #   Click on your name -> My Profile
    #   In the left-hand sidebar, click on "Security"
    #   Under "Personal Accesss Tokens," click "Add"
    #   Under "Description" give your token a name (doesn't matter)
    #   Choose an expiration for your token (recommend: 1 yr)
    #   "Authorized Scopes" = "All Scopes"
    #   Click "Save"
    #   Copy the token it gives you into token field below (paste between quotes)

    session = requests.Session()
    request = requests.Request(method="PATCH", headers=headers, auth=(username, password),
                               url=url,  data=body)
    prepped = request.prepare()
    response = session.send(prepped)

    return response
(我刚刚复制并粘贴了一些简化的代码——您需要对其进行集成。)


代码是由我最优秀的同事@Elliptica编写的。

没有,因为系统无法真正了解用户在做什么。您走在正确的轨道上,他们可以签入与特定任务/错误/问题相关的工作,因此报告是有意义的。@Jason当您将任务设置为
Done
时,可能会有一个类似
Actual work
的字段,用户可以设置该任务实际花费的时间。有一个实际工时设置(至少使用cmmi配置文件).估计的,剩余的,实际的。这并不能解决我认为OP要求的确切时间,因为工人可以在里面放任何东西。谢谢!我一定会尝试这种方法。我需要把所有东西放在一个地方,这样就不会因为双重证据而出现错误或遗漏。当然,作为PM,我也对测量感兴趣(例如,估算与实现功能所花费的实际时间)我们可以从这些糟糕的估计中学习,也可以建立团队的速度。没有办法使用TFS作为时间跟踪工具。这里有一个关于Team Foundation Server和VisualStudio在线上的时间跟踪选项的很好的讨论:我对此感到困惑。目前我们使用FogBugz并为我们在THA中所做的所有工作创建案例。t-我指的是错误案例、新功能案例、新项目所有功能的案例,以及公司开发任务等。这样,我们就知道我们是如何花费时间的,并且有一个可靠的记录,准确记录我们是如何花费时间为客户开账单的(我们的账单中有很多是按工作时间计费的,因此这是至关重要的).一个允许我们在VSO中记录时间的功能将允许我们从fogbugz切换到VSO,我不明白为什么这么多人反对它?tom_redox,这根本不是我公司的工作流程。我们根本不跟踪时间,因为它没有任何价值。如果我为客户工作一天,我就给他们开一天的账单。如果我工作两小时,我就给他们开两小时的账单。您遇到这种观点是因为任何形式的时间跟踪(不用于计费)都是没有价值的。如果您的客户要求每小时列出您所做的工作,那么他们就不信任您。如果他们不信任您,他们真的是您的合适客户吗?好吧,很酷,我们在这里没有推进任何一种理解,您是对的在没有任何真正的理由的情况下,我只是说这是一个坏主意,我可能没有充分地传达我们的想法。这可能是讨论的错误地点,评论的简短格式限制了我们。感谢您花时间回复,让我们把它留在那里。很高兴您给我发电子邮件,我们可以详细讨论!所以我很想讨论一个老话题,但我对此很感兴趣。我也对跟踪我们的开发人员在工作上花费的时间感兴趣,但不是因为我想向客户收费(我们开发的应用程序供内部使用),但因为我想知道与我们的估计相比,我们的表现如何。如果一个开发人员给我一项工作35小时的估计,我想知道实际完成需要多长时间。我想报告这一点,以全面了解我们的估计情况。我对VSO中没有这样的设施感到失望。你知道吗可以将其添加为计划生成