...

How to create Roadmap across Projects in Azure DevOps

In this lab, we will learn how to create a roadmap, which shows the planned epics for across projects within the same organization in Azure DevOps.

Lab introduction

In this lab, we will guide a fictive company called DX, which is currently working on the following projects:

Project 1: Azure-Migration

DX has strategically decided to migrate all its workloads within the next two years. Currently, it maintains an on-premises data center with approximately 10,000 servers. Within Azure DevOps, a project titled „Azure Migration“ has been established to plan, track, and adapt the procedure.

Project 2: Helpdesk

DX wants to use Azure DevOps as its IT Help Desk solution. Users create new tickets via the Web UI. The IT Team break down the relevant tasks for the ticks and report within Azure DevOps.

Project 3: Script-Library

The Script-Library project contains all the scripts, that can be used by the IT Support team and other project’s pipeline.

Exercise 1: Create a new Azure DevOps Organization

Task 1: Create the Azure DevOps Organization

The first thing before you can do anything with Azure DevOps is to create an Azure DevOps Organization:

  1. Open a browser and go to https://aex.dev.azure.com.
  2. Sign in using your M365 account or Microsoft Account.
    1. Fill in your Name and Email (provided by Draphony)
    2. Select your Country
    3. Click on Next
  3. On the welcome page, click Create new organization.
  4. Confirm with Continue. (Hint: you don’t need to sign up for the marketing newsletter unless you want to.)
    1. Click on Continue
    2. In the Organization name field, enter a unique name (Hint: going forward, we will reference this as <YourOrg>)
    3. Under Country or region, choose your preferred location from the dropdown.
    4. Click Continue to proceed.
  5. Review the details on the confirmation page, then click Create to finalize your new Azure DevOps organization.
  6. Verify your new organization has been created by checking the organization list in the top-left corner. If you see your new organization name, the process is complete.

Hint: If you try signup for a new organization on https://dev.azure.com with your M365 account, Microsoft will redirect you to the Azure Portal.

Hint: Connecting your Azure T enant to Azure DevOps allows you to easily adding other users from your tenant to the project. Event if they were not added previously, you can still find them in any user lists BUT DevOps will warn you that they are not part of your organization!

If you use your M365 account to create a new Azure DevOps organization, the tenant will be automatically connected.

Exercise 2: Create new Azure DevOps Projects

After we have created the Azure Organization, we will continue with creating the different Azure DevOps projects.

Task 1: Create Azure Migration Project

Open Azure DevOps

  1. Navigate to https://dev.azure.com/<YourOrg> and sign in.

Create a New Project

  1. In the top-left corner, select the Azure DevOps logo to open the organization-level view.
  2. Click New project.
  3. In Project name, enter Azure-Migration
  4. In Description, enter DX has strategically decided to migrate all its workloads within the next two years. Currently, it maintains an on-premises data center with approximately 10,000 servers.
  5. In Visibility, make sure that Private is selected.
  6. Click on Advanced and set:
    1. Version control to Git. (should be selected by default)
    2. Work item process to Agile (should be selected by default)
  7. Click Create.

Let’s check the result

  1. Go to https://dev.azure.com/<YourOrg>
  2. The Azure DevOps Organization should look like this
azure organization

Hint 1: Use hyphens, underscores, camelCase or PascalCase for project names.

Azure DevOps does allows to create projects with whitespaces. But the resulting encoded uri for the project would be with %20s for the project. e.g. Azure Migration would become. https://dev.azure.com/<YourOrg>/Azure%20Migration. It makes the uri less readable and (unnecessarily) longer.

The name is still rendered correctly in the project overview though.

Hint 2: A DevOps project can be renamed after it has been created.

Azure DevOps will redirect the new and the old name to the same project, which means that https://dev.azure.com/<YourOrg>/Azure%Migration and https://dev.azure.com/<YourOrg>/Azure-Migration would open the same project. All affected users (team members of the project) will automatically be informed via email by Azure DevOps.

Task 2a: Create Helpdesk Project

Create Helpdesk project

No step-to-step guy will be provided.

Try to do this on your own based on what you have done on Task 1. This will give the most effective learning experience. Otherwise go back to Task 1 and just replace it with the values below.

Let’s repeat the steps above to create a new Helpdesk project with the following properties:

  1. Project name: Helpdesk
  2. Description: DX wants to use Azure DevOps as its IT Help Desk solution. Users create new tickets via the Web UI. The IT Team break down the relevant tasks for the ticks and report within Azure DevOps.
  3. Version control: git
  4. Work item process: CMMI

Let’s check the result

  1. Go to https://dev.azure.com/<YourOrg>
  2. The Azure DevOps Organization should look like this

Task 2b: Disabling unneeded services for Helpdesk project

For the Helpdesk project we do not want to have Artifacts and Test Plans activated (this is just an assumption in this lab. There are cases, where this is needed):

  1. Sign in to Azure DevOps at https://dev.azure.com/<YourOrg>.
  2. Select Helpdesk from the project list.
  3. Then click Project settings in the lower-left corner (Hint: If you use a very small screen (below 1024 pixel width) or have collapse the left navigation pane. Then Azure DevOps will show the ⚙-icon instead.).
  4. Under General, click Overview.
    1. Scroll down to Azure DevOps services.
  5. Switch the toggle on of the left side of Repos.
    1. Confirm your decision with Remove Repos
  6. Switch the toggle on of the left side of Pipelines.
    1. Confirm your decision with Remove Pipelines
  7. Switch the toggle on of the left side of Test Plans.
    1. Confirm your decision with Remove Test Plans
  8. Switch the toggle on of the left side of Artifacts.
    1. Confirm your decision with Remove Artifacts
  9. Refresh the page by pressing F5 (on your keyboard).

Let’s check the result

  1. Go to https://dev.azure.com/<YourOrg>
  2. The Azure DevOps Organization should look like this

Hint: disabling the services will not delete the data. You can reenable it again anytime.

Task 3: Create the Script-Library project

Create Script-Library project

No step-to-step guy will be provided.

Try to do this on your own based on what you have done on Task 1. This will give the most effective learning experience. Otherwise go back to Task 1 and just replace it with the values below.

Let’s repeat the steps above and create the Open Procurement project with the following properties:

  1. Project name: Script-Library
  2. Description: The Script-Library project contains all the scripts, that can be used by the IT Support team and other project’s pipeline.
  3. Version control: git
  4. Work item process: Scrum

Exercise 3: Creating the epics

ProjectWork Item TypeTitleDescriptionStart DateTarget Date
Azure-MigrationEpicDatacenter AssessmentAssess existing on-premises servers and applications to form a comprehensive plan.2025-01-152025-03-01
Azure-MigrationEpicInfrastructure MigrationMigrate on-premises workloads into Azure, including servers and storage.2025-03-022025-06-15
Azure-MigrationEpicOptimization & GovernanceContinuously optimize and govern Azure resources for cost, security, and uptime.2025-06-162025-08-01
HelpdeskEpicTicket Management OverhaulEnhance ticket creation, assignment, and resolution to improve turnaround time.2025-02-012025-03-15
HelpdeskEpicSelf-Service PortalDevelop a user-facing portal with troubleshooting guides and FAQs.2025-03-162025-04-30
HelpdeskEpicReporting and AnalyticsCreate dashboards to track helpdesk metrics (KPIs) and identify improvement areas.2025-05-012025-06-15
Script-LibraryEpicCentralized Script RepositoryCollect and manage all commonly used scripts in a single Azure Repos repository.2025-03-012025-04-10
Script-LibraryEpicCI/CD IntegrationImplement build and release pipelines for automated script testing and publishing.2025-04-112025-05-20
Script-LibraryEpicMaintenance & GovernanceEstablish versioning and governance processes for reviewing and updating scripts.2025-05-212025-07-01

Task 1a: Create epics for Azure-Migration project via Web UI

  1. Go to https://dev.azure.com/<YourOrg> and sign in with your Azure DevOps credentials.
  2. Select the project Azure-Migration in the Project list.
  3. In the lower-left corner, click on Project settings.
  4. Under the Boards section in the left menu, click on Team configuration (or Settings, depending on your version).
  5. Click Epics in the Backlog Navigation Levels section if it has not been marked
  6. In the left menu, click on Boards.
  7. Click on Backlogs.
  8. At the top-right of the backlog view, open the dropdown and choose Epics.
  1. Customize the Backlog viewClick the + New Work Item button.
    1. In the new form that appears on the right side, fill in Datacenter Assessment.
    2. Click on Add to top and the item will be added to the Backlog Grid.
  2. Click on the Title Datacenter Assessment to open details dialog.
    1. Go to the Planning Group and set
      1. Description to Assess existing on-premises servers and applications to form a comprehensive plan
      2. Start Date to 2025-01-15
      3. Target Date to 2025-03-01
    2. Click on Save & Close.
  3. Click the + New Work Item button.
    1. In the new form that appears on the right side, fill in Infrastructure Migration.
    2. Click on Add to top and the item will be added to the Backlog Grid.
  4. Right click on the itemInfrastructure Migration on the Grid and select Edit.
    1. Select Description in the dropdown below Field.
    2. Set Value to Migrate on-premises workloads into Azure, including servers and storage.
    3. Click on + Add new field
    4. Select Start Date in the dropdown below Field.
    5. Set Value to 3/2/2025
    6. Click on + Add new field
    7. Select Target Date in the dropdown below Field.
    8. Set Value to 6/15/2025
  5. Repeat the step 8 – 9 for the remaining item Optimization & Governance of this project and set the Date according to the table above.
    1. DescriptionContinuously optimize and govern Azure resources for cost, security, and uptime.
    2. Start Date2025-06-16
    3. Target Date2025-08-01

At the end, your Backlog should look this

Task 1b: Customize the Backlog view

You probably notice that the current Backlog view for Azure-Migration Team does not show the Start Date and Target Date of each individual backlog item. Let’s change this view, so that it shows:

  1. Work Item Type
  2. Title
  3. State
  4. Assigned To
  5. Start Date
  6. Target Date,
  7. Tags

Steps:

  1. Let’s go back to the https://dev.azure.com/<YourOrg>/Azure-Migration/_backlogs/
  2. Click on Column Options on the top-right.
    1. Remove the Effort-column by clicking on the red cross :x: next to the column.
    2. Remove the Business Value-column by clicking on the red cross :x: next to the column.
    3. Remove the Value Area-column by clicking on the red cross :x: next to the column.
    4. Leave the Tags column in the list.
    5. Click on Add a column and a new empty item will be added.
    6. Select Assigned To from the dropdown
    7. Click on Add a column and a new empty item will be added.
    8. Select Start Date from the dropdown
    9. Click on Add a column and a new empty item will be added.
    10. Select Target Date from the dropdown
    11. Rearrange the items by moving the cursor left to dropdown, drag and drop the columns in the right position
  3. Click OK
  4. Verify your new view shows six columns: Work Item TypeTitleStateAssigned ToStart Date, and Target Date.

Task 2: Create epics for Helpdesk project via CSV import

The approach described in Task 1 is good to add a few items. On the epic level this might be reasonable enough. But on other level, you may need to create many many items quickly.

In those cases, Azure DevOps provide an option to import a list of epics (and other work items) via CSV.

  1. In a browser, open https://vscode.dev/
  2. In the Welcome tab, click on New File... below Start
  3. A file list will appears, select Text File in this list and a new Untitled-1-tab will be created and opened.
  4. Copy the CSV content below into this tab (Hint: below all the steps)
  5. Save the file (for example, %userprofile%/Desktop/epics_import.csv) by hitting Ctrl + S on the keyboard
  6. In your browser, open the Queries-page of the Helpdesk-project by opening https://dev.azure.com/<YourOrg>/Helpdesk/_queries.
  7. Click on the Import Work Items dropdown
  8. Click Choose file.
  9. In the dialog that opens, locate and select the epics_import.csv from the previous step.
  10. Click on Import.
  11. Azure DevOps will show the grid with all items marked red. This is cased by the fact, that the Start-Date and Target-Date are not in the „right“ format for Azure DevOps. You could correct the date manually and than hit „Save items“ but this would render this whole approach kinda useless. Therefore let’s redo the import with a proper format.
    1. Hit F5 on your keyboard and confirm the Reload by clicking on the Reload-button.
  12. Change the file with the content below (Hint:use the version for step 13)
    1. Repeat step 1-5
  13. This looks better, but notice that
    1. The Target Date is still incorrect. This seems to be a bug in the current version.

CSV file content (for step 4)

Work Item Type,Title,State,Description,Start Date,Target Date
"Epic","Ticket Management Overhaul","Proposed","Enhance ticket creation, assignment, and resolution to improve turnaround time.","2025-02-01","2025-03-15"
"Epic","Self-Service Portal","Proposed","Develop a user-facing portal with troubleshooting guides and FAQs.","2025-03-16","2025-04-30"
"Epic","Reporting and Analytics","Proposed","Create dashboards to track helpdesk metrics (KPIs) and identify improvement areas.","2025-05-01","2025-06-15"

CSV file content (for step 13)

Work Item Type,Title,State,Description,Start Date,Target Date
"Epic","Ticket Management Overhaul","Proposed","Enhance ticket creation, assignment, and resolution to improve turnaround time.","2/1/2025 6:00:00 AM","3/15/2025 6:00:00 AM"
"Epic","Self-Service Portal","Proposed","Develop a user-facing portal with troubleshooting guides and FAQs.","3/16/2025 6:00:00 AM","4/30/2025 6:00:00 AM"
"Epic","Reporting and Analytics","Proposed","Create dashboards to track helpdesk metrics (KPIs) and identify improvement areas.","5/1/2025 6:00:00 AM","6/15/2025 6:00:00 AM"

Hint 1: 1000 items limit

You can import up to 1,000 work items at a time. If you have more than 1,000 work items to import, break them into multiple files and import them separately.

Source: https://learn.microsoft.com/en-us/azure/devops/boards/queries/import-work-items-from-csv?view=azure-devops

Exercise 4: Creating the Roadmap

Task 1: Create a new Project „Project-Management“ with solely the Azure Board

In this task, we will create a new project, which will contains the roadmap for all the epics of the entire organization (across the projects).

Try to accomplish this task on your own without instruction. The project should have the following property:

  1. NameProject-Management
  2. VisibilityPrivate
  3. Active Azure DevOps ServicesBoard
  4. Disabled Azure DevOps ServicesReposPipelinesTest PlansArtifacts

In case, you still need it.

  1. Sign in at https://dev.azure.com/<YourOrganization>.
  2. In the top-left area, click New project.
    1. In Project name, enter Project-Management.
    2. In Description, enter Delivery Plan for the entire organisation.
    3. Under Visibility, select Private.
    4. Click Create.
  3. After the project is created, click Project settings in the lower-left corner.
  4. Under General, click Overview, then scroll to Azure DevOps services.
    1. Toggle Repos to Off
    2. Toggle Pipelines to Off,
    3. Toggle Test Plans to Off,
    4. and toggle Artifacts to Off.
  5. Refresh the Browser with pressing the F5 button on your keyboard.
  6. Go back to your Organisation page and confirm, that you have the same view

Task 2: Create a Roadmap for the entire organization

In this task, we will create the roadmap for the entire organization by showing all the epics with the respective start and target date.

  1. Sign in to Azure DevOps at https://dev.azure.com/<YourOrg> and open the Project-Management project.
  2. In the left-hand navigation, click Boards.
  3. Click Delivery Plans to open the Delivery Plans view.
  4. Click the + New Plan button.
  5. In the dialog that appears on the right:
    1. Enter Organization Roadmap as Name.
    2. Project: Choose Azure-Migration as Project
    3. Team: Choose Azure-Migration Team as Team (Hint: this should be pre-selected)
    4. Backlog level: Select Epics (so your timeline displays epic-level items)
    5. Click on + Add team
    6. Project: Choose Helpdesk as Project
    7. Team: Choose Helpdesk Team as Team (Hint: this should be pre-selected)
    8. Backlog level: Select Epics (so your timeline displays epic-level items)
    9. Click on + Add team
    10. Project: Choose Script-Library as Project
    11. Team: Choose Script-Library Team as Team (Hint: this should be pre-selected)
    12. Backlog level: Select Epics (so your timeline displays epic-level items)
  6. Click Create and you should receive a view similiar to the following

Where are the epics from Helpdesk project and Script-Library project?

  1. Let’s click on Epics below Helpdesk Team and switch to the new Tab, which clearly shows, that we have epics.
  1. Let’s change the view to show the following columns (Hint: have a look at Exercise 3, Task 1b if you don’t remember the steps)
    1. ID
    2. Work Item Type
    3. Title
    4. State
    5. Assigned To
    6. Start Date
    7. Target Date
    8. Tags

As we have mentioned previously, the import of the epics broken, so we need to enter the dates manually via Web UI according to the table (Hint: have a look at Exercise 3, Task 1a if you don’t remember how).

  1. Switch back to the delivery plan and refresh the page
  2. Click on the zoom-out button on the right-top (Hint: third button from the left)
  1. Let’s customize the Roadmap by adding the following fields (column)
    1. ID
    2. Start-Date
    3. Target-Date
  2. Click on Settings on the right top corner
  3. In the new opened dialog, click Fields
    1. Check Show ID
    2. Click + Add field twice below Additional fields
    3. Select Start Date
    4. Select Target Date
  4. Click Save

Hint: you may need to zoom in to show the additional Fields.

Bonus Task 3: Add the epics for the Scrip-Library

Add the epics for the Script-Library project as detailed in Exercise 3.

The map should looks like this:

Bonus Task 4: Auto styling

Create multiple styles for the Roadmap to automatically mark epics with 80% lighter red that has not started according to plan (Start Date) as it is still in NewProposed and To Do.

The map should looks like this:

Bonus Task 5: Adding dependencies

Add the dependencies in the roadmap so that it looks like this

Hint: It take a little bit until the dependencies are recalculated in the roadmap.

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.