Home / Managing project schedules across teams with Delivery Plans


It takes several teams to develop large software projects. Very large projects require multiple autonomous teams that can manage their own backlog and priority while contributing to a unified direction for that project. Regular reviews of the project schedule with these teams help ensure that the teams are working toward common goals. Delivery Plans provide the needed multi-team view of your project schedule.

MS teamsWant additional learning? Check out the Manage Agile software delivery plans across teams module on Microsoft Learn.


  • This lab requires you to complete task 1 from the prerequisite instructions

Exercise 1: Managing Delivery Plans with Azure DevOps

Task 1: Installing the Delivery Plans extension

  1. Navigate to your team project on Azure DevOps.

  2. Delivery Plans is provided as a marketplace extension. From the Marketplace navigation dropdown, select Browse Marketplace.

  3. Search for “Delivery Plans”.

  4. Select the Delivery Plans option.

  5. Click Get it free.

  6. Select the organization to install Delivery Plans into. This should be the organization that contains your Parts Unlimited project. Click Install.

  7. Click Proceed to organization.

  8. Click the Parts Unlimited project link to return to its dashboard.

Task 2: Creating a delivery plan

  1. From the Boards dropdown, select Plans.

  2. Click New plan.

  3. Since you may want to have multiple delivery plans for different aspects of your project, provide the specific name “Web delivery”. It should default to the Parts Unlimited Team, so select Features and click Create. Note that you could also organize your deliveries by Stories if you used that model instead. There is also the option to add additional teams and criteria to filter stories/features by, but we’ll revisit those later.

  4. Due to the iteration reconfiguration performed earlier, the “Today” marker is right at the beginning of Sprint 2. We have a number of stories listed for delivery in the previous sprint, and we can also see an empty Sprint 3. Note that some of the stories shown are Done. Although it’s useful to see the progress of work, we’ll use that as an example by which to filter items out in a moment.

  5. Click the Configure plan settings button.

  6. Select the Field criteria tab and click Add criteria.

  7. Set the new criteria to filter down to items where State does not equal (<>) Done.

  8. We can also add a custom marker to keep track of significant dates. Select the Markers tab and click Add marker.

  9. Select the fourth Friday from today (it will be the Friday in the middle of Sprint 3) and set the Label to “Team offsite”. Select magenta as the Color and click Save.

  10. The first thing to notice is that the “Closed” story is no longer visible on the delivery plan due to the criteria set in the configuration. In addition, there is now a magenta marker in the middle of Iteration 3 that says “Team offsite” when clicked.

  11. Another neat feature of the delivery plan extension is the ability to easily scale the calendar. Drag the Scale slider all the way to the left to view multiple months at once.

  12. Slide it all the way to the right to zoom in to a much more precise view.

Task 3: Adding an external team to the project

  1. Our delivery plan has been pretty simple so far because we only have the one team. However, the real power of delivery planning comes into play when orchestrating multiple autonomous teams across their efforts. Open the settings page using the Project Settings navigation located at the bottom left of the page.

  2. From the Teams tab, click New team.

  3. This new team will be responsible for the efforts that involve integrating with external services, such as 3rd party services for things like weather forecasts and payment processing. Set the Team name to “External integration team” and click Create team.

  4. Select the Project configuration tab under Boards.

  5. Note the dates of Sprint 2 and Sprint 3, which will vary for your account based on when you generated the project data. We’re going to add two new iterations for the external services team that do not align exactly with the main team’s schedule.

  6. With the root PartsUnlimited node select, click New child.

  7. Set the Iteration name to “Iteration 50”. Use today as the Start date and set the End date to three Fridays from today. This will also happen to be the day of the team offsite. Click Save and close.

  8. Use the same process to add an Iteration 51 that starts the Monday after Iteration 50 ends and has an end date three Fridays later.

  9. Now we need to configure the new team to use those new project sprints as its iterations. Select the Teams tab and click External integration team.

  10. Click Iterations and areas.

  11. Select the Iterations tab.

  12. Click Select iterations and use the + Iteration button to select Iteration 50 and Iteration 51. Click Save and close.

Task 4: Making delivery decisions

  1. From the Boards dropdown, select Plans.

  2. Click the Configure plan settings button.

  3. Select the Teams tab and click Add team.

  4. Select the External integration team and Features. Click Save.

  5. Use the Scale slider to fit the width of Iteration 50 and Iteration 51.

  6. The new team doesn’t have any stories added yet. Fortunately, you can add them directly to their team and iteration using the inline functionality. Select the Iteration 50 iteration. Click the New item button that appears.

  7. Enter “Integrate with weather service” and press Enter. That item is now in the backlog with its area and iteration configured.

  8. Follow the same process to add an item for integrating with corporate branding assets to Iteration 51.

  9. Now we can step back to see how these two teams are working toward our common goals. Upon closer examination, it appears that the main team is planning to reuse some corporate branding assets during the current sprint that will not be available until well after it’s over. It’s a good thing we have this view to catch these sort of potential problems early on.

  10. The first thing we should do is to move the branding integration work to an earlier iteration. Drag and drop the corporate branding story onto Iteration 50. In order to free up the bandwidth, drag the weather service story onto Iteration 51.

  11. Next, drag the branding work item from Sprint 1 to Sprint 3 so that there’s a chance the dependencies will be available in time for this team to be unblocked.

  12. Now we can review the delivery plan again. It should be more feasible now.

  13. There are a lot of ways to quickly customize the view of the delivery plan. For example, pressing the ‘t’ key will toggle between showing all configured fields and showing just the title. Try that now.

  14. You can also collapse all teams (or specific teams) using the toggle buttons next to their names.


Thanks to Nagaraj Bhairaji for making a video on this lab. You can watch the following video that walks you through all the steps explained in this lab