Microsoft Teams: What’s in it for Developers?
App Dev Manager Pete Fuenfhausen explores some key benefits of Microsoft Teams for developers.
Since its introduction in November 2016, Microsoft Teams, the successor to Skype for Business among many other things, has been on a tear. At last year’s Ignite conference, it was announced that Teams was in use in 329,000 organizations, up from 125,000 the previous year. No doubt Teams’ inclusion in Office 365 is exposing it to a lot of people who wouldn’t ordinarily be heavy chat users. All of this is great news for developers in many ways. This article looks at a number of ways Teams presents opportunities to developers to both improve their own team collaboration capabilities and also develop new capabilities for Teams within their own organizations or even for the worldwide Teams user community. If you’re not using or developing for Teams, you really should have a look. Here are some ideas to get you started.
Teams for Dev Team Collaboration
Teams is, first of all, a great tool to improving the collaboration and capabilities of your development team. The use of Teams on a development project ensures that all the team members are kept up to date on development, test, and deployment activities. Teams’ persistent conversation threads ensure that the history of project activities and decisions is preserved making it easier to revisit past actions and bring new team members up to speed quickly. Teams use also dramatically reduces the use of email and those long, long email threads that everyone dreads looking for in their folders.
With Teams as part of Office 365 and accessible to just about everyone in your organization or even in outside organizations, you can keep all of your project stakeholders engaged. Business analysts, business users, external testers, and many other of the people who are critical to a development project can now be included in the team conversations with the same access to the persistent conversation threads and past project decisions. Every channel in Teams also has a dedicated email address that you can use to copy all of your project email conversations into Teams to keep everything organized in one place.
Teams also includes many Microsoft and third-party apps to help keep your team organized and focused. A good example is Planner. A Planner tab can be added to any channel in a Team to give you a simple but sophisticated and lightweight project management solution for keeping track of project tasks and actions. You can organize your tasks into buckets or swimlanes and easily assign and track them with notifications to the team right in the channel conversation thread.
Another great tool for development teams is Forms. Forms gives you the ability to create quick polls in a conversation thread or more sophisticated data collection forms with branched interview logic. Quick polls are great for getting the pulse of the team on a design decision during a meeting. A quick @mention of the Forms bot creates an inline poll in the conversation:
More complicated Forms can be developed using the Forms app for Teams to collect detailed user feedback on sprint deliveries or expanded information on issues found during testing. And all the results will reside in the channel of your development project for future reference.
DevOps Tool Integration with Teams
With a heavy focus on delivering great capabilities for developer, Teams has integrations to nearly all the major DevOps and ALM toolsets. No matter what you use in development team, chances are there are integrations to Teams available in the store. Just a quick search in the Teams Store reveals apps for Jira, Github, Zendesk, Bitbucket, Google Analytics, Jenkins, Azure and many more.
For an example of how this works, let’s take a quick look at the Azure DevOps app for Teams. From any channel in your Team, you can add an Azure DevOps tab that not only displays either a dashboard or a backlog Kanban board from your Azure DevOps team project, but it’s a fully functional board in the tab that you can interact with just like in Azure DevOps. And there’s the added advantage that your team can simultaneously view the board in the tab and chat about it in the Teams conversation thread along the side.
Working with an Azure DevOps dashboard or backlog board in a Teams channel tab is not the only thing you can do with the Azure DevOps app for Teams. You can also set up connectors that will post notifications to a channel conversation based on events that occur in your Azure Devops. Events that can trigger Teams notifications include Code Checked In, Build Completed, Work Item Created, Release Deployment Started, and many more. Think of how productive your team would be getting these types of notifications in real-time, and in a forum where they can immediately respond. You can also search for work items from inside Teams and add them into a Team conversation:
Building Apps for Teams
To this point, we’ve focused on developers using Microsoft Teams to enhance their team performance and capabilities. Teams also offers developers tremendous opportunities to build new capabilities for their users or even for the worldwide Teams user community. The vehicle for developing new capabilities for Teams is the app. Microsoft Teams apps are web apps, so you can use any web application technology or hosting platform to build and deploy them. Apps can provide one or more capabilities including:
· Tabs – Add rich interactive content to your Team channel. The embedded Azure DevOps board above is a good example of this.
· Bots – Allow your users to interact with other systems in a chat or command-line like interface. Teams is a first-class citizen client for bots built with Azure Bot Framework as well. We saw an example of a bot for Teams above in the Forms quick poll creation.
· Connectors – Connectors allow you to push interactive content into a channel conversation or direct message from an existing app or service. You can also add actions to your notifications to allow users to take action on an incoming notification.
· Messaging Extensions – Query and post information into a conversation message in the form of a card
· Activity Feed Integrations – Post to a user’s activity feed based on activity
· Outgoing Webhooks – If you’ve built outgoing webhooks or slash commands in other chat platforms, you can easily bring them into Teams using Outgoing Webhooks. This is a great way to extend Teams without having to go through the process of building a bot.
PowerApps and Teams
One last way to extend Teams for your users is to embed a PowerApp into a Team channel. PowerApps allow developers and savvy business users to create low or no-code solutions to business problems. Embedding the PowerApp in a Team channel tab makes it available to the Team and adds the capability of chatting inline with the app.
Microsoft Teams presents a lot of opportunities for developers and development teams, from helping to improve Team collaboration and agility to providing a platform for deploying great functionality for users. Teams is calling, developers! Will you answer the call?
Using Microsoft Teams with Azure DevOps: https://docs.microsoft.com/en-us/azure/devops/service-hooks/services/teams?view=tfs-2017
Creating Forms for Data Collection in Teams: https://techcommunity.microsoft.com/t5/Microsoft-Forms-Blog/Microsoft-Forms-works-great-with-Microsoft-Teams/ba-p/109915
Develop Apps for Microsoft Teams: https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/apps/apps-overview
Outgoing Webhooks in Microsoft Teams: https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/outgoingwebhook
PowerApps in Microsoft Teams: https://powerapps.microsoft.com/en-us/blog/powerapps-teams/