MJFChat: Building Microsoft Teams Apps: Pro Code vs. No Code

We’re doing a twice-monthly interview show on Petri.com that is dedicated to covering topics of interest to our tech-professional audience. We have branded this show “MJFChat.”

In my role as Petri’s Community Magnate, I will be interviewing a variety of IT-savvy technology folks. Some of these will be Petri contributors; some will be tech-company employees; some will be IT pros. We will be tackling various subject areas in the form of 30-minute audio interviews. I will be asking the questions, the bulk of which we’re hoping will come from you, our Petri.com community of readers.

Readers can submit questions via Twitter, Instagram, Facebook and/or LinkedIn using the #AskMJF hashtag. Once the interviews are completed, we will post the audio and associated transcript in the forums for readers to digest at their leisure. (By the way, did you know MJFChats are now available in podcast form? Go here for MJF Chat on Spotify; here for Apple Podcasts on iTunes; and here for Google Play.)

Our latest MJFChat is all about building Teams apps, with a special focus on when to use pro dev tools vs. no code/low code solutions. My special guest for this chat is Teams Development Architect Tom Morgan. Tom has a lot of experience with building Teams apps and is the writing a book on the subject, entitled Building and Developing Apps… by Tom Morgan [PDF/iPad/Kindle] (leanpub.com).

If you know someone you’d like to see interviewed on the MJFChat show, including yourself, just Tweet to me or drop me a line. (Let me know why you think this person would be an awesome guest and what topics you’d like to see covered.) We’ll take things from there…

Thank you to our sponsor for the MJFChat, SmartDeploy. Check out smartdeploy.com/MJFChat for a special offer just for MJFChat listeners!

Mary Jo Foley (00:01):
Hi, you’re listening to Petri.Com’s MJF Chat show. I am Mary Jo Foley, AKA your Petri.com community magnate. And I am here to interview tech industry experts about various topics that you, our readers and listeners want to know about. Today’s chat is going to be all about building Microsoft Teams apps. We’re going to delve into the whole pro code vs. No code debate as part of this. And my special guest for this chat is Tom Morgan, who is a Teams Development Architect. He’s also the author of a new book on Leanpub, that’s called “Building and Developing apps & Bots for Microsoft Teams”. It’s a guide for developers and quote normal people alike, so it sounds very interesting. Hi Tom, thank you so much for doing this chat with me today.

Tom Morgan (00:57):
Hey, thanks for having me. I’m super excited to be here.

Mary Jo Foley (01:00):
Great. I know you’ve been really busy this week because you were actually at an in-person conference. What?

Tom Morgan (01:07):
Woo.

Mary Jo Foley (01:07):
Called Commsverse. So I just wanted to open by asking you about what’s it like to go to an in-person event these days? I haven’t been to one in over a year, myself.

Tom Morgan (01:18):
Yeah, it was so good. I’m still buzzing. I was there Wednesday and Thursday. And it was so nice. It was really good to see everyone again. It was really good to catch up. Everybody’s been doing things, everybody’s got war stories and it was just kind of great just to see everyone again. And particularly for Commsverse, like it was, it was done, like it felt very safe. It was, you know, the way it was all put together, the event organizers had gone to a lot of effort to make sure that everybody felt safe. So for instance there was no kind of rules around like vaccinations or anything like that. Everybody had to be negative tested, but regardless of vaccination status, everybody had to have a negative test. In the conference itself there were, the badges that we had, had two sides to them.

Tom Morgan (02:06):
So you could choose like the green side was like, I’m up for handshakes and hugs, whatever. And the red side was like, I’m still distancing. So everybody knew how to interact with each other. The seating, you know, one side was socially distanced, the other side was normal. So there was lots of choice. And the organizers deliberately kept the attendance numbers right down as well in a big space. So it felt really good and it was really nice to see people in person again, and it was great to present as well in person, I’d really miss that.

Mary Jo Foley (02:35):
Nice. Yeah. I’m kind of apprehensive about it, but also anxious to go back to it. I have like this mixed feeling about conferences right now.

Tom Morgan (02:43):
I did as well, absolutely. And there’s still kind of those moments, like, you know, when it’s really busy around lunchtime or like in and out of like lifts and stuff like that, but I think people were being sensible. You see people like put their masks on when it was really busy and in those kinds of sort of more confined spaces, but generally everybody was very kind of respectful of each other’s space as well. So I think it’s yeah, like it’s nice. And I think the effort that comes from the top, that comes from the event organizers that say, look, these are the rules, this is how we’re going to do it. This is how everybody can attend safely, and in comfort. I think that really helped.

Mary Jo Foley (03:17):
Awesome. All right, well, back to the topic of the day, which is building Teams apps. I wanted to start out with a really general question about why should someone even think about building a Teams app, and then when you decide, okay, I want to commit to doing this, how do you even start figuring out what to build?

Tom Morgan (03:37):
Right, yeah. Okay, so the first reason why you should build, I’ve got 250 million reasons. Which is, you know, the monthly active user count. And regardless of like what you think that means, like that’s a lot of people, whichever way you cut it. Right? So as a developer, actually that, you know, Teams and the Teams app Store is a really interesting place to have your application right now because everybody, you know, we’re all using these tools every day at the moment. We’re all using Teams, Team users is up. It’s become a really important part of people’s workday. So building apps on that completely kind of makes sense. That’s one part of it. The other part of it is that actually what Microsoft have built is a rich and well-maintained platform for development. And that’s because it has to be in order to achieve Microsoft’s own goals.

Tom Morgan (04:25):
So for Microsoft, Teams is, you know, it’s the operating system for work. It’s what they want everybody to use. They want to keep you in Teams all day and keep you super productive, because if they can bring all of the content, you need to get work done into Teams, then you’re not context switching all the time between all that information that’s in legacy, third party systems. So it kind of behooves them to make the development platform for Teams really good, because then it makes it easier for developers to bring information into Teams. So there’s that kind of rich platform. So that’s Microsoft’s goal at the moment really, is to kind of bring all this information into Teams, get people using Teams more and more, and reduce that context switching. Which is interesting, they’re solving that same problem that they tried to solve, or they did solve, 20 years ago, but the context switch 20 years ago was you were working on your computer and the phone rang and you turned, physically turning your desk to go and answer it. And you’re context switching. And they solve that with, you know, OCS and Lync, and Skype for Business, and Teams. And now here we are, they’re now trying to solve that same problem with context switching on the desktop.

Mary Jo Foley (05:34):
I understand why like a big ISV, like a ServiceNow, or an SAP wants to build in Teams, but like, what about like everyday developers, you know?

Tom Morgan (05:44):
Yeah. So for, like indie developers and stuff like that, I mean, apart from the, the big active users count, one of the things that is coming soon is being able to charge money for Teams apps. That’s just hit the roadmap recently. It’s been talked about for a little while, but it’s hit the Microsoft 365 Roadmap, so it’s definitely coming. I think that’s gonna make a really big difference and it’s gonna drive both the quality of apps in the app store, but also the number of apps. And I think it’s going to give some of those indie developers a reason to really invest in Teams apps, because now they can monetize them. You’ve always sort of been able to monetize, but you’d have to bring your own licensing, bring your own keys, or whatever. Now you can do it right inside. You can use the commercial marketplace inside, you know, the Microsoft ecosystem, if you like. And it’s much, much easier for developers to kind of interact with and sort of transact with.

Mary Jo Foley (06:36):
Nice. So when you’ve got somebody who’s never done something like this before, and they’re like, I want to build a Teams app, I see the reason to try to do this, but I don’t even know how to get started. What do you recommend they do to just start out thinking about what to build and how to build it and get themselves organized?

Tom Morgan (06:55):
Yeah, and it can be really confusing because like I talk about the Teams development platform, Microsoft talk about the Teams development platform, but actually it’s a whole bunch of disparate extensibility points that together make up the development platform and that’s just kind of messaging. But you know, regardless of what it is, there’s lots of different things you can do. You could put a tab into a channel, you could write a messaging extension, you could make a special app that only shows up in meetings, or like bots for whole, you know, everybody wants to build a bot right now. You know, there’s lots and lots of different places that you could go when you talk about sort of developing. And the first thing I think is you need to really understand what’s possible and what you can do and what all those different extension points look like before you even start, because otherwise you’re going to kind of make bad decisions.

Tom Morgan (07:40):
If you only know about half of the things you can do, those are your sledgehammers, right? And so those are the tools you’re going to use. Whereas actually, you know, this app that you created in a tab might’ve been better as a messaging extension or, you know, it could have been an amazing experience if it was a bot. So first thing is understanding what the roadmap looks like, what the landscape is, what you can do. And then in terms of getting started, well, if you’re already a developer then it’s, first of all, like once you’ve figured out all the things you can do, I think the next thing to really kind of be super clear on is what this concept of a Teams app is, because that can be really confusing as well. Because you’ve got all the different ways that you can develop. So you’ve got your tabs, your extensions, your bots, but actually a solution that an end user has, might actually have like a few of those things. So, as an example, let’s say we were going to create a a craft beer ordering app for Teams because that’s what Teams is missing, right?

Mary Jo Foley (08:39):
Yes, it is.

Tom Morgan (08:42):
So what would you want? You’d probably want a tab so you can add it to a channel. So that way you can browse these different craft beers and decide what you want and you could order it. Once you’ve ordered it, you probably want to be able to tell people about it, so a messaging extension. A messaging extension, by the way, is when you’re composing a message in Teams, down at the bottom, you’ve got the bit where you can add like GIFs and pictures and all the rest of it. You can put your own thing in there, that’s a messaging extension. So you could have, like the beer app would be down there and you can select the beer and post it as a nice pretty card with like the image of the beer. And Hey guys, this is what I’ve just ordered, I’m excited. Everybody else can chip in.

Tom Morgan (09:17):
And of course, if you’re on a mobile or you’re just really thirsty and you need a beer quickly, being able to use a bot to quickly kind of tap in a message and get your beer ordered would be essential. So that’s already three different things we’ve just talked about already. And a solution, a Teams app, is kind of all of those things combined. And the idea is a developer can package them together in like a nice way with a nice title and an icon and description. And it goes into the Teams store, a user gets it, and they don’t need to understand whether it’s a tab or a bot or a messaging extension. They just get the app and they get all of those things at the right time. And that’s actually what a Teams app is. It’s not these individual parts. And that’s actually why it’s kind of confusing because if you start out not knowing anything and be like, how do I go and make a Teams app? You quickly kind of get confused, cause it’s like, well, actually the Teams app is just a collection of other things I need to build first. And you need to understand what those things are and make those, and then you package it, you know.

Mary Jo Foley (10:12):
I never knew that until you just explained that. I had never heard that explanation. So that’s really helpful and really great. Like, do you have to have all of the elements or you can pick and choose, as a developer which ones?

Tom Morgan (10:22):
No you have to have one. You can have one or more. You can have one. So if you know all you want to do is make a bot, you make the bot, but you still make the app around that. And the app has just got the bot in it. And that’s how it goes kind of into the Teams App Store.

Mary Jo Foley (10:33):
Wow.

Tom Morgan (10:34):
And in terms of like languages and stuff, if you’re already in this space, like a lot of it is web based. So you can use kind of any web technology for a lot of these things like tabs and extensions. React is easiest only because like that’s where Microsoft are aligned to. So a lot of their examples for anything other than the super simple, tend to be in React. A lot of their extension libraries and their components tend to be in React as well. So if you’re going to go down that road, it’s easier to go with something like React than it is any other web framework technology.

Mary Jo Foley (11:03):
Yeah. Interesting. Okay, let’s get to the crux of this chat, which is low code, pro code. I’m curious if this is an and/or question, like you have to go low code or pro code? Or is it an and, like you could do low code and pro code? And the reason I’m curious about this whole battle of what type of tools to use, is there’s so much hype around the Power Platform right now from Microsoft, but I don’t really have a grasp if people are using it for Teams development.

Tom Morgan (11:34):
Yes. And it’s got quite confusing. So like, so terminology level set, so pro code is like what we’ve always known as code, right? Developers writing code, writing solutions, like we always have done. Right. But then this new thing came along, which is low code and is what right? Well, it’s kind of, it’s a way to make solutions without writing a ton of code. In some cases, it’s a way to write solutions without writing any code at all. So things like Power Apps, Power Automate, the Power Platform, even things like QnA maker, which is like a service that Microsoft have but let you build a bot, when all you’ve got is like an FAQ page of questions and answers, it will like ingest it, turn it into a nice bot for you with natural language processing, you don’t have to write any code.

Tom Morgan (12:17):
And, I think there’s kind of two ways to look at why this is happening and why this is here. And I think Microsoft are coming from a good place in doing this. They see lots of people in the businesses and all these orgs who know how the business runs. They know how the business operates and they know where it’s not efficient and all the pain points. And if you’ve ever worked, you know, in like a big organization, like, you know this right. You know, how inefficient some parts are and you’re like, why can’t they just, why don’t they just solve that? You know? And, the people who have, you know, the decision to do all these things, or IT, are so far away from the problem, they don’t really understand. Whereas, the people on the ground who understand the business, they understand those process flows and they can see how, you know, a little bit of automation here and there could really help.

Tom Morgan (13:03):
And, in a lot of ways, they know way more about the business than IT do. So Microsoft would say, they’re empowering these people because they understand the business. Microsoft has given them tooling to kind of build those solutions to their problems. So, that’s kind of where Microsoft are coming from. And, but also let’s be realistic, Microsoft’s a business, right? And they, you know, they make money and that’s their thing. And I think sometimes there’s an element of them seeing IT as a bit of a blocker, right. They get in the way and they slow things down with their, you know, the things that IT would say that their job is to enforce. Things like security and reliability and compliance with local laws. So it’s a complicated thing, but I think if Microsoft can get more people using low-code apps, it’s kind of good all around for them as well, because, obviously it makes all of Microsoft 365 stickier for the org and those apps aren’t free as well.

Tom Morgan (13:53):
They often need extra services or they’re a good reason to push people to things like E5. I think in terms of what should you use, where, and when, and is it, and/or, I don’t think developers should be afraid of low code or fear it or anything. It’s not going to take jobs away anytime soon. If you bog down the Power Platform, it’s great, but what it really is, it’s built around a series of templates and connectors and connectors into services and templates for common actions. And if what you want to achieve matches up to those templates, and if what you want to achieve that on matches up to those connectors, then great. You can build something quickly without a lot of development experience. And that’s not, I’m not trying to take anything away from the Power Platform as a developer.

Tom Morgan (14:36):
I’m not hating on it. Like those templates and connectors cover a lot of stuff. And they’re probably the things that developers will tell you they’re fed up of having to do again and again and again, cause they’re really boring. The thing with the Power Platform is if you step outside of that kind of sweet swap box, you fall off the cliff really quickly. It suddenly gets really complicated. And actually in a lot of times it gets more complicated than a pro code solution would be because you haven’t got any of the tooling to help you. Haven’t got any of the patterns you can’t often just dig into the code like you would with the pro code stuff, so. And I think in some ways the communication for this, like Microsoft have really focused their communication in on citizen developers and enabling those people, but they haven’t really spoken to professional developers about the power of the Power Platform for them and what they should be doing.

Tom Morgan (15:22):
Because I think a lot of times now, if I’m solving a problem, I’m you know, a pro code developer, I have been for 20 years, if I’m solving a problem, I will look to see, can I solve it first in the Power Platform because less code is always good, less code means less bugs. It means less work for me. It means less support. It means less to worry about. So if I can solve this same problem in the Power Platform, you know, I absolutely will. However, on top of that, even I think there’s lots of best practice that developers have built up over the years. And it could really help some of these people building low-code solutions because right now it’s a bit kind of wild west because you can, insight and all, you could go and build a Power Platform product, or solution and doubleclick and poof it’s live just like that.

Tom Morgan (16:04):
You know, no security, no testing, no plan for what happens if it stops working. And if you leave the organization tomorrow, and I think developers can help with that because we know that stuff, we’ve built that up over the years, we have patterns for doing that. You know, we have things like source control and gates. And we have things like, you know, the DevOps, the application life cycle management process. And on top of that, I think there’s things that IT do that should stay with IT. Like complicated business logic of how your organization runs that you’ve built up over the years, really like, you know, how product X goes from here to here to here and your, you know, whatever it is, your warehouse or whatever that business logic is that, you know, that should still be owned by IT.

Tom Morgan (16:45):
But IT have a job now to offer that and expose that to the Power Platform. You can do that as like a custom connector, you can build a custom connector for Power Platform. And now you’re enabling your system developers to use that business logic that you have, that you look after. And I think that’s where Power Platform gets really powerful when both pro code and low code developers are working together. That’s when you get really like the best of both worlds, because the complicated stuff stays with IT. The kind of run rate, this is solving a business process by automating, just moving some files around from here to here and invoking, like taking some bits of the business logic. That’s something that like, I think it would be really good for system developers to do inside an organization. I think that’s where the real value comes.

Mary Jo Foley (17:28):
Nice. This is a perfect point to do a quick break and let’s have a word from our MJF Chat sponsor, SmartDeploy. With SmartDeploy, you can deploy Windows images, applications, and scripts over your company’s existing network or from the cloud. Claim your exclusive free licenses worth over $570 at smartdeploy.com/mjfchat. Okay, back to Tom and Teams. I am dying to ask you about Azure Communication Services. Good old ACS, because I feel like this is very pertinent to Teams development. First, before we start, I’d like to hear your definition of ACS. I have my own definition, but I would like to know what you tell people when they say, what is this thing and how does it matter to anyone who’s curious about Teams development?

Tom Morgan (18:29):
Yeah. So this is what I told people at Commsverse yesterday. So Teams has been hiding a secret from us. So all of those monthly active users, all of that like high quality, super scalable video and audio that we’ve really come to rely on in the past few years. And all of that, kind of all those meetings, all those calls, all those chats. That’s not actually Teams at all. It’s something completely different. It’s something internal to Microsoft, they call IC3, the Intelligent Conversation Communication Cloud, which is pretty catchy. I know, but they don’t use that term. But that’s the platform that supports all of this voice and video and chat inside Teams. And that’s fine, like Teams is the front end. It completely makes sense. And that difference between the two is just kind of purely academic really, and was purely academic until around 2019, which is pre pandemic.

Tom Morgan (19:22):
But those IC3 folks thought, actually, this is quite a good platform. We should do some more with this. And they built a public facing API for it. So other developers could lean into it and use that same platform for their solutions as well. That API is Azure Communication Services. And so it’s how developers can build their own solutions using exactly that same platform that Teams is using. And that’s where we’ve seen things like LinkedIn Video, Dynamics 365 have added video as well. They’re also using ACS now and they’re using that same platform, but the really interesting thing is Microsoft have made it public to developers. It’s a thing that you can go and get inside Azure. You can create one of these and start embedding and adding video capabilities into your solution today. It can do, lots of things.

Tom Morgan (20:10):
It’s a platform for voice over IP. It’s a platform for sending like long lived messages. So like the best example is like, when you get a message from your parcel delivery company to say, Hey, we’re gonna deliver your parcel tomorrow and you can reply to it and say, oh, actually I’m not gonna be in tomorrow or leave it over here or leave it over there. That whole process is a long lived conversation with something in the back, presumably some system in the background. You can do that over SMS, you can do all of that through ACS. There’s so many acronyms.

Mary Jo Foley (20:36):
I know, there are.

Tom Morgan (20:40):
The most interesting, I think is the WebRTC stuff because that lets developers use WebRTC technology. But it’s an abstraction over it. So it makes it much easier to use WebRTC and you can build clients into your web app, your web browser, or your mobile application. You don’t need any plugins or anything like that. And it’s a very simple way to get two people to talk to each other or a group of people to talk to each other. It’s super scalable because it’s built on that same platform. It does all the things that you’d expect like voice, video, content sharing, peer to peer, group. But it doesn’t require the Teams client. It doesn’t require any downloads. So for developers, it means they can build solutions, which are much more kind of real person friendly. Because you know, they’ll just work.

Mary Jo Foley (21:23):
So there are already Teams APIs for communication in Teams, right? So is ACS an alternative to that? Or how do you think about which one of those two things to go with as a developer?

Tom Morgan (21:37):
Yeah. So ACS doesn’t replace any of those. All of those communication APIs are staying and it gives developers some choice or confusion, depending on which side of the fence you’re in. It depends what you want to do. So a lot of the Teams communication APIs have been built up around contact center scenarios and IVR scenarios. So if you’re doing one of those, that’s probably a good place to look. However, the ACS side of things is much more end user friendly. And so if you’re doing things that are going to be embedded in webpages, or you want to embed them inside your own mobile application, I think that’s a better place to start. What I find really interesting is that these two approaches are coming from completely different orgs inside Microsoft. So the communications API comes within the Teams PG, right?

Tom Morgan (22:25):
So then that’s Microsoft 365 all the way up. Whereas ACS has come out of Azure and that’s like a completely different model. Like it’s completely different charging model as well. ACS is all consumption billing. So you pay for it through your Azure credits. So your Microsoft E5 licenses, they mean nothing in ACS land, right? So it’s a completely different charging structure and it’s completely different people running. So I think it’s going to be really interesting to see. We’re sort of also seeing a bit of ACS kind of encroaching a little bit on some of the stuff that Teams does in that contact center space as well. So I think it’s going to be really interesting, but right now it depends on the solution you’re solving which is the kind of best way to go.

Mary Jo Foley (23:06):
Yeah, I was going to say, is there anything ACS lets a developer do in Teams that you couldn’t do before?

Tom Morgan (23:13):
Yeah. There’s one thing that’s super interesting. And it’s something we’ve been asking for in Teams since Teams first came out. So Teams doesn’t have a client SDK and this is like a big thing for Teams, developers, because Skype for Business had a client SDK. You could you could take the Skype functionality, you could put it inside your own application to make it easy for people to quickly make a call, a Skype call from within inside your application or your, just towards the end of the Skype for Business kind of product life cycle, there was some stuff around doing it online and doing it in a browser, never really came to anything because it was only ever in Edge. But I guess the focus with Teams has always been about getting information into Teams, not taking bits of Teams and putting them elsewhere.

Tom Morgan (23:57):
But under the hood, a Teams meeting is just an IC3 meeting. So what you can do is create an ACS client, Azure Communication Services client and have it join a Teams meeting as a guest. And suddenly that gets really interesting because you can sort of get the best of both worlds. This inter-op is in preview right now. But if we go back to our beer ordering app for a minute, maybe you want to chat with someone from the brewery like about your beer. I’m stretching this example, but go with it. Let’s say you wanted to go and talk to someone in the brewery about your beer. You don’t want to download the Teams client to do that. Normal people don’t have the Teams client, like, I’m sorry, Microsoft, not yet. Maybe they will with Teams Personal, but like right now people don’t have the Teams client.

Tom Morgan (24:38):
They’re not going to download it just because some app told them to,

Mary Jo Foley (24:41):
Yeah.

Tom Morgan (24:41):
They want it to work in the webpage they’re in or in the mobile app they’re already using. So ACS can do that because you can do that WebRTC stuff. But for the brewery and the people like the brewers, they want all their staff using Teams because they use Teams. Everything else internally it’s secure, it’s reliable. IT understands it, it’s one system. They don’t want to have multiple communication systems. So now you can have the best of both worlds. You can have end users using Azure Communication Services and they can be talking to people in Teams meetings who are using Teams. And I think that is going to be really powerful. It’s not something you could do before. And I think it really opens up business to consumer scenarios and there’s lots and lots of places where I think that could be really, really useful.

Mary Jo Foley (25:23):
That sounds interesting. Very interesting. Okay. I want to switch gears a bit and talk about a post you did in August on your own thoughtstuff, blog for people who want to check it out. It’s blog.thoughtstuff.co.uk. You have a post there called stop saying Microsoft Teams is being rewritten from Electron to React. And, when I saw this, I’m like, isn’t that what is happening? I keep seeing people say, that’s what’s happening. But you go on to debunk it. So could you tell people interested in Teams? Why that’s incorrect to say that?

Tom Morgan (26:02):
Yeah and yes. And I wrote a blog post because I keep hearing people saying it as well. And people who I, no I won’t name people. I’ll tell you afterwards. So it happened because of like a tweet, like none of this stuff got announced properly, or like officially, if you like, cause it’s all, like, it’s not interesting in quotes, like in air quotes to like the product, like it’s not a feature or anything like that, it’s internals, but obviously we’re all interested in the internals. And so are the engineering team, they’re very proud of what they’re doing, and rightly so. Like Teams is an amazing product and what it’s been doing over the past year. So they’re rightly kind of proud of what they’re doing. So they were kind of mentioning things about it and it came from one of those tweets I think. And two things are happening.

Tom Morgan (26:43):
So first of all, Electron is going away and Electron is being replaced and it’s being replaced by this thing called WebView2. So Electron is the wrapper. It’s the thing that lets you take what looks like a webpage, put a nice kind of chrome around it, make it run on a desktop and I’m massively like over simplifying, but that’s roughly what, you know, Electron does. That’s being replaced and it’s sort of being replaced by a control like so WebView2 is a control in the same way that a text box is a control and input. Like a bit of an input, like a label, they’re all controls. Old-School controls for writing apps, WebView2 is just one of those that lets you host web content. And again, it’s a bit more complicated, but Microsoft are going to be building a native application for Windows.

Tom Morgan (27:26):
That’s going to use the WebView control to host the Teams experience. So that is happening. That’s one thing. So Electron is going away. Completely separately, a lot of the backend of what is the web version. Like I say, the web version, like it’s the same version everybody uses with some modifications, the web experience the teams.microsoft.com part that is being rewritten from Angular to React. And those are two different web framework technologies that both make writing like HTML and JavaScript easier. They’ve both got their pros and cons, Microsoft has settled on using React. And that was sort of settled on that decision kind of halfway through the Teams development life cycle. So now they’re kind of going back and moving a lot of stuff over to React. And that’s also happening in parallel. And the most obvious place that’s happening is in Teams Personal, which is a hundred percent React.

Tom Morgan (28:22):
So, that’s why that’s happening over there. Like, Teams Personal is smaller, it’s got less features, it’s newer. It kind of makes sense to do it there first and then bring it back to the more business version of Teams, so that will come as well. But it doesn’t make sense to say it’s going from Electron to React because you don’t go from like a container technology to like a web framework technology. They’re two very separate things. So like you can say that Electron is going away and it’s being replaced with something else. You can say that like Angular is going away and it’s being replaced by React, but they’re two very separate things that are happening in parallel. So, I think that’s why everyone got confused. Cause like there’s two things happening there.

Mary Jo Foley (29:00):
Yeah, interesting. All right, last question, I’m going to put you on the spot. We’ve heard there’s a Teams 2.0 product coming and this whole idea of moving from Electron to WebView as part of that whole strategy. Do you have any guesses or even informed speculation on when we might see something like Teams 2.0?

Tom Morgan (29:22):
Simple answer, no. Longer answer, I mean, so we see kind of Teams Personal and I think that makes sense. Like if I was to guess, I would say that feels like it’s a focus for Microsoft right now because you know, Windows 11, they can and want to jump on that bandwagon. It’s going to do wonders for their like daily active user numbers, I imagine because like, everybody’s going to have it on the desktop and they’re going to be using it. However, I’m kind of also thinking there’s lots of things in Teams that would be improved if they went to React all across. They’d be able to share so much with what they’ve already done with in personal or they’d be able to share it across to business. I think it would make the performance better. At the moment they’re doing some Angular and some React and that just feels like it can’t be super performance.

Tom Morgan (30:09):
Like I don’t have any inside knowledge or anything, but it just feels like it’s inefficient. Right. So making that switch, I feel like they’re probably going to be led by like the pain that they’re feeling on the backend in terms of support tickets and maintenance and all those things. And that’s going to be driving them. It’s tough in a way, because like, on the other hand you could look at the past 18 months and say, well, Teams is battle ready for anything right now. You know, it’s just been through 18 months of like super, super high, you know, usage and stuff. And of course as well, we’re not going to be happy if Microsoft say right, no new, well some people might be happy. Like if we say no new features for 12 months, right. Whilst we go and rewrite. So I feel like it’s probably quite a long way out, but that’s just my kind of guess. Like maybe this time next year, something like that, like literally that far out. But I mean, who knows, like I could be completely wrong. Like it’s always hard to guess, isn’t it with timelines?

Mary Jo Foley (31:05):
It is, it is, totally. Great. Well, thank you so much for the chat and all this great information. I learned a lot and I’m sure our listeners will as well. For everyone else who’s listening right now or reading the transcript of this chat, I’ll be putting up more information soon about who my next guest is going to be. Once you see that you can submit questions directly on Twitter using the #MJFChat. In the meantime, if you know of anyone else or even yourself who might make a good guest for one of these chats, please do not hesitate to drop me a note. Thank you very much.