Monday, September 25, 2006

Microsoft Exchange vs. Unix Sendmail - Rant and Comparison

[Microsoft Exchange and Sendmail are server programs for sending email. You have almost certainly sent mail to one or the other before, and there's a pretty good chance that your email service is using one and you don't know it. They operate behind the scenes, so most people don't even notice them.]

I absolutely loathe Microsoft's server software. There has yet to be a single occasion where I have said, "Wow, that was way easier than doing the same thing in Unix."

This is not to say that I believe that all Unix systems are superior to all Microsoft systems. That would be a broad generalization, and a stupid one at that. I'm sure there are applications where Microsoft server products outperform equivalent open source and Unix offerings.

I just haven't found any.

Case in point: minor changes, the focus of this rant, are far easier to deal with in Unix. Tonight, I had to change the address that some guy's email was being forwarded to. Sounds simple enough, right?

This is a link to how to change someone's forwarding address in Microsoft Exchange. Look at it. Don't bother to read it, that's not really important. Just take a look at the number of steps necessary to do something this simple.

Go ahead, I'll still be here when you get back.

You didn't read it, did you? Is it really so much work to click the link, and then click "Back?"

Fine, here's the synopsis: you need five printed pages of explanation.

Now, here's how you do the same thing in Sendmail, a Unix email server program. (You don't really need to read these either, but I'll write it out for the sake of completeness.)

  1. Open /etc/mail/virtusers in a text editor.
  2. Find the email address for the guy that wants to change his forwarding address. It will be in the format
    someguy@here.com        forwarded@somewhereelse.com
    .
  3. Replace forwarded@somewhereelse.com with the new forwarding address.
  4. Save and exit the text editor.
  5. Restart Sendmail so it knows about the change.


Seriously, that's it. Five steps as opposed to five pages. I don't think I'm wrong here.

I'm sure some Microsoft fanboys will say, "But Exchange has so many more features than Sendmail! It has to be more complex." Let me take that argument apart here.

  • I really don't think that complexity is an excuse for really, really terrible user experience.
  • Simple tasks are the tasks most likely to be performed on a regular basis. If you know that a task is a pain in the ass to do, find a way to make it easier. Add a wizard, find a way to obfuscate the complexity, do something that doesn't make your admins want to cut your throat.
  • Most Exchange users don't use the extended features offered. (The server I was using today did email services for three people. It's in a closet behind the receptionist's desk.) If they're not in use, disable them until they are. It will not only speed up the system, it will eliminate the painful need for five pages of text to do a simple task.


I'm well aware of the fact that a good user interface is difficult to write, and that the more complex something is, the harder it becomes... but come on, Microsoft. You are the premiere software developer in the world. Is this actually the best you can do?