It's funny this came up today, since I have a 1 hour section of my workday blocked of for my bi-annual email filter refactoring.

Email is by far the most broken software experience of my life. I've been thinking that for a while.

Now by broken, I don't mean the software doesn't work as intended. I mean that the software can't let me manage things the way I want.

The alternatives (eg MS Teams) by very much not perfect, but at least get me closer than I can with an email client.

Here are some specific things I find suck:

1. There isn't any that indicates why I'm receiving this email. Sometimes that's not obvious. Could it be I'm BCCed? Or maybe I'm on a mailing list, that's on a mailing list, that's on a mailing list? Or maybe it's both!

1a. If I receive an email due to being BCCed, my email filters won't work at all.
1b. In the case of a mailing list containing a mailing list, I have to manually create separate rules for both the parent and child lists and keep them in sync.

2. Email filters scale poorly. Hence why I end up needing to refactor them twice a year. This analogy is a bit of a stretch but: email filters are like programming where everything must be in a giant switch statement, but you are also allowed if statements and goto for extra control flow. It's not a perfect analogy, it breaks as you look more closely at the details, but I think both result in similar problems cropping up.

3. You are stuck choosing between highly limited server rules that affect all clients, or client only rules that only change things for the current client. I want to be able to look at my email from my desktop client, my phone, or a web browser and see the same thing in all 3 places. So I am stuck with the crippled server rules.

4. Smart folders come close to being able to replace the majority of my email rules, but not quite. The implementations I've played with are all missing something. I do think they'd be an improvement in the cases they are applicable.

5. Emails don't contain any hints at what kind of email they are. I believe they could, via headers, but they don't. An email is an email is an email. Well, every client I've used has special handling for meeting invites. I think this should be expanded. I find in practical use there are a few "types" or "kinds" of emails. Things like a broadcast vs a question vs a meeting invite vs a request for volunteers vs etc. Having a bunch of different types of messages baked in with different defaults for each, would likely remove half the email rules I have.

6. Marked as read and notifications are too simple. But here I at least understand that addressing the issue gets complex very quickly[0]. Maybe being able to snooze an email would help me here, but I've never used a client with snooze. Do these clients with snooze generally let you see the queue of snoozed items and process them early if you'd like to?

7. I can't block people. Creating a rule that auto-deletes emails is not quite the same as blocking.

Besides these technical ones, there are a few cultural ones as well.

1. Email has a culture of BCCing people "to be polite". As mentioned in 1a above, my rules don't work on these emails, so they end up being less polite in practice.

2. Email has a culture of including everyone who might be relevant just in case. Mostly this just drives the signal to noise ratio down. It is end of business hours for me now, and I've received 175 emails so far today. I maybe needed to read 15 of those.

3. Since email rules exist, people will default to blaming the receiver for not having a rule. If I spam @everyone or @here in MS Teams or Slack people blame me for spamming. In email land, I find people will first get mad at the receivers for not liking the spam I am sending them. Bizarre!

4. A portion of the email world takes a hardline stance on email by asynchronous communication. Sometimes you need a synchronous conversation. Sometimes you have something that is urgent. Yes, I'm aware flow exists and can be quite brittle for some people. It is sometimes worth breaking it.

That was quite cathartic to write. Email has been the least pleasant piece of my software life for years now. With work, I just have to deal with it as best as I can (you'll notice most complaints above are work centric). But outside of work I definitely try to minimize my usage.

[0] - Slack's notification flowchart. As complex as it seems, I don't consider this over-engineered. https://d34u8crftukxnk.cloudfront.net/slackpress/prod/sites/...