...

How to create Work Breakdown Structure in Azure DevOps

This lab is a continuation of the Lab-1-Creating-Roadmaps, where we created the projects and the respective epics. In this lab, we will learn to turn epics into actionable packages by

  1. Breaking epics into features and backlog items,
  2. Planning sprints,
  3. Separating into areas,
  4. Configuring and assigning to teams

Exercise 1: Breaking Epics into Features and Backlog items

In this exercise, we will break the epics into tasks. We could do it via WebUI or CSV import, which are the recommended ways in the official documentations. However, as experiences the Lab-1, we saw that it is quite slow via WebUI whereas the second approach is error-prone against date.

In addition, the csv-import does not offer any pre-validations against invalid values. For instance, you upload Work items having states, that are not supported in the current process model.

Another way, that has been around for ages is the Excel plugin, which does provide extensive validation and mass upload. Furthermore, as data flows into Excel application, it does support to create pivot tables, pivot charts and even custom models via the Power Query M interface. It relies on Queries to work, which is a pro and cons on the same time. Through the queries, extensive filtering and sharing is available. On the other hand, you have to create queries ;).

Let’s try to break down our Azure Migration project

Task 1: Create Queries

Let’s create a query, that shows work items across multiple levels (epic, features, backlog items), which are not in the Remove state. Further the following columns should be listed:

  1. ID
  2. Work Item Type
  3. Title
  4. Assigned To
  5. State
  6. Iteration Path
  7. Area Path
  8. Tags

Hint: Within the Web UI, the Work Item Type appears unnecessary as you have the beautiful icons. But mind, that you don’t have them inside Excel. Also for new items, you need to specify the item type. Therefore they needs to be added.

  1. Open Azure DevOps
    1. Go to https://dev.azure.com/<YourOrg> in your browser.
    2. Sign in using your Azure DevOps credentials.
  2. Select the Project
    1. In the top-left corner, click on Azure DevOps to see all projects.
    2. Click on Azure-Migration.
  3. Navigate to Queries
    1. In the left-hand navigation pane, select Boards.
    2. Click on Queries.
  4. Create a New Query
    1. Click on New query.
    2. Change the Query type from Flat list of work items to Tree of work items, which will change UI of the query editor as the new query type allows you to create views using links of the work items.
    3. Below change the Type of tree from Duplicate Of/Duplicate to Parent/Child, which will show items in a hierarchy based on their Parent / Child relationships set via Linked Work Item.
  5. Locate the condition rows below Filters for top level work items
    1. Remove the condition for Changed Date
    2. For the first condition
      1. Click on to Add new clause
      2. Set the field to Work Item Type.
      3. Set the operator to =.
      4. Set the value to Epic.
    3. For the second condition
      1. Click on to Add new clause
      2. Set the field to State.
      3. Set the operator to <>.
      4. Set the value to Removed.
  6. Locate the condition rows below Filters for linked work items
    1. Remove the condition for Changed Date
    2. Remove the condition for Work Item Type
    3. Click on Add new clause
      1. Set the field to State.
      2. Set the operator to Not In. (Hint: in this case it is similar to <> but in general you would want to use Not In for states because it allows you to give a list of state you want to exclude.)
      3. Set the value to Removed.
  7. Let’s change the columns, that will be shown by clicking on Column options. In the new opened dialog, remove all the columns, that are not desired as described above and add the following columns:
    1. ID
    2. Work Item Type
    3. Title
    4. Assigned To
    5. State
    6. Iteration Path
    7. Area Path
    8. Tags
    9. Click on OK to close the dialog.
  8. Hit Run query to see a preview of the query, which should looks similar to the following screenshot.

Bonus Question: What is the meaning of 1 of 3?

Let’s save the query and open it via Excel

  1. Click on Save query in the toolbar at the top.
    1. Enter All-Epics as name
    2. Choose My Queries as folder.
    3. Click on OK.
  2. Confirm the Query
    1. Open https://dev.azure.com/<YourOrg>/Azure-Migration/_queries/all/
    2. You should see the newly created Queries there.

Bonus-Question: What is the difference between removing an work item and the remove state? Which are the use cases?

Hint: If you write a lot of queries, you might wanna try the WIQL (work item query language) and the WIQL Extension for your organization, which allows you to write it directly within Azure DevOps.

Further reading: https://learn.microsoft.com/en-us/azure/devops/boards/queries/wiql-syntax?view=azure-devops

Task 2: Using the Excel plugin

Having the query, we can now start to import it into Excel and start breaking it down or even add more work items.

Verify the Excel Plugin

  1. Open Excel on your computer.
  2. Try to look for the Ribbon Team. Most likely you won’t find it because the plugin hasn’t been installed yet. In that case, just proceed. If you see it, you can skip the Install the Azure DevOps Office Integration 2019 .

Install the Azure DevOps Office Integration 2019

  1. Open https://visualstudio.microsoft.com/downloads/#azure-devops-office-integration-2019 with your favorited browser.
  2. Hit the Download button
  3. Start the installer and follow the steps.
  4. Restart Excel

Open the Query in Excel

  1. In Excel, go to the Team tab.
  2. Click on New List.
  3. In the Connect to Azure DevOps Server dialog
    1. Click on Servers...
    2. A new window named Add/Remove Azure DevOps Server.
    3. Click on Add... (usually in the top-right corner).
    4. In the Name or URL of Team Foundation Server field, enter your organization URL, for example:
      • https://dev.azure.com/<YourOrg> (for Azure DevOps Services in the cloud)
      • https://<YourServerName>:8080/tfs (for on-prem Azure DevOps Server)
    5. Click on OK.
  4. You will be prompted to sign in or connect to your Azure DevOps organization.
    1. Select the correct organization (Hint: most likely this is the Draphony account we provided you).
    2. Enter your Azure DevOps credentials.
  5. Click on Close to return to the main connection dialog. You should have something similar to the screenshot below

Sign In and Select Your Project

  1. In the main connection dialog, select Azure-Migration as project.
  2. Click on Connect.

Select Your Query

  1. In the Select Work Items dialog, you will see a tree of queries (e.g. Shared QueriesMy Queries).
  2. Expand the folder where your query is saved (My Queries/All-Epics).
  1. Click on OK.
  2. Excel will now retrieve the work items from your query.
  3. You should see rows corresponding to each work item, with columns reflecting the fields in the query.
    1. Confirm that the columns match what you specified in Task 1 (e.g. IDWork Item TypeTitleAssigned ToStateIteration PathArea Path, and Tags).
    2. Verify you see the epic items from your query.

Add Child Work Items

  1. Click on any cell within the table, where your epics are shown. For instance C3 to select the title Datacenter Assessment.
  2. Click on Team Ribbon
    1. Click on Add Tree Level
    2. Click on Add Tree Level (again)
    3. Excel should add 2 new columns:
      1. Title 2 is the title for features
      2. „Title 3` is the title for backlog items
  3. Again, click on Datacenter Assessment at C3 again:
    1. Click on Add Child in the Team Ribbon. Excel will add a new row below and move the selection to Title 2.
    2. Enter Run Azure Migration Tool
    3. Hint: you could basically just add new rows below the Epic. There is no need to use the Add Child.
  4. Fill your excel as depicted in the screenshot below

Publish Your Changes

  1. In the Ribbon, click on Publish.
  2. Monitor the status bar at the bottom of Excel for any validation errors (e.g., invalid states or required fields).
  3. If there are errors, correct them directly in Excel, then click on Publish again.
  4. After a successful publish, go to Azure DevOps in your browser and confirm that the new work items now appear under the correct epic.

Notice, that the ID’s are automatically filled.

Let’s verify it on Azure DevOps Web UI:

  1. Open https://dev.azure.com/<YourOrg>/Azure-Migration/_backlogs
  2. Click on the + Button on the top of the Grid to expand all the items.
  3. You should see a view similar to the screenshot below

Exercise 2: Plan the project using Sprints, Areas and Teams

Next, we need the different areas according to the following requirements:

  1. Project Managers can view all the epics but does not want to see the features
  2. Cloud-Architects Team is responsible for the Datacenter Assessment and Optimization & Goverance epics
  3. Azure-Migration Team is responsible for the features of the epic Infrastructure Migration

So we will create Area and teams as follows

  1. Azure-Migration as the root and Area for all epics
  2. Azure-Migration/Architecture: features of Datacenter Assessment
  3. Azure-Migration/Execution: features of Infrastructure Migration and the features Setting up costs alerts and following Azure Advisor in Optimization & Governance epic
  4. Azure-Migration/Tracking: features of Optimization & Goverance except for the feature Setting up costs alerts and following Azure Advisor

Task 1: Adding users to organization and assign a license

Although the Azure DevOps does know your tenant as it is connected. Users are not automatically authorized to enter and use the organization for their purpose. You need to add them to the organization, assign them a role for the projects or the organization itself.

Navigate to the Users Management

  1. Go to https://dev.azure.com/<YourOrg>.
  2. Sign in with your Azure DevOps credentials.
  3. In the bottom-left corner of the page, click on Organization settings.
  4. In the left-hand menu, click on Users.

Add New Users

  1. Click on Add users to open the Add new users dialog:
    1. For Users, enter the email addresses of duy.thai.bui@draphony.com and 3 additional colleagues of your group.
    2. For Access level, select Basic.
    3. For Project, select Azure-Migration
    4. Click on Add to confirm.

Hint: you could also leverage Groups instead of adding individual users.

In conjunction with Entra ID’s features like dynamic groups and access review, this option gives you great flexibility.

Task 2a: Create the Areas

Areas are used to separate topics. For instance, if you have a web application, the areas could be frontend, backend, infrastructure and so on. For an infrastructure project, this could be the various application, that might need support like databasesdatabases/mssqldatabases/mariadb, and so on. A team has access to multiple areas and iterations.

Given this structure,

  1. you could create a permission model where a Team lead or manager has access to the entire project or just part of it, e.g. databases.
  2. you could just map your teams into vertical teams. This is for agile projects usually discourages.
  3. you could also create a permission mode, where external users / customers can see the higher level (e.g. the ticket) but not the level below (e.g. tasks from your).

Let’s take the last case as the situation for our lab.

Open Project Settings

  1. Go to https://dev.azure.com/<YourOrg>.
  2. Select the project Azure-Migration.
  3. In the lower-left corner, click on Project settings.

Navigate to Project Configuration

  1. In the left-hand menu, under Boards, click on Project configuration.
  2. If you don’t see Project configuration, look for Areas or Settings. The exact label can vary based on your Azure DevOps version.

Hint: In some versions, you may need to expand Project settings → Boards → Areas.

View Existing Area Paths

  1. Confirm there is a root area path named Azure-Migration.
  2. This root area is automatically created when you create the project.

Create a New Sub-Area: Architecture

  1. In the Areas page, click on New child (or + New area path) under Azure-Migration.
  2. Enter Architecture.
  3. Click on OK or Save.
  4. Confirm the new area path Azure-Migration/Architecture appears in the list.

Create a New Sub-Area: Execution

  1. Select the Azure-Migration root again.
  2. Click on New child.
  3. Enter Execution.
  4. Click on OK or Save.
  5. Confirm the new area path Azure-Migration/Execution is added.

Create a New Sub-Area: Tracking

  1. Select the Azure-Migration root again.
  2. Click on New child.
  3. Enter Tracking.
  4. Click on OK or Save.
  5. Verify Azure-Migration/Tracking is created.

Task 2b: Create the Teams

With the Areas set up, we need to create the additional Teams:

  1. Project Managers can view all the epics but does not want to see the features
  2. Cloud-Architects Team is responsible for the Datacenter Assessment and Optimization & Goverance epics
  3. Azure-Migration Team is responsible for the features of the epic Infrastructure Migration . (already existing)

Open the Azure DevOps Organization and Project (if not already there)

  1. Go to https://dev.azure.com/<YourOrg>/Azure-Migration/_settings.
  2. Sign in if prompted.

Create a New Team

  1. In the left-hand menu, click on Teams.
  2. Click on New team near the top.
  3. In the Create a new team dialog
    1. Team name: Enter Project-Managers.
    2. (Optional) Team description: Enter something like “Manages overall project epics.”
    3. Team administrators: add a user who will manage this team’s settings.
    4. Uncheck the box to Create an area path with the same name as the team as we already created custom sub-areas manually).
    5. Click on Create.
  4. You should see Project-Managers listed among the teams in the Teams page.
  5. Repeat step 2 for Cloud-Architects
    1. Use Design, architecture, and planning for Azure migrations as Description
    2. Uncheck the Create an area path with the same name

Task 2c: Assigning and Setting the permissions

Now, let’s assign the Teams to the respective Area. As mentioned earlier, the Areas are meant to set permission models and separate work items.

Open Project Team Settings

  1. Go to https://dev.azure.com/<YourOrg>/Azure-Migration/_settings/teams.
  2. In the left-hand menu, click on Teams.
  3. You should see the teams you created in Task 2b:
    1. Project-Managers,
    2. Cloud-Architects,
    3. and Azure-Migration (the default team).

Configure Area access for Project-Managers

  1. Click on the team name Project-Managers.
  2. Click on Iterations and Area Paths below the name/description of the Team.
  3. Click on the Areas-Tab
  4. Click Change next to Default Area Path and set it to Azure-Migration.
  5. Click on Set.

Hint:

By using only the root area (Azure-Migration) and not including sub-areas, the Project-Managers team will primarily see high-level Epics assigned to the root, and not the Features and Backlog Items assigned to sub-areas.

Configure Area access for Cloud-Architects

  1. Within the page, move the cursor to the top and click on Project Managers (first line of the page and last words)
  2. In the Dropdown select Cloud-Architects.
  3. Click Change next to Default Area Path and set it to Azure-Migration/Architecture.
  4. Click on Set.
  5. In the Grid below, click on Select area(s) to open the Select area(s)-dialog
  6. Choose Azure-Migration/Tracking
  7. Click on Save and close button.

Configure Area acess for Azure-Migration Team (Default Team)

  1. Within the page, move the cursor to the top and click on Cloud-Architects (first line of the page and last words)
  2. In the Dropdown select Azure-Migration Team.
  3. Click Change next to Default Area Path and set it to Azure-Migration/Execution.
  4. Click on Set.

Task 2d: Setting the Areas for the epics and features

No step-to-step guide will be provided.

Try to do this on your own based on what you have learned in on Task 2 of Exercise 1. This will give the most effective learning experience.

The result should looks somewhat like this

Tác giả

  • Azure

Newsletter zu Aktionen

Trage dich ein um keine Aktionen von uns zu verpassen.
Wir senden 1-2 E-Mails pro Quartal.