Microsoft Teams, the high-velocity chat-based collaboration service is moving at a pace, with frequent new announcements and capabilities. To help you keep up to speed, the Collab365 team has interviewed Richard Moe, a Principal Program Manager within the Teams group. Richard’s role is around Partner Ecosystem and Platform Experiences, so as well as evangelising the service, he gives us lots of information that will be indispensable for the developer community.
This article is a summary of Live Show #11 which covers:
- Connectivity and extensibility options for Teams
- Why we should be connecting and extending Teams
- How customisations can be distributed
- Updates for recent and soon to be released capabilities
- Hints and tips for keeping up to date with developments
Bots, Tabs, Connectors and More …
Right from the time of the Microsoft Teams preview, there have been several ways for developers and end-users to put their own stamp on the chat experience:
- Microsoft’s built-in range of bots provide a useful range of services through chats with individuals or groups, and to complement this, developers can create their own bot services.
- When it comes to gathering, or storing data, the first-party connectors to Microsoft’s own services are now complemented by a range of third-party connectors, and by a framework that allows developers to create custom connectors.
- End-users can add tabs to their chat experience to access pretty much any SaaS solution, and developers can also use this as a way of surfacing custom capabilities.
- To bring this all together, and to allow custom capabilities to be distributed, there is a Teams App model. A Teams package can allow functionality to be exposed in more than one context (tab, bot, connector), and a developer can also allow users some configuration choices, with all these capabilities bundled in one package.
It’s early days as yet, but Microsoft’s goal is to create an open platform, encouraging developers and end-user companies to extend Team’s capabilities. There’s also a great deal of work going on with ISV’s, with the goal of creating an ecosystem which produces solutions for embedding within Teams.
Why should we be connecting and extending Teams?
Richard describes how Microsoft wants to allow teams to use “tools that make sense” to them. During their work, people have to carry out a myriad of bite-size workflows, and usually end up having to switch to a different software context to achieve each of these.
By surfacing these mini workflows in the place where the team is carrying out its core work, and preferably, by fetching relevant data as well, Teams can provide an opportunity to reduce context switching, and increase productivity. Connectivity and extensibility is a big issue for Microsoft Teams because Microsoft would like to see teams staying within the Teams experience for as much of their working time as possible.
It’s bite-size workflows and activities that are the target, these could include:
- Approving a document held in a SharePoint library
- Signing a document with DocuSign
- Sending information on a software bug stored in VSTS to an individual, or to the team
- Tracking an expected delivery
- Retrieving a file from a cloud storage service
- Finding a co-worker who is an expert in Power Apps (or in anything else)
- Viewing a dashboard stored in Trello, or in Planner
But what if a particular team uses Dropbox, Box, ShareFile, Google Drive as their file repository rather than SharePoint or OneDrive? These are examples of integrations Microsoft has recently provided, but to provide the plethora of “tools that make sense” in diverse teams, they need to go way beyond the 150 integrations initially provided, and Microsoft’s experience is that an open platform, along with a community, and an ecosystem, can achieve this.
Of course, Teams is not supposed to supplant the Power User experience in SaaS environments; so, for example, if the task in hand is to create a completely new plan in a project planning tool, it would be much better done in the native environment. It’s in surfacing the small tasks within Teams that companies can make productivity gains, giving their teams easy access to snippets of information, or if they don’t see the information they need, they can immediately ask their colleague.
Distributing Teams Customisations
If Microsoft’s ambitions for Teams are to be achieved, there is going to be a need for effective distribution, both for ISV’s, and within individual companies. To make the discovery and installation of apps easy, the goal is to enable these experiences inside Teams itself.
The “Teams apps” publishing service is integrated with the broader Microsoft apps infrastructure. To publish apps, companies and individuals can submit apps through the Dev Center and the Seller Dashboard, using their existing accounts. Naturally quality control will be important, so there’s an independent validation team, helping to keep end-users’ confidence high.
Andy also queried whether these apps would appear in AppSource – and Richard confirmed that they would, and that they would also be listed in store.office.com. Work is still needed to make Teams front and centre as a means of distribution, and these features aren’t released publicly at the moment. Good news though: if you’d like to look at these, you can use Developer Preview Mode, and see the capabilities prior to public release.
This distribution story is ideal for ISV’s, but Richard is the first to admit that admins who want to distribute Teams-based LoB access within a company won’t want to go through the store. Currently sideloading is the only way of surfacing LOB apps within Teams. It’s currently a gap in provision, and Microsoft are looking to improve the ability of IT Admins to roll out LOB apps within Teams in the near term.
What about Testing, and Updating Custom Extensions?
As with all published apps, there could be some iterations first time round to ensure a new Teams extension meets the required Store standards. But modifications should be quicker; typically, providers will host their extensions as Web services, so when modifications are made this should be relatively straightforward, and doesn’t need any formalities.
If a provider just wants to update their Web Service, that’s fine, but if the new functionality requires changes to the app manifest, perhaps because of a new capability, it would have to be re-submitted through the store approval process.
How does an update appear from the end-user’s point of view? As the process is carried out on the back-end, users will “just see” new functionality. There is no additional work, or downloads for them, except of course turning on the new capabilities if they want to use them. This upgrade process isn’t yet quite complete; creation of a seamless experience for some edge cases is still on-going, and some features are still only available in Developer Preview Mode.
When it comes to testing, companies will need to use their extensions, in a Teams context, without having to go through an approval process. This can be achieved through sideloading the app. You can sideload in a production tenant, and this is Microsoft’s solution for testing. It embeds a solution so that it’s available within a specific team, and once done, the capabilities of the solution will be available to users or testers. This the closest you can get to installing an app prior to app approval.
Can I still do my Own Thing?
The Microsoft development team recognises that although they’ve created a product aimed at teams, people will still want personal views. So, currently available in Developer Preview Mode, is the concept of a Personal Scope, providing a static tab. The “App Bar fly-out” is another innovation, and it provides access to Personal Scopes.
As an example, think about the use of planning tools, where most people might want an overview, but project leaders might want to view different dashboards, or more detail.
Can we have dancing chickens as well? No kidding here, Teams is competing with trendy popular products like HipChat and Slack, and many agile teams want to personalise by injecting fun, and emotion into their chats. As well static emojis, Microsoft has given users a range of personalisable images, which can have caption added when they are used.
This is a similar idea to Compose Extensions. These are a bit like the stickers you can insert into conversations, but within the compose box, which you might use to caption a sticker, you can do things like retrieving a bundle of information, all right there in the context of Teams.
For instance, consider the ‘sending information on a bug’ example I mentioned earlier. By searching VSTS, within the compose box, you could search for the bug you want, and perhaps insert it into a “card” describing the bug, which will then be inserted into the chat. This is a great example of minimising context switching, as you don’t have to “go off, search, then copy and paste into a different place”.
What are the other Hot Topics in Teams?
Richard gave us some insider information on other upcoming developments. Some of these are reviewed below, and some are already available to preview.
If you want to get early visibility of new capabilities as soon as they are released for preview, and without any formalities, turn on Developer Preview Mode. This is available in all tenants, and can be found within the “About” section in your client. Microsoft’s desire here is to get developers using the new features, so that when released to the public, the features can hit the ground running.
- TBot got smarter adding Spanish and German as well as English and French. On the subject of languages, Teams App packaging is not currently multilingual, but will be improved in a few months.
- In beta, there are new mechanisms to leverage the Graph API’s so that Graph-derived data can be surfaced in Teams. This is currently incomplete, and work is on-going, especially on the permissions model for this feature.
- Dynamic creation of teams and channels is a much-requested feature, and Microsoft is working hard on this. Although full details are not yet available, a sample is available in GitHub, showing how you can query the teams in a tenant, and the channels in a team, and send messages.
- Also, at an early stage, is support for actionable messages (similar to a button-toting email for an approval request) within chats. With bots able to discover users details, including all the information held in AD, many new scenarios will be possible, which developers are only just beginning to explore.
- Also new is the ability to embed PowerApps as a tab within a channel.
- Other Microsoft teams are keen for their services to be surfaced in chat. For example, Planner integration is seen as a “hero scenario”. Work is ongoing here, so not many details are currently available.
- Another improvement Microsoft is working on is the ability to highlight/focus messages within the activity feed or the notifications sections of Teams. This is an important story for avoiding information overload, and ideas will probably emerge that go beyond simply marking a message as important.
- The number one user request for Teams is for guest user access. This is being very actively developed. When the new capability arrives, it should not produce breaking changes for any on-going development.
- Nick and Andy also asked Richard about the archiving possibilities. There isn’t yet a generic facility for this, although Teams data is already archived for e-discovery.
- How about migration from Slack to Teams? Is that supported? The API’s will help to create teams and channels, but nothing is in place to recreate the history of a chat stream. Even if you went to the trouble of re-creating massages, they would end up with incorrect timestamps, so history transfer might not be viable. There is a tool in GitHub called ChannelSurf for Microsoft Teams which may help with an exercise like this.
Want to know even more? Andy recommends reading the Release Notes as well as the Teams blog, and why not have a look at SuccessWithTeams.com which surfaces some of the FastTrack and other information such as:
- An introduction to Teams
- Deploying and operating the Teams service
- “Introducing success with teams”
- Guidance on bandwidth calculations for Teams