Azure DevOps Implications of "include sub-areas" - azure-devops

I am using Area Path in Azure DevOps for categorization rather than breaking into separate Teams. So I can't see all the Work Items underneath the Default Backlog. I go into Settings and choose "Include Sub Areas" and I get the following Warning:
Are you sure you want to include sub-areas?
You have selected the root area path as your team's work area. This
causes two things to happen:
All work items that appear on any team backlog will also appear on
your team's backlog.
All work items under this area path will be updated, which might
impact the performance of your server until the changes are complete.
Are you sure you want to do this? If not, choose Cancel, and the
change will not be made.
#1 is what I want, but what are the implications of #2? What is updated on the Work Item? Will the Assigned To user be emailed of the change?

For #2. The items will be stackranked again to define the backlog order for all work items in the selection. I've seen instances that had millions of work items and the recalculation of the backlog priority field and mapping to your team's custom board columns may take a while in that case.
This field is excluded from the standard email notifications.

Related

Moving a User Story or Bug from one backlog to another

I have a user story (and a bug) in one backlog and I want to move it to another. Backlogs are associated with teams (here), so I believe this amounts to moving a user story from one team to another in the same project.
Note that this is different from how one would move a task from one user story to another (which is achieved by changing the parent) and it is different from moving a work item between projects. I want to move work items between two teams (and thus two backlogs) on the same ADO project.
Each team has an associated area (or areas). You can find this area on the team setting page: Configure team areas and iterations.
To move any work item from one backlog to another on the same team project, just change the Area Path of a work item to the corresponding team area path: Move work items under teams

Is it possible to have multiple backlogs for a single team in Azure Devops?

Sorry if this isn't the right place for this, but all the devops question I see on stack exchange seem to be in stackoverflow.
I've begun working with Azure DevOps, and something I'm noticing is that managing items becomes more cumbersome as I add in more bugs, stories, etc... I'm searching for a way to be able to manage and prioritize these items more easily, and I was wondering if it's possible to have multiple backlogs. Say one for bugs, then one for enhancements, one for support tickets. The issue I'm running into is that we only have one team of developers, so ideally this would all be housed under one team so all these items can be dealt with in a single team's sprint instead of a sprint for each team.
Initially I thought that queries might be a viable option, but when creating them I quickly learned that I cannot reorder items. So that ended that idea.
I also considered just viewing the backlog with a filter to only show what I'm looking for, but that too does not allow me to reorder items easily. It looks like I can drag n drop them, but that doesn't work. I can open the ellipsis menu and choose "move to position", but that's far too clunky of a solution when you have many work items. I also sometimes get conflict errors when trying to move them in that manner.
So I keep coming back to the idea of multiple backlogs for a single team. Is this possible? I don't really see anything in the documentation, and I don't even know if this is considered best practice? Any insights are greatly appreciated.
Sounds like you have tried the out the most obvious ways of filtering and searching for workitems in the backlog and on the boards.
What you can setup is an hierarchy of area paths and (sub)teams to allow for filtered view of the backlog.
Consider the following structure of area paths
ProjectName
- Bugs
- Enhancements
- Tickets
Then you create 4 teams, each corresponding to one node in the Area Path tree (make sure to tick the box include children for all of them). As you now have 4 teams you also get 4 backlogs. The top level team that maps to ProjectName will contain the full backlog (equivalent to what you have now). The other three will only show workitems under their respective area path. You can now use those 3 teams to view filtered versions of the backlog (or boards), but still maintain a single backlog on top level.
As Iterations are defined per project, and are shared across teams, you can continue with one set of iterations and add them to all teams, making them shared.
By this setup any team member can jump between the different subteams to view their preferred filtered version of the backlog (or the complete backlog on the root team)
This feels kinda hackish, setting up new "Teams" just to filter the backlog and whether this is considered best practice or not isn't straightforward to answer. Generally an Agile team should have one backlog and prioritize it as a whole but one could argue that the top level combined backlog fills that purpose and the sub backlogs are used for easier management and for visualizing only parts of the backlog. After all Agile is not about tools it is about being productive.
As danielorn's answer, you can set up multiple iterations. But you don't need to set up multiple teams, you can just use your currently team.
You can try the following steps to see whether this method can fit your requirement.
Step 1. Go to Project Settings -> Boards/Project configuration, create some new child Iterations of your project. In your case, you can leave out the start and end dates of the iteration. Just like this:
Step 2. Go to Boards/Backlogs -> View Options (top right corner) -> Choose "Planning".
Step 3. Click "New Sprint" in the Planning Side Pane, add the Iterations you have created in step1 to the Planning. (Of course, you can skip step 1 and directly create new iterations here, but the iterations you create here must have start and end dates.)
Step 4. Drag the work item to the corresponding Iteration. Then click the iteration, you will see a "new" Backlog that only has work items of this iteration.

Associating Work Items with Pull Requests sets state to Done - Can I change that?

In Azure DevOps, when creating a Pull Request, it's possible to associate work items (Product Backlog Items, Bugs, Tasks, etc). When this happens, the state of the work item is automatically set to Done.
Is that configurable? We would like to associate work items and have them NOT change state.
I've looked through the Project Configuration, Team Configuration, and the Process Configuration and there appears to be no setting relevant to this action.
If you want that the work items will not be changed to Done state you can uncheck the checkbox when you complete the PR:
If you want that the work items will be changed to another state, is not possible yet, this is not configurable, there is an open Feature Request about it, you can upvote it.
Edit: Microsoft added this feature in Sprint 174 with a preview access:
Starting in sprint 174, we have a new feature that allows you to set
the work items to the desired state when the pull request is merged
and completed. To do this, we scan the pull request description and
look for the state value followed by the #mention of the work item(s).
In this example, we are setting two user stories to Resolved and
closing two tasks.
https://devblogs.microsoft.com/devops/new-in-azure-boards-sprint-174/

Creation of a custom board

I want to create a custom kanban board based on a new query for my team.
The ones you get by default seem to be an all or nothing thing, we would like to break down our work outside of sprint planning in to "feature boards" that contain items that may span multiple sprints but are towards a common sub goal of our project.
Is this possible?
That's not the common scenario which TFS/Azure-Devops designed for.
Based on your requirement, you can try creating multiple teams and areas. Area paths allow you to group work items by team, product, or feature area. Then set team default to select the areas the specific team owns below. The selected area paths will determine what shows up on your team's backlog/board and what work items your team is responsible for.
Please see below articles for more information:
Kanban basics
Set team defaults
About area and iteration paths (aka sprints)
Besides, you can also try this extension: Kanban Board Tools, it provides a set of tools to enhance Kanban board usage within TFS and VSTS.
You might want to take a look at this free extension: https://marketplace.visualstudio.com/items?itemName=realdolmen.querybasedboards, that allows you to display a query result into columns, based on work item states configuration.

Unable to view all backlog items at one place while picking them for a sprint

I still didn't get it.
Where do complete backlog stays if we have to plan for new sprint and pick items from backlog. Like I can see stories/features but what about all bugs/issues, where they can be seen?
I don't want to search for all items in queries/work items. How can I bring all work items in backlog?
Sounds like you're using the Agile template, which doesn't put everything on the product backlog by default. You can edit the backlog settings to put the bug workitem on the backlog. You can find this setting in the Backlog customization screen, as long as Bug is configured to show up as a requirement, it should show up on the product backlog:
Since issues follow a completely different workflow, they cannot be placed on the product backlog. I would guess that they're being used as something else than what they were meant for. But you'd have to help me with additional information. The Issue work item type is the scrum equivalent of an Impediment. Anything that is blocking the team from progressing effectively. These aren't part of the work that goes into the product and are not managed on the same list.
If you're using the Issue work item as a different kind of Bug/Defect then I recommend either creating a custom field on bug to signal the bug type or create a new work item type that is a copy of bug to start with, that way it starts out with all the fields required for it to show up on the backlog.