OLA Tracking Widget
|
| Table of Contents |
|---|
| Summary |
| Preconditions |
| Setup |
| How to Use |
| Sample Queries |
Summary
The purpose of this widget is to provide a streamlined and configurable method for tracking the OLA for support bugs at a glance. The widget's functionality is based on the query system of Visual Studio Team Services (VSTS), and uses the VSS SDK and REST Clients for authentication and to retrieve work item data.
The widget processes dates and times using the Moment package and its Business plugin. The widget then processes the query data and displays the results using the DataTables jQuery plugin.
Preconditions
Minimum Requirements for Queries
Before using the widget, the user must first define a query that produces the desired subset of bugs the widget will process and display. The widget makes certain assumptions about the work items produced by this query, namely that the result set will only contain work items whose Work Item Type is Bug, so therefore any query written for use in this widget should include a clause selecting bugs:
| And/Or | Field | Operator | Value |
|---|---|---|---|
| - | Work Item Type |
= |
Bug |
The widget also assumes that bugs have a Severity field, which is present by default in VSTS. The widget currently supports the following values for Severity:
1 - Critical2 - High3 - Medium4 - Low
There is no need to check for these values at the query level, unless filtering for a specific severity level is desired.
Please see the Sample Queries section for more information.
Query Location
Queries can be saved to either My Queries or Shared Queries in VSTS, and the widget will behave differently depending upon the location of the query.
If the user selects a query from My Queries in the widget settings, they alone can to view the query results in the widget. All other users will see the following when viewing the given dashboard:
![]()
If the user selects a query from Shared Queries in the widget settings, anyone with permission to view the given dashboard can view the query results in the widget:
![]()
Dates and Times
The widget standardizes all retrieved dates and times to use UTC, and the dates it displays after processing the data are given in UTC as well.
Setup
Once the user has created a query, the next step is to add one or more widgets to a dashboard.
After the extension has been installed, click the Edit button at the top of the VSTS dashboard. Find the OLA Tracking Widget from available widgets, and either drag and drop it onto the dashboard, or select it and click Add.
The widget will initially appear blank, and will need to be configured:
![]()
To configure the widget, click Configure button in the top right corner of the widget.
The configuration options are as follows:
Query
![]()
The query used as primary input for the widget.
As mentioned in the Preconditions section, the query should only return work items that are Bugs, and the location of the query in either My Queries or Shared Queries will affect the behavior of the widget.
Title
![]()
The title of the widget.
When a query is selected, the title of the query is automatically copied to the widget title field. However, the title can be independently changed.
Columns
![]()
The columns that will appear in the detail table of the widget.
By default, all of the following columns are selected and will appear:
StateSeverityTriage ValueAssigneeCreated DateTriaged DateNear OLA DatePast OLA DateResolved DateClosed DateElapsed Business Days
To hide any of these columns, deselect them from the drop-down menu and save the widget configuration.
For a more detailed description of these columns, please see the How to Use section.
Begin OLA tracking when ...
![]()
Specifies when the OLA tracking should begin.
The first option causes the widget to begin tracking when the bug is created.
The second option causes the widget to begin tracking when the Triage field of a bug is first set to Triaged. If this option is selected and a particular bug has never been triaged, the date and time it was created will be used instead.
End OLA tracking when ...
![]()
Specifies when the OLA tracking should end.
The first option causes the widget to end tracking when the State field of a bug is last set to Closed.
The second option causes the widget to end tracking when the State field of a bug is last set to Resolved.
In either case, if a bug is not Closed or Resolved (respectively), the current date and time will be used to determine its OLA status.
Bugs are near the OLA deadline after ...
![]()
Specifies when bugs should be considered Near their OLA deadline.
For each severity level, selecting the Hours option will perform a strict addition to the OLA start date (either Triaged Date or Created Date) by the number of hours specified.
For each severity level, selecting the Business Days option will add the specified number of discrete business days (Monday through Friday, excluding weekends) to the OLA start date and pad the deadline out to the end of the resulting day (i.e., 23:59:59.999 UTC).
Note that if the Closed option is chosen for ending OLA tracking, bugs that have been Closed will only appear as either Within or Past their OLA deadline.
Likewise, if the Resolved option is chosen for ending OLA tracking, bugs that have been Resolved will only appear as either Within or Past their OLA deadline.
In other words, only open bugs are ever considered Near their OLA deadline.
Bugs are past the OLA deadline after ...
![]()
Specifies when bugs should be considered Past their OLA deadline.
The Hours and Business Days options perform in the same manner as described above.
Live Preview
In order to prevent excessive calls from the REST Client, the live preview of the widget will only update when the Title or Columns options are changed. All other options require the widget to be saved before the new results are visible.
How to Use
Once the configuration options are properly set and saved, the widget will be populated with data as follows:
![]()
Features
The View Query link under the widget title opens to the query editor for the selected query in VSTS.
The All Bugs, Within OLA, Near OLA, and Past OLA summary buttons at the top of the widget give a count and percentage for each of the respective categories. Note that bugs that are Near their OLA deadline also contribute to the Within OLA count and percentage. Note also that only open bugs contribute to the Near count and percentage as described in the Setup section.
Clicking the summary buttons will filter the detail table so that it only shows bugs for the selected category. Note that clicking the Within OLA summary button will not display bugs that are Near their OLA deadline, only those that are Within but not Near.
The Search field filters the detail table so that it only displays rows containing data matching the entered text. Any data that is visible in the detail table can be used to filter the rows via the Search field.
Hovering over a column header will display its full title, and clicking on a column header will sort the detail table by the values displayed in that column.
Rows can be highlighted for emphasis by clicking on them.
Column Descriptions
Below is a short description of each of the available columns and their additional features:
| Column Title | Full Title | Description |
|---|---|---|
ID |
Work Item ID | The work item ID for the bug. Hovering over the ID will display the bug's title, and clicking on the ID opens the bug in VSTS. |
Status |
OLA Status | The OLA status of the bug, either Within, Near, or Past. Note that only non-resolved or non-closed bugs can be considered Near their OLA deadline. |
State |
State | The state of the bug, typically either New, Active, Resolved, or Closed. |
Severity |
Severity | The severity of the bug, typically either 1 - Critical, 2 - High, 3 - Medium, or 4 - Low (display values are abbreviated). |
Triage |
Triage Value | The value of the Triage field of the bug, typically either Info Received, More Info, Pending, or Triaged. |
Assignee |
Assignee | The person to which the bug is currently assigned. |
Created |
Created Date | The date the bug was created, in the YYYY-MM-DD (UTC) format. |
Triaged |
Triaged Date | The date the bug was first triaged, in the YYYY-MM-DD (UTC) format. |
Near |
Near OLA Date | The date after which the bug is considered near its OLA deadline, in the YYYY-MM-DD (UTC) format. |
Past |
Past OLA Date | The date after which the bug is considered past its OLA deadline, in the YYYY-MM-DD (UTC) format. |
Resolved |
Resolved Date | The date the bug was last resolved, in the YYYY-MM-DD (UTC) format. |
Closed |
Closed Date | The date the bug was last closed, in the YYYY-MM-DD (UTC) format. |
EBD |
Elapsed Business Days (Start to End) | The number of business days between when the bug's OLA tracking began (depending on the option chosen to begin OLA tracking) and the current time and date. This value will only appear for non-resolved or non-closed bugs (depending on the option chosen to end OLA tracking). |
Sample Queries
The following are some example queries that can be used in conjunction with the OLA Tracking Widget.
Tracking All Open Bugs
In the example below, bugs are categorized by their Iteration Path, and support bugs are identified by their Source field having the value External.
| And/Or | Field | Operator | Value |
|---|---|---|---|
| - | Work Item Type |
= |
Bug |
And |
Iteration Path |
Under |
Path to project, team, sprint, etc |
And |
Source |
= |
External |
And |
State |
<> |
Closed |
In the example below, bugs are categorized by their Area Path, and support bugs are identified by their Tags field containing the value Support.
| And/Or | Field | Operator | Value |
|---|---|---|---|
| - | Work Item Type |
= |
Bug |
And |
Area Path |
Under |
Path to project, team, sprint, etc |
And |
Tags |
Contains |
Support |
And |
State |
<> |
Closed |
Tracking Bugs Within a Date Range
In the example below, we are modifying the first query to return all bugs that were created within a given month.
| And/Or | Field | Operator | Value |
|---|---|---|---|
| - | Work Item Type |
= |
Bug |
And |
Iteration Path |
Under |
Path to project, team, sprint, etc |
And |
Source |
= |
External |
And |
Created Date |
>= |
1/1/2018 |
And |
Created Date |
<= |
1/31/2018 |
Tracking Fixed Bugs
In the example below, we are modifying the first query to return all bugs except those that do not have a Resolved Reason containing Fixed. This effectively returns bugs that were resolved due to being Fixed or Fixed and Verified, but filters out bugs that were resolved for any of the following reasons:
As DesignedCannot ReproduceCopied to BacklogDeferredDuplicateObsoleteWill Not Address
Note the grouping of the final two clauses.
| And/Or | Field | Operator | Value |
|---|---|---|---|
| - | Work Item Type |
= |
Bug |
And |
Iteration Path |
Under |
Path to project, team, sprint, etc |
And |
Source |
= |
External |
⌈ And |
State |
<> |
Closed |
⌊ Or |
Resolved Reason |
Contains |
Fixed |
Further Specification
Specification at this level is limited only by the capability of the query system.
For more information on how to construct queries, please see the Visual Studio Team Services Documentation.