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:
ID
Work Item Type
Title
Assigned To
State
Iteration Path
Area Path
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.
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 Date
Add new clause
Work Item Type
.=
.Epic
.Add new clause
State
.<>
.Removed
.Filters for linked work items
Changed Date
Work Item Type
Add 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:ID
Work Item Type
Title
Assigned To
State
Iteration Path
Area Path
Tags
OK
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
dialogServers...
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 belowSign 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
RibbonAdd Tree Level
Add 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 Tool
Add 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 Migration
So we will create Area and teams as follows
Azure-Migration
as the root and Area for all epicsAzure-Migration/Architecture
: features of Datacenter Assessment
Azure-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 Advisor
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
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-Migration
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.
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
dialogProject-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-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
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/Tracking
Save 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.