Newsletter zu Aktionen
Trage dich ein um keine Aktionen von uns zu verpassen.
Wir senden 1-2 E-Mails pro Quartal.
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
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
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:
IDWork Item TypeTitleAssigned ToStateIteration PathArea PathTagsHint: 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.
https://dev.azure.com/<YourOrg> in your browser.Azure DevOps to see all projects.Azure-Migration.Boards.Queries.New query.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.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.Filters for top level work items
Changed DateAdd new clauseWork Item Type.=.Epic.Add new clauseState.<>.Removed.Filters for linked work items
Changed DateWork Item TypeAdd new clause
State.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.)Removed.Column options. In the new opened dialog, remove all the columns, that are not desired as described above and add the following columns:
IDWork Item TypeTitleAssigned ToStateIteration PathArea PathTagsOK to close the dialog.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
Save query in the toolbar at the top.
All-Epics as nameMy Queries as folder.OK.https://dev.azure.com/<YourOrg>/Azure-Migration/_queries/all/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
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
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
Download buttonOpen the Query in Excel
Team tab.New List.Connect to Azure DevOps Server dialog
Servers...Add/Remove Azure DevOps Server.Add... (usually in the top-right corner).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)OK.Close to return to the main connection dialog. You should have something similar to the screenshot below
Sign In and Select Your Project
Azure-Migration as project.Connect.Select Your Query
Select Work Items dialog, you will see a tree of queries (e.g. Shared Queries, My Queries).My Queries/All-Epics).
OK.ID, Work Item Type, Title, Assigned To, State, Iteration Path, Area Path, and Tags).Add Child Work Items
C3 to select the title Datacenter Assessment.Team Ribbon
Add Tree LevelAdd Tree Level (again)Title 2 is the title for featuresDatacenter Assessment at C3 again:
Add Child in the Team Ribbon. Excel will add a new row below and move the selection to Title 2.Run Azure Migration ToolAdd Child.
Publish Your Changes
Publish.Publish again.
Notice, that the ID’s are automatically filled.
Let’s verify it on Azure DevOps Web UI:
https://dev.azure.com/<YourOrg>/Azure-Migration/_backlogs+ Button on the top of the Grid to expand all the items.
Next, we need the different areas according to the following requirements:
Datacenter Assessment and Optimization & Goverance epicsInfrastructure MigrationSo we will create Area and teams as follows
Azure-Migration as the root and Area for all epicsAzure-Migration/Architecture: features of Datacenter AssessmentAzure-Migration/Execution: features of Infrastructure Migration and the features Setting up costs alerts and following Azure Advisor in Optimization & Governance epicAzure-Migration/Tracking: features of Optimization & Goverance except for the feature Setting up costs alerts and following Azure AdvisorAlthough 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
https://dev.azure.com/<YourOrg>.Organization settings.Users.Add New Users
Add users to open the Add new users dialog:
duy.thai.bui@draphony.com and 3 additional colleagues of your group.Basic.Azure-MigrationAdd 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.
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 databases, databases/mssql, databases/mariadb, and so on. A team has access to multiple areas and iterations.
Given this structure,
databases.Let’s take the last case as the situation for our lab.
Open Project Settings
https://dev.azure.com/<YourOrg>.Project settings.Navigate to Project Configuration
Project configuration.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
Azure-Migration.Create a New Sub-Area: Architecture
New child (or + New area path) under Azure-Migration.Architecture.OK or Save.Azure-Migration/Architecture appears in the list.Create a New Sub-Area: Execution
Azure-Migration root again.New child.Execution.OK or Save.Azure-Migration/Execution is added.Create a New Sub-Area: Tracking
Azure-Migration root again.New child.Tracking.OK or Save.Azure-Migration/Tracking is created.
With the Areas set up, we need to create the additional Teams:
Datacenter Assessment and Optimization & Goverance epicsInfrastructure Migration . (already existing)Open the Azure DevOps Organization and Project (if not already there)
https://dev.azure.com/<YourOrg>/Azure-Migration/_settings.Create a New Team
Teams.New team near the top.Create a new team dialog
Project-Managers.Create an area path with the same name as the team as we already created custom sub-areas manually).Create.Project-Managers listed among the teams in the Teams page.Cloud-Architects
Design, architecture, and planning for Azure migrations as DescriptionCreate an area path with the same name
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
https://dev.azure.com/<YourOrg>/Azure-Migration/_settings/teams.Teams.Project-Managers,Cloud-Architects,Azure-Migration (the default team).Configure Area access for Project-Managers
Project-Managers.Iterations and Area Paths below the name/description of the Team.Areas-TabChange next to Default Area Path and set it to Azure-Migration.Set.Hint:
By using only the root area (
Azure-Migration) and not including sub-areas, theProject-Managersteam 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
Project Managers (first line of the page and last words)Cloud-Architects.Change next to Default Area Path and set it to Azure-Migration/Architecture.Set.Select area(s) to open the Select area(s)-dialogAzure-Migration/TrackingSave and close button.Configure Area acess for Azure-Migration Team (Default Team)
Cloud-Architects (first line of the page and last words)Azure-Migration Team.Change next to Default Area Path and set it to Azure-Migration/Execution.Set.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

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