The Horror of Microsoft Teams

Also published on Medium – from where this story was posted to Hacker News and has achieved as at 28 September 2019:

On Hacker News:

544 points (for a third party’s link to my Medium article)
332 comments

On Medium:

140k views
47K reads
232 fans
1.8 k claps

I wrote this mostly whilst finishing a period of employment where I was obliged to use Microsoft Teams. For those who have not had the pleasure, it’s Microsoft’s counter to Slack, the instant-messaging client beloved in tech. Microsoft first introduced Teams in March 2017 and recently announced that they have ‘overtaken’ Slack, claiming more than 13 million daily active users, or 19 million weekly active users. In March 2019 Microsoft advised that 500,000 organisations were using the service. Previously I worked, and now again am presently working, in an organisation using Slack. I’m not in love with it but it does the job reasonably well. In each case I have been working as an engineer in a fair-size organisation with a mix of channels and chats. I have been a messaging system user, not an administrator. Over the 15 months I used it Teams was horrendous — here are some of the reasons why:

The Short version

The easiest comparison I would make is to consider two other messaging clients that are perhaps more familiar- WhatsApp and Outlook.

I realise that WhatsApp doesn’t have a proper desktop clinet but that’s not really important here. The point with WhatsApp is that it is very simple and obvious to use. Outlook does not serve the same use case as WhatsApp and it is from a different time, we know this, but it invariably makes things as complicated as possible with hundreds of options in dozens of menus, many of which are never, or almost never, used. Simply configuring an autosignature and some email rules can take half a day.

Edit: Commenters in a number of places have seized on the above statement to suggest that I am unable to use Outlook competently. They ignore the following paragraph and my other articles on Medium. To clarify for the hard of understanding- When setting an autosignature for Outlook it is all too easy to mess up the HTML/plain text (hello no line break or double line break!) or forget to apply the same (or different!) autosignature for original emails vs. replies and forwards. It can take half a day because of all the fiddly little options that are so easily forgotten- I can certainly do it, have done it, but should not need a runbook to do so. Double points if your org has a templated autosignature for you to use yourself.

I make the above comparison because that’s exactly how it feels as a user coming from Slack to Teams. I should point out here that I have been using Outlook since it was called ‘Exchange Client’ (Bundled with MS Exchange < version 5) in a place that was behind the times, but still- and have used various versions on various platforms since. I have also trained people on using it to a basic/intermediate level in corporate environments.

So what are the issues?

Automatic subscription

Edit: It’s been brought to my attention that this feature is an organisation-specific setting. It’s not clear to me whether this is default behaviour or not. It was certainly the case where I used Teams.

It’s pretty obvious that MS have tied Teams in to Active Directory/Exchange. It’s an obvious selling point to automatically create channels and subscribe users based on their AD groups and Exchange mailing lists. Sounds great, doesn’t it? Until you realise that you are subscribed to literally hundreds of channels, most of which are of no interest. They are nested of course, several layers deep. If you’re lucky then nobody else will bother with them either, they’ll just be zombie channels, lurking there, unloved and ignored- a bit like some of the more obscure menu items in Outlook.

Discoverability

Of course, nobody is interested in IM channels that don’t concern them, they are interested in those that do. It might be an obvious statement but communication mediums are about communication. It’s useful to be able to search for channels based on topics. Except you can’t with Teams, at least not in a meaningful way with default policies. It’s never really clear what the bounds are for your search, the caching is horribly slow, and a lot of stuff just isn’t available to search with or for (i’ll come back to this). Guess they really like those default channels.

Message threading

The way that messages in a channel are threaded is preposterous. Coupled with the caching issues, it is near impossible. My team gave up almost immediately in favour of a simple, single-threaded team chat. This brought its own issues but at least it was reasonably clear what was happening. Corporate channels continued to use the threaded message system so we had to use it there but it never got any easier and we never chose to switch back.

Message alerting

Anyone who has worked in a an organisation of size will have experienced alerting for inappropriate ‘noise’ events and channels. Usually you can mute or unsubscribe right? Not with Teams! Firstly you can’t mute a channel you are subscribed to. This means that if someone does @${channel_name} you will get an alert. MS have not implemented muting as a feature. Secondly, for all those automatic/admin channels, you can’t unsubscribe yourself (or at least not with the default policies). Brilliant, isn’t it? Unavoidable alerts that any idiot on any channel can annoy people with.

Edit: Since a number of commenters are trying to pretend that the above is ‘inaccurate’ , here is the thread on Microsoft Teams UserVoice where 987 people have ‘voted’ for this feature (as at 13 Aug 2019) and Microsoft advise that they are ‘working on it’ (dated 06 Aug 2018)

It’s about to get just got worse too – with ‘Priority Notifications’. I will let Someone else’s guidance for Admins speak on this:

What are priority notifications? This feature allows a user to mark a chat message in Teams as “Urgent”. Unlike regular “important” messages, Urgent Messages (also known as “priority notifications”) notify users repeatedly for a period of 20 minutes or until messages are picked up and read by the recipient, maximizing the likelihood that the message is picked up and acted upon in a timely manner.

How to enable? IT Admins can manage this feature as part of messaging policies in Teams. This feature is on by default for all tenants.

I find the idea of such a centrally controlled feature incredible- there are still people who think that you can have a technological equivalent for going around and poking your users in the eye whilst they are at their desks, and that this will actually give you a desirable result, and that this is OK? Amazing!

Central control

I suppose the above emphasis on centralised control and disempowerment of users should not come as a surprise when you look at what’s coming to Teams this summer. Horrific as these upcoming developments sound, I did not have to suffer them. I did have to suffer some related aspects though.

At least by default/in my org, it was possible for anyone to create a channel on any topic. This is a good thing IMO, until you find that you are automatically subscribed and get notifications for it, as I did for a ‘Pupdates’ channel for people toilet training their dogs… Took us quite a while to discover that the default setting was to get notifications for ‘trending’ channels and how to turn that off… on an individual user basis, of course…

Policy failures

Some of the above issues were mitigated and some compounded by the (presumably default) policies, which were somewhere between brain-dead and slapstick in many cases.

Channel naming

I’ve already pointed out that it wasn’t possible for me to mute or unsubscribe from centrally managed channels. What was permitted was for any user to rename a channel. Because @here isn’t supported (you need to @{channel_name} to alert everyone on that channel, this was actually an effective method to mute all of those automated deployment alerts that the less technically proficient are so fond of, mentioning ‘deployment’. At least this was true until people started manually setting alerts for their ever_so_important message, and had to be asked not to, because people who wanted to actively ‘follow’ a channel for alerts on all messages could still do so….

Group chat participant admin

It may come with the advent of channel admins but in the meantime, if someone invites someone else to a group chat, you can’t remove them, and neither can they. You have to ask them nicely to leave, in their own sweet time. Lovely

Channel admin

similar to the above, if you set up a channel and someone, I don’t know, hooks it up to an rss feed so it is all spam, then you’re stuck. You can’t remove it or block the feed, you have to ask them nicely to do so, in their own sweet time, if you know who it was, otherwise you’re stuck… Brilliant.

Device admin

In just the same way as MS Exchange Still in 2019 expects admin on your entire device by default, just for the privilege of checking your email, so MS Teams by default demands the same. Except there’s a web interface that doesn’t- ok, so you have to use ‘Desktop view’ but you have access to almost everything- the desktop fat client is electron after all. So why do you need that admin permission again? After a year or so, my org relaxed the default device admin requirement – see below.

Unable to add outsiders

At least in my org we were not able to add outsiders to our channels or share channels with them. We had to have them invited in some way into our own organisation with an Active Directory identity (centrally requested). Of course this presumed on those people running a Teams client logged in with that identity when they would not otherwise. Not sure how this works if you are in two different orgs without federated trust but it’s a non-issue on slack where you can have your client signed into multiple organisations.

Client performance

This is abysmal and was much noted by all of my  immediate colleagues. Video conferencing on a MacBook Pro would immediately peg multiple cores at 100% and max out the fans. Battery life would shrink markedly for using Teams. I realise that it’s an Electron App (on Mac) but come on… On Android there is a native Teams App which I tried for a short time. It literally halved the battery life on my phone – on a new OnePlus 6t, from 30 to 15 hours. I uninstalled it after a week. No, the Android Slack client doesn’t have a marked effect on battery life.

Caching/searching

This is awful on any platform. It’s not clear what the bounds are for any search and only a very brief history is cached locally. Everything else has to be fetched remotely so scrolling is painful and searching glacial. Woe betide you if you need to catch up on a day or two’s messages when you return from leave or you want to check your multiple threads…

No Linux client

Despite thousands of people requesting it, MS have not (yet) produced a Linux client. You can trick out the web client with a wrapper and have a near-native experience, even including video conferencing, but you can’t share your desktop with it. It’s a bit like Slack’s promising dark mode (which Teams does have, as does Slack on Android). It’s clearly not difficult, they simply don’t want to do it. In just the last week there have been rumours of this finally coming. Even if it does then the above will still stand, we will see!

Edit: on 12th September 2019 Slack released a Dark Mode for desktop (Mac; Windows; Linux). A dark mode for Android and iOS was previously available in those apps.

In Conclusion

Microsoft Teams is the solution that nobody asked for the problem that nobody had. It is an easy sell to organisations that are Microsoft-addicted so I don’t expect it to go away. Just like those old organisations that bought SharePoint and Exchange licenses for their datacentres now moving to Azure to purchase more SharePoint and Exchange licenses (but in the cloud!), so the ones that fancy themselves or have an account rep that fancies themselves, will start using Teams. If you have not used anything different, are generally scared of new things and don’t have the ‘expertise’ (or desire to develop it) to actually understand IM clients then MS Teams is an easy sell.

If on the other hand, you are in a technical org, or any organisation where you actually have a choice, then I would advise you to run, and stay, far, far away. Use Slack, use Rocketchat, use almost anything else. Teams does most things badly and the things it does well are based around centralised control, i.e. taking control away from the user- enjoy the unconfigurable alerts interrupting you constantly!

Personally it’s one of my top interview questions- “what’s your desktop stack”. If MS Teams is present or likely to  be introduced then it’s a dealbreaker for me.

Edit (P.S.): Many rebuttals to points raised above seem to be of the form ‘this is an admin setting’. For me that’s a large part of the problem. 99% of the defaults on an MS enterprise groupware platform will never be changed in a large org, especially when they are for features that have emerged since the last policies review. There’s also the massive inertia you have in a large org where hardly anybody is allowed to be involved in a decision process, plus gatekeepers (IT) gonna gatekeep. Sure, you can blame the users, or blame the admins but fundamentally these are problems that don’t exist on e.g. Slack. The centralised control on things like notification behaviour is a real issue.