Microsoft Teams and the principles of DevOps go together like toast and jam. But have you ever considered what makes them such a good match?
First, what do we mean by DevOps? Not to be confused with the tool “Azure DevOps,” DevOps is defined as “a set of software development practices that combines software development (Dev) and information technology operations (Ops) to shorten the systems development life cycle while delivering features, fixes, and updates frequently in close alignment with business objectives.
Clearly, a key component to successfully implementing a DevOps methodology is ensuring that various disciplines can collaborate effectively together. And Microsoft Teams, meanwhile, is all about enabling collaboration.
Microsoft Teams is the relatively new kid on the block in Office 365. It is the hub for team collaboration that brings together people, content and tools to ensure your team are focused, engaged and effective. In addition, external users (such as clients) can be added to a Team for open and transparent collaboration.
Why Teams and not e-mail? Each has its place but there are a number of reasons to choose Teams for project collaboration. For instance, when working on a project, all information is at hand without having to search back through e-mail trails. E-mail can also be distracting or not relevant to the current project. And, with Teams, all conversations can be open for other members to join in or to see what their colleagues are working on.
At New Signature, for example, we encourage our team members to have open communications regarding a project within a Microsoft Teams conversation rather than one-on-one. This way the client can see the work that’s being done, providing a transparent view that is in line with the values of our company.
So, this takes us back to how Microsoft Teams is a good match for the principles of DevOps: it enables all-important collaboration. Here’s how it works: A “team” can be created within Microsoft Teams, including the relevant people involved in a specific DevOps project. Within a Team there is a concept of “channels,” where each channel is created for a specific topic within that Team. A good methodology to follow for DevOps projects is to create a channel for each of your stages, for example Analyse, Design, Develop, Test, and Operate, in additional to the “General” channel that is created by default.
This means that conversations around analysing the project’s requirements can be done in the Analyse channel, designing or architecting the solution can be done in the Design channel, development discussions in the Develop channel, discussions around quality and testing in the Test channel, and discussions around releases and operations go in the Operate channel.
Within each channel you can also add tabs that integrate to other tools. For example, by default, you will get a Conversation and a Files tab for each channel. The Files tab links to a folder in a document library that is part of a SharePoint site that is created for the Team when the Team itself is created.
You can also add additional tabs to each channel that integrate to other tool sets. You could create a Wiki for each channel, for instance.
Some typical tabs for the General tab could be:
- Conversations: Default tab created for conversations relating to the general project.
- Files: Default tab for storing documentation relating to the general project.
- Sprint: A link to the sprint backlog in Microsoft DevOps (opens embedded within Teams)
- Backlog: A link to the full backlog in Microsoft DevOps (opens embedded within Teams)
- Features: A link to the Feature board in Microsoft DevOps (opens embedded within Teams)
- Project dashboard: A link to a dynamic Microsoft DevOps dashboard that is used with the client to confirm the project delivery progress
Some typical tabs for the Prep & Design channel could be:
- Conversations: Default tab created for conversations relating to project prep & design.
- Files: Default tab for storing documentation relating to the project prep & design.
- UX/UI: A link to a location to where the UX/UI designs are stored (for example, if they are stored in InVision, Framer, or Figma to allow feedback to designs and wireframes)
Some typical tabs in the Engineer channel could be:
- Conversations: Default tab created for conversations relating to project testing
- Files: Default tab for storing documentation relating to the project development
- Wiki: A wiki for relevant developer information
- Engineering dashboard: A link to a dynamic Microsoft DevOps dashboard that includes items such as the current bug cap, the current sprint, build and release pipeline details and speed of delivery APIs.
Some typical tabs in the Test channel could be:
- Conversations: Default tab created for conversations relating to project testing
- Files: Default tab for storing documentation relating to the project testing
- Quality dashboard: A link to a dynamic Microsoft DevOps dashboard that is used to report on the current “bug cap” (a figure to ensure that raised bugs never exceeds a defined amount or new feature development is halted), orphaned requirements, unit tests, test plans, and the like
Some typical tabs in the Operate channel could be:
- Conversations: Default tab created for conversations relating to project operations
- Files: Default tab for storing documentation relating to the project operations
- Customer service: A link to your customer service application (for example, embedding a view of the tickets in Zendesk or Service Now that relate to this project)
- Release dashboard: A link to a dynamic report in Microsoft DevOps that shows the details of the operational environment (most recent release details, performance, costs, etc.)
For more information on embedding Microsoft DevOps dashboards with Microsoft Teams, please see: https://techcommunity.microsoft.com/t5/Microsoft-Teams-Blog/New-VSTS-Dashboard-integration-in-Microsoft-Teams/ba-p/233865
There are also several integrations that can be done between Microsoft DevOps and Microsoft Teams, as follows:
- You can embed Microsoft DevOps dashboards into a Microsoft Team channel as a tab
- You can embed Microsoft DevOps Kanban boards into a Microsoft Team channel as a tab
- You can create a connector (using service hooks) between Microsoft DevOps and Teams to send notifications on various events in your projects, such as:
- Configure comments in DevOps with “#Teams,” which can also be posted to the Develop channel
- Configure a notification to the Operate channel when a release is completed
- Configure a notification to the Develop channel when a pull request is created
- Configure a notification to the Develop channel when a build is completed
Further integration and automation in DevOps can also be achieved with Microsoft Teams, combined with PowerApps, Microsoft Forms, Flow and the Microsoft Bot Framework, to make a digital assistant part of your team – answering questions, providing notifications, and more. For more information, see Add bots to Microsoft Teams apps.
Microsoft Teams also allows you to integrate PowerApps and Forms for simple collection of information from team members. One example would be a form to collect Feature suggestions that prompt the user for relevant information to create a Feature in Microsoft DevOps without users having to go into a more developer–orientated tool such as DevOps.
In addition to integrations, teams can hold meetings using Microsoft Teams. These meetings can be joined by internal and external individuals, even if they don’t have a Teams account. In addition, all information from the meeting is retained within the Team for future recollection. Meetings within Teams has some great features such as video conferencing, blurring of backgrounds, screen-sharing, white-boarding, meeting recording, and transcribing. For more information see 9 tips for meeting with Microsoft Teams.
To find out more about how your organisation can leverage its investment in Office 365 and use Microsoft Teams as part of its tool set to deliver DevOps principles, get in touch.
And feel free to share any insights about how you are using Microsoft Teams and Microsoft DevOps together.
Ben Weeks is a solutions lead, applied innovation and DevOps consultant at New Signature helping Enterprises move to the cloud and adopt agile ways of working.