Fog Creek Software
Discussion Board

Invisible functionality (JOS - 20 June)

Joel seems to think we should all be writing software that does things automatically without the user's knowledge. Personally, I'm nervous about  writing software that does things without anyone knowing. It's all very well if that's what everyone expects to happen (and maybe in this case, that is what everybody would expect to happen) but guessing what 90% of you users expect to happen is sometimes a tricky business. And if you get it wrong, your application becomes infruiating. Anyone who has fought with Word to get it to understand how they want their paragraphs to indent knows what I mean.

Maybe this is just a good argument for doing lots of usability testing. Or maybe it's a good idea to avoid second guessing the user's expectations all together, and to just write software that does what you ask it to and nothing more.

Friday, June 20, 2003

There's a fine line between automatically choosing sensible defaults and bothering the user with pointless questions and messages.

I've written software that automatically creates all the registry settings it needs with default values at startup if it detects that they don't already exist. I could have troubled the user with some scary message about important settings being missing but I chose to silently handle it instead.

John Topley (
Friday, June 20, 2003

Although it is often desirable to allow the Users to make choices, I agree with Joel in the case he mentioned, and also the cases in his linked article.

One of my current clients has a lot of Users (hundreds) and many of them are not really computer-literate, they just *have to* use them to get their job done. So, the way I see it, giving them pesky choices and options is a bad thing. It interrupts their flow and distracts them from what they're doing.

Not giving Users options does lead to the software making assumptions, but lots and lots of testing, especially usability testing, can validate them.

Steve Jones (UK)
Friday, June 20, 2003

I felt a bit itchy about security. A takeover of a site by hackers even for just a brief moment could silently permanently change the bookmark of all users hitting that site to point to somewhere of the hackers choice.

Security vs. convenience: the classic tradeoff.

Just me (Sir to you)
Friday, June 20, 2003

There are plenty of straightforward cases of invisible functionality, which is what Joel is referring to here. Why would I want to think about changing the bookmark? Just change it.

I don't think we're talking about taking all the decisions away from the user, just the ones that suck and you end up clicking Yes to every single time. One user may find it useful and sometimes click No - but should you aggravate the other 5000 users with a pointless dialog which could even confuse them? And making it a "configurable option" is just another step down a dark path to an overloaded, frightening Options box...

Joel Goodwin
Friday, June 20, 2003

I'm not with Joel on this one. Invisible functionality can be a good thing in some cases I suppose, but certainly not here. I can easily image scenarios where I would *not* want the browser to go change the bookmarks behind my back, even if the server sent a permanent redirect.

I agree it's a good thing if the browser can handle such things, but as a user I want to know what's going on, and I want to be able to prevent it if needed. All in all, I'm with Jason Fried here: the dialog offers all options I need.

Roel Schroeven
Friday, June 20, 2003

I quite like the dialog box the first time with a check box that I can check to say 'never bother me with this again'. VS.Net 2003 is pretty nice in this respect, and so far the text in the boxes actually seems to explain what the issues are pretty well too...

I wonder what do I do when I do decide I want to be bothered again, I wonder if there's  a huge options screen somewhere that I havent found yet ...

Len Holgate
Friday, June 20, 2003

I agree with Len - I think IE does a good job of this, too - "Here's a question you may or may not consider important. Want me to keep asking you about it? [y/n]"


Friday, June 20, 2003

"I wonder what do I do when I do decide I want to be bothered again, I wonder if there's  a huge options screen somewhere that I havent found yet ..."

There's usually some sort of "reset all warnings" checkbox buried somewhere.

John Topley (
Friday, June 20, 2003

I think the value of having it pop up as a dialog box instead of updating the bookmark automatically is that it lets you know that the URL has changed. If you've referred to that URL elsewhere, such as in a Word document or on your Web site, this warning lets you know that you'll need to change it in those places, too.

Brad Hurley
Friday, June 20, 2003

I'm not sure how I feel about Joel v. Jason.

But the basic feature itself seems completely useless. Does it change the end result for the user at all (beyond an address flashing in the address bar)?

I generally recommend against implementing useless features.

Friday, June 20, 2003

If that page will be a permenant redirect, it makes little practical difference if the user is directed to the new site.

"Please update your bookmarks" and "Do you want your bookmark updated" are very similar, except one is passive the other is active and you get into the whole technical v. nontechnical user thing.

If it did it silently, as a user, I might be confused about why my bookmark suddenly changed, though I'm used to being redirected very quickly.

I think "Do you want this bookmark to be updated" with a checkbox saying "never ask me again" is the best of both worlds.
Friday, June 20, 2003

I can't resist quoting a whole post from the discussion on Jason's site.


Post 14:

  ---"it might lead me to wonder what other things the program is doing without asking me first."____

Um, just about everything- that's why it's a program.


Stephen Jones
Friday, June 20, 2003

Bless you, Stephen.

Too many options and it's a compiler, not a program.

Joel Spolsky
Friday, June 20, 2003

In this case, I think the easiest solution would be (as Philo pointed out), to simply the question, and offer a way to instruct the program to automatically do this for you in the future:

The Web address for this site has changed. Would you like your bookmark to be updated?

  <Yes>  <No>

x Automatically update bookmarks in the future

The benefit here is that you scale back the message to a scope that will actually be read, and you provide a clear option for those users who would prefer to have this done for them automatically.

Now, if the product is going to be used by a predominantly novice user base, the "Automatically update bookmarks on pages with permanent redirections" option could be turned on by default.  The expert user could then turn it off.

Just my $0.02.

Saturday, June 21, 2003

"Just Me" nailed the main problem I'd have with the program updating the URL automatically. If someone hacked JoS, for example, and redirected all the articles to porn sites, it'd take me quite a while to fix all my bookmarks up again when the site recovers.

I also hate text editors that silently 'correct' your text files, converting them from Unix end-of-line format to DOS format.

I want to know before anything is changed.

Darren Collins
Sunday, June 22, 2003

I am not an expert on these things, but I guess the server even would not have to be hacked. Just polluting the DNS cache (local or upstream) to have the name point briefly to a server you control, put permanent redirect up on there -> bookmark changed automatically to whatever I want.
All your bookmark are belong to us!

Just me (Sir to you)
Monday, June 23, 2003

I always thought most malicious redirection of bookmarks occurs on the client's machine and the warning would not come up.

If you're hacking the server you will only affect one bookmark, and the pop up won't provide security because everybody will click yes.

Stephen Jones
Monday, June 23, 2003

Why not just store the old address, update the bookmark with no dialog, and then have an option somewhere to roll back the change if it turns out to have been incorrect.  This accomodates the users who don't have the slightest idea what a redirect is, as well as the person whose website was hacked.

The only case this doesn't cover is the person who linked to that site or who distributed the address in an e-mail, but those people ought to have a better method of maintaining link integrity than counting on the browser to do it for them.

Sunday, July 6, 2003

*  Recent Topics

*  Fog Creek Home