Using Azure DevOps REST APIs to automatically create Team Iterations

Using Azure DevOps REST APIs to automatically create Team Iterations

June 16, 2019

Consider this scenario. You are managing a software project using Azure DevOps, and you have multiple teams working towards a common cadence. Perhaps that cadence is managed by a central team. To gain the most value from your sprint planning, you would need to associate the iterations from the project level with each individual team. This is a scenario that I have for my fictitious Theatreers project, but also a scenario I encountered recently with a colleague. I have been helping them setup an Azure DevOps project to track the development of IP and collateral, so that they can more accurately forecast what they expect to land and show the value being delivered by the team.

Consider this scenario. You are managing a software project using Azure DevOps, and you have multiple teams working towards a common cadence. Perhaps that cadence is managed by a central team. To gain the most value from your sprint planning, you would need to associate the iterations from the project level with each individual team.

This is a scenario that I have for my fictitious Theatreers project, but also a scenario I encountered recently with a colleague. I have been helping them setup an Azure DevOps project to track the development of IP and collateral, so that they can more accurately forecast what they expect to land and show the value being delivered by the team.

As we continue planning for the project to be piloted, I realise that the iterations at the project level have not yet been associated with the individual teams. Furthermore, at this point, I also realise that this is something that would need to be setup across all of those teams.

This project has about 18 teams, and started with about 6 iterations. I could have manually added the iterations one-by-one for each team, but where’s the fun in that? Instead, I opted for a scripted approach.

You can find a Gist below showing the example script.

I realise that the above can of course be improved further, such as more robust error checking, looking through multiple depths of iterations in the project configuration, etc. However, This solves my immediate need. Why over-engineer if it solves my problem? Re-architect as the need arises.

That being said, if you think this script could be useful but needs some modifications, please do contribute to it. I have a ‘permanent’ copy of the script available in my Useful Scripts GitHub Repository.

Related

GitHub - Not just a Git repository

Chris is the blogger, podcaster, host and producer of his content platform CloudWithChris.com. He uses GitHub to manage, develop, build and deploy it. In this session, Chris explores how GitHub is more than just a Git repository, and how he uses it for his own work:

  • GitHub Issues / Projects to plan the content (Blog & Podcast) backlog
  • GitHub repositories to version control the website’s source code (and recently open sourced the theme)
  • GitHub Codespaces to make changes to the site from any device
  • GitHub actions to build/deploy the site, and publish podcast mp3 files

Presentation