Using Microsoft Teams with Azure DevOps
At ProvisionPoint, we are a big fan of Microsoft Teams. We use Microsoft’s flagship communications platform as our main communication and collaboration mechanism. This doesn’t just cover our internal communications, calls and demos, it also includes the collaboration and management of our software releases. I don’t mean we use Microsoft Teams as our DevOps platform, no, we use Azure DevOps and integrate it into Microsoft Teams to get the best of both worlds.
So how does that work? We use Azure DevOps to plan and track our releases. We assign work items to an iteration and create a release from the iteration. There’s nothing new here, it’s the way the tool was designed to be used. The key here is that we then take the collaboration out of Azure DevOps and into Microsoft Teams. Why? To allow for a more dynamic collaboration experience for the dev and test team members and to give easy access to summary and status for the management team.
The structure of the Microsoft Team
There are three main focus areas to each release Team:
- The dashboard
- Work item channels
- Pipeline channels
The dashboard is displayed in a tab in the Teams General channel. The dashboard is created in Azure DevOps and includes sections for burndown charts, work item status counts, work items for the release and work items assigned to @me. We surface the dashboard in the Teams tab using the Azure DevOps Teams app from the store.
Using the dashboard, the management, dev and test teams can get a good understanding from a high level about the current state of the release. While the dev and test teams have an easy entry point to their current work item assignments.
Work Item Channels
We use Team channels for Bugs, Tasks and User Stories. These channels are for discussing the work items amongst the teams where the discussion wouldn’t naturally fit within the work item discussion. Again, the Azure DevOps Teams app provides a great integration in the Teams Channel. You simply type the work item id into the chat window and it will link up the work item and you can start a conversation around it.
We use Team channels for Builds and Releases that receive and post notifications from the build and release pipelines in Azure DevOps for the release. This is a great way to see the progression of a release. It not only helps the build and release manager to monitor activity and manage issues but provides valuable insight to the test teams.
Provisioning the Microsoft Team
We are ProvisionPoint, so of course we don’t set these Teams up manually every time we create a new release. We configure a Microsoft Teams Service Definition in ProvisionPoint with all the configuration needed to create the Team as described. Then we simply fillout the request form with some metadata and let the powerful ProvisionPoint engine do all the hard work for us.
In a future post, I’ll go into more detail on how we actually configure ProvisionPoint to achieve provisioning these slightly more complex Teams.