Dear software developers:
When your software “does the right thing” with intelligent defaults and a little cleverness to make my life easier, that’s awesome. Job well done! Smart software makes the world a better place.
But there are some applications that let their smarts go to their head, and they become cocky. They force me to do things their way, to use the software its designers used it. If I want to do something different, I’m wrong.
There are lots of examples of applications that get this right. They’ll warn you if you’re doing something stupid, and they try to structure their GUIs to make it hard to do stupid things. But, at the end of the day, if you’re really sure you want to do something it thinks is stupid, it will let you. Because, after all, us humans are the bosses.
But here’s a perfect example of where it all goes wrong: setting up a mail account in a mail client. It prompts you for your name and email, and you click next, expecting to fill in the account details. Instead, it tries to find them for you. This is mildly irksome for me, as the mailserver I was connecting to has a non-obvious hostname, and my ISP blocks outgoing mail 25, so detection of incoming and outgoing mailservers both failed, and it took me about 30 seconds of waiting for this to happen.
But it wasn’t that big of a deal. I plugged in the correct IMAP server hostname, and just left the SMTP server as-is, since I’m not actually going to send any email.
Except, I can’t save. Every time I try, it goes off to validate the servers. It can’t reach the mailserver, so it tells me my information is wrong. There is no “Are you sure you want to save?” prompt. The SMTP server isn’t reachable, so I can’t add an account. I tried manual setup, which sounded promising. It bypassed trying to guess my credentials. But it turns out that it, too, insists on validating your accounts before it will save them.
I can see why this happens. Some developer somewhere thought, “It makes no sense to add a mailserver account unless both the incoming and outgoing accounts work. I’m helping my users!” But in actuality, they’re just getting in my way. Now I have to install some sort of SMTP server on my laptop, just to fake out my mail client so it will have something functional to connect to and allow me to save my account.
By all means, write smart software. Use defaults that work for the majority of people. Warn me if I do something that looks wrong. But don’t make your software refuse to do what the user instructs.