Email is incredible
===================

Every now and then we have to go through the same tired rigamarole of
somebody claiming to have "revolutionized" communications. Typically,
this revolution involves breaking workflows and introducing some new,
unwanted (usually Electron-powered) app that "solves" all of the
"problems" that you're currently having with communications.

I'm not going to say that people don't have problems with communications
solutions. We most assuredly do. However, those problems were themselves
introduced by the previous attempt to "revolutionize" communications
with shitty apps and proprietary protocols. Each iteration is
self-defeating because they're trying to fix the problem using the same
broken and incorrect ideas that caused the issues in the first place.

Slack is an excellent example of this. I have to use Slack in my dayjob,
and it's the bane of my existence. I dread the inevitable chime of
woodblocks when individuals start reaching out to me to ask me a
question which very clearly should not be asked in an IM format. Often,
people even commit the sin of starting out with a greeting as a single
message (like "Hi!" or "How's it going?"), a process which breaks my
focus and leaves me staring at Slack until they finally decide to get to
the point.

Poor chat etiquette aside, Slack is simply a bad tool for large-scale
collaboration. Threads, in particular, are a good idea in theory but are
executed absolutely abysmally. A user might start a thread to segregate
out a conversation about a longer-running issue, but that's as far as
one can go. One can't reply to individual messages in the thread, nor
start subthreads. This means that Slack conversations remain pretty much
as single-threaded as the brains of those who designed this godawful
interaction.

We got it right, once
---------------------

A long time ago, we had a glorious combination of things:

- Email for long-form, asynchronous conversations
- IRC for quick queries and collaboration in real-time
- VOIP solutions like Mumble for chats
- Video conferencing

This separation of concerns made it clear exactly what form a
conversation was going to take and properly set expectations for
outcomes. If someone wrote to you on IRC, you could be fairly sure that
the query was going to be brief and simple, with no wider implication or
need to reference back to it. If someone wrote you an email, there was a
greater expectation of permanence and back-referencing, as well as a
signal that the conversation required greater thought and attention.

Apps like Slack and Teams which aim to abolish the need for email do so
poorly, in large part because they remove this certainty. A Slack
conversation, these days, can be just as business-critical as an email
thread. However, it's impossible to find things most of the time due to
poor search facilities and the chaos of the always-online workspace. The
fact that we now blend the synchronous and the asynchronous without a
single thought for what defines each means that we have created for
ourselves a situation where we aren't able to do either efficiently.

Slack and Teams are not content to just consume the place of IRC and
email, either. They have to be everything: IRC, email, VOIP, video
conferencing, collaboration space... but this approach leaves one very
much at the mercy of Slack's product design and willingness to maintain
some sort of standard approach.

Follow the thread
-----------------

For long, complex discussions Slack is utterly unusable. Realistically,
one must create a channel for each individual discussion (or "project")
in order to have any hope at all of organizing and finding information.
However, this approach is cumbersome and leads to people getting very
lost in the platform. Where was that message you saw a while back about
this topic? It could be in any one of these 15 channels, and Slack seach
isn't going to help you. Similarly, you have no say in how channels are
organized unless you yourself create all of the channels.

With email, however, everyone can have their own cataloguing system that
works for them. They can use folders or tags to put things in places
that make sense, and everyone's catalogue may be different. This
approach is timeless, simple, and correct. If I think that the
conversation should fall under "Engineering", but you think it should
fall under "Development", that's fine. There's not a jot of conflict in
that as we're not deciding for one another.

But the most crucial and useful feature of email (specifically plain
text email) is thread management. If you've ever participated in a
mailing list or used Usenet, you know just how well email threading
works as a format. If I send an email, anyone can start a thread on that
message by replying to it and they can even edit it in-place to focus
their response on specific parts of the message. For example:

```
Hi everyone,

I had a thought about email. I think it's pretty neat and we should
start using it more.

Some people may still be married to Slack, but let's face it: nobody can
find anything and since we introduced it we've seen a massive drop in
productivity.
```

```
Hi John,

> I had a thought about email. I think it's pretty neat and we should
> start using it more.

Fully agree.

> since we introduced it we've seen a massive drop in productivity

I don't necessarily disagree with you, but do you have any metrics on
this? I'd be interested in presenting them to my HOD.
```

Threads can grow and change, and humans are always responsible for
editing the messages to keep what context is necessary. All messages are
displayed as a series of branches off the original post, so it's easy to
see the different trains of discussion and follow them to their
conclusion.

Not only is email vastly superior for threading and maintaining
communications at scale, it's also (for the most part) entirely
standardized. The IMAP, POP, SMTP, and soon JMAP protocols are
well-understood and are implemented by a range of different software.
Formats such as EML and MBOX are similarly well-understood and portable,
unlike Slack's proprietary database. You want to migrate from Slack to
another tool? You're limited to tools that can manage import from Slack,
then. You want to move to a new email provider? Export some MBOXes.

Let's not forget IRC
--------------------

IRC is email's natural companion. While people seem to be moving to
other solutions such as Matrix and Discord these days, I really don't
see how they're improving things for anyone. IRC is simple,
standardized, and stays in its lane. There's no pretense to greater
functionality with IRC, which means people can more easily make the
decision of where the conversation should take place.

IRC is amnesiac by default (although bouncers go some way to remedying
this), and difficult to search. Therefore, IRC should be relied upon
only for off-the-cuff discussions that are formalized in email, or for
non-work-related chats and discussions that have no greater importance
to the project or company. Slack workspaces will typically have a
"General" or "Fun" channel for this purpose, but the fact that there is
permanence to these channels means that some people slip up and have
important conversations in these rooms knowing they'll be able (in
theory) to reference back to them.

Conclusion 
---

Slack and the like are plagues on productivity. Not just because they're
a single bad solution to a variety of needs. Not just because the apps
are heavy and poorly designed. The biggest problem Slack has created is
cultural. They've removed the decision making process from
communications, meaning there's no thought in what's being said or how
it's being said.

When you're thinking of starting a project in your company, an open
source project, or even your own company, think hard about how you want
people to think about communications. If they're important, people
should weigh them with such importance and be willing to make decisions.

--
~sporiff