Why Can't Microsoft Make a Usable Chat Client?
image courtesy of Slack
My company recently moved from Slack to Microsoft Teams as our core communications tool. It was inevitable, really. Slack pissed Microsoft off 4 years ago with its silly full-page ad in the New York Times and that decision has come back to haunt Slack. When you poke the sleeping dragon, the dragon responds by giving its competing product away to its BILLIONS of users for free. Goodbye Slack, that was dumb.
Pushing the business case aside, as a technical Slack user working remotely for a tech company, I’ve really felt the burn. Microsoft Teams is orders of magnitude less capable than Slack. Some of that inferiority is simply because Teams is feature-poor compared to Slack, but some of it is just plain old Microsoft incompetence in its inability to fix bugs that have existed in its chat clients for years.
Here are some of the things that make Teams a total stink bomb.
App integration…isn’t.
Microsoft either doesn’t understand what the word “integration” means, or doesn’t care. Let’s take a look at a useful PagerDuty integration we use at work.
We told our PagerDuty account to alert into a Slack room by toggling a few switches in our PagerDuty account. That resulted in alerts being sent to the Slack room and it also enabled two-way integration. Meaning, we were able to acknowledge, resolve, and add notes to our incidents directly from within Slack. It was so effective that I did not even need to have the PagerDuty app installed on my phone.
The Teams “integration” on the other hand, just provides an incoming one-way webhook that fires and forgets. Which is totally useless. We don’t need yet another way for PagerDuty to alert us of an incident. PagerDuty’s entire reason for existing is to alert the hell out of any device on the planet and it is really good at it. What Slack gave us was the ability to manage our incidents within Slack. Teams does not.
Presence indicators…don’t
There are two problems with the presence in Teams. For background, the Teams nomenclature is a little redundant and confusing. The app, MS Teams, has teams in it. But teams are just containers that you cannot interact with. Within a team are channels. Channels are analogous to rooms in Slack parlance, and it is where the action happens. Users in a team are not necessarily active in every channel within that team. Got that? OK.
First problem: there is no practical way to know which team members are active in any given channel. It is possible to see which users are in a team, but since a team is just a container, that is not useful information. It’s unbelievable that I can’t see which of my co-workers are in the channel with me. This is such basic functionality that I don’t even know how to begin to explain how fundamental it is to online communication.
This next issue may be a bug. At least, I hope it is a bug because I am not sure what rationale there could be for intentionally developing an inconsistent experience such as the one I am about to explain. The presence indicators on the desktop app allow me to select that I am “Available”, “Busy”, “Do Not Disturb”, “Be Right Back”, and “Appear Away”.
For some reason, the presence indicators on the mobile app don’t allow me to “Appear Away”, I can only be “Away” (the difference is…what?). I also have the ability to be “Off Work” on the mobile app, but for some reason, I can’t be “Off Work” on my desktop. I can only “Appear Away”.
I get that this is not the end of the world, but it really highlights some crappy development decisions. Why on earth would there be two different sets of statuses for the desktop and mobile app?
Copy and Paste…doesn’t.
Copy and Paste are broken in the Linux desktop app. Perhaps in other apps too, but I don’t know as I don’t use them. Lest you think I am making this up, let me point out that Microsoft Lync has had broken copy and paste back as far as 2012. Nothing says recycled code like 7-year old bugs cropping up in your shiny new app.
Copy and paste debuted in Windows 3.1. How does it get broken decades later and stay broke for so long?
Now let’s move on to things that aren’t exactly bugs or broken code, but are inelegant and do not reflect the needs of remote workers.
Time zone indicators
This is a VERY useful feature that I used constantly in Slack. As a remote worker, my teammates are all over the globe. Slack shows the current local time for any person in their profile data when you click on the user’s avatar. That is very useful when determining whether to ping someone at that time or to sort out a common meeting time.
No such luck in Teams. It is meant for people all huddled together in one office so nuances like time zones don’t hit the radar.
My own chat room
OK, I admit this is a little bourgeoisie of me. Slack gives everyone their own private chat room. This is useful for testing integrations (ACTUAL integrations) and as a cross-platform clipboard for info you want to move from your desktop to your phone, etc. It’s another really useful feature that only a company that understands remote work would come up with.
Teams has no such thing so I have to resort to creating my own team with myself as the only member.
Some final griping …
Bugs aside, the main reason that Microsoft Teams is so poor choice compared to Slack is that I am a remote worker. Office workers don’t really have a great need for a chat client. Office workers definitely use chat clients, all day long, but if it blows up or doesn’t work well, they just walk over to their co-worker’s desk and life goes on. The impact of a broken chat client in a traditional office is minimal and the traditional office is Microsoft’s target user base. It sells gigantic on-prem services to big companies that occupy entire floors of office space in buildings. There’s no reason to address functionality aimed at remote workers, especially when you can afford to give away the mediocre product for free to drive your competitor into the ground.
I work for a remote business unit inside a non-remote company. It’s easy for our office-bound management to make the financial choice to switch to Teams because they do not use Slack in the ways that remote workers do. If I were to sit at a desk in an office and type Hello World into Teams and Slack, I would not be able to discern any real difference between the two and also assume they were adequately matched, but one is free. The truth is that real work is done in the cracks, in the hidden nuances of the product, and that takes hands-on experience to discover; experience that these decision-makers don’t have. The good news is that the management of my company listened to the heavy Slack users within the company and are turning back to Slack after a few months of pushing Teams. That decision surprised and delighted me, not just because it improves my day-to-day, but also because it signals to me that remote workers have a voice.
As I mentioned earlier, Slack is not blameless in this. Aside from the spectacular lack of foresight demonstrated by provoking Microsoft, Slack has enjoyed very, very expensive licensing fees. Even if Microsoft did not give Teams away for free, it could still afford to vastly undercut Slack’s pricing model. I don’t know how Slack missed the fact that Microsoft could eat its lunch whenever the mood struck. Yes, remote workers such as myself really prefer Slack but despite what you hear, remote work is still a small sliver of the workforce and we don’t generally have a large voice or vote.
my shorter content on the fediverse: https://the.mayhem.academy/@jdw