Azure DevOps - My work items
A dashboard replacement to keep your team in the know.
Published:
Heads up! This content is more than six months old. Take some time to verify everything still works as expected.
I've worked with Azure DevOps in two companies now. In both cases, it's always been a constant struggle to decide if you should have one project, with multiple teams that have their own sprints and areas or multiple projects. It's hard to say what is "right." The standard "it depends" applies based on things like sensitive context, external team members, and organizational access. Both of my previous companies choose to go with multiple projects. Once started, it's a decision that quickly becomes unwieldy unless to use the stock tools.
Default - "My work items"
One of the worst offending tools, perhaps even if you choose only a single project is "My work items". There's a slightly stronger version suggested in their working across projects documentation. Neither provides you enough context to understand the work.
A good view of your dashboard needs to identify:
- The project ✅
- The iteration or sprint
- The id ✅
- The type ✅
- The title ✅
- The status ✅
- The parent item
- The priority
Bonus points for:
- The remaining work (in hours)
- Collapsible hierarchy to hide what you don't need
- A method to open as a query for full functionality.
- Sorting control
Score: 5/12
It's not that I refuse use it, but there surely is better.
Custom - "My work items" Dashboard
Enter our new beauty, a collection of widgets driven by queries:
For sheer joy, let's run the numbers:
- The project ✅
- The iteration or sprint ✅
- The id ✅
- The type ✅
- The title ✅
- The status ✅
- The parent item ✅
- The priority ✅
Bonus points for:
- The remaining work (in hours) ✅
- Collapsible hierarchy to hide what you don't need ✅
- A method to open as a query for full functionality. ✅
- Sorting control ✅
Score: 12/12
Let's break down how it was built in parts. The key is the use of queries set for cross project access. We'll define two:
My completed work
Query across projects: [X]
Type of query: Flat list of work items
Work Item Type: =
Task
And
State: <>
Closed
And
State: <>
Done
And
Closed Date: >=
@StartOfDay('-90d')
And
Assigned To: =
@Me
Column options:
Fields:
- Id (purely for reference)
- Title (purely for reference)
- Assigned To
- Original Estimate
- Completed Work
- Activity
This query will be for the three pie charts at the top of the dashboard. You can add three Charts for work items to aggregate the query items to help your team understand their estimated vs actual hours and work types.
My open work
Query across projects: [X]
Type of query: Tree of work items
Filters for level work items:
Work Item Type: =
User Story
Or
Work Item Type: =
Bug
And
State: <>
Closed
Filters for linked work items:
Work Item Type: =
Task
And
State: <>
Closed
And
State: <>
Done
And
Assigned To: =
@Me
Column options:
Fields:
- Iteration Path
- Id
- Title
- State
- Priority
- Assigned To
- Story Points
- Original Estimate
- Remaining Work
- Completed Work
- Activity
Sorting:
- Priority ascending
- Iteration Path ascending
- Remaining Work ascending
This query will be used to pull items into a query result which will elect to omit some of the fields for brevity. Users in need of more context or mass editing can use the link to view the additional columns you define that help customize the context required for your company.
Hopefully this makes it easier to understand what, why, and in what order you need to take on. If anyone happens to know a means of adding your capacity from a project, I'd love to see that added.
Happy building, and cheers!