No matter where you put an advanced setting, somebody will tell you that you are an idiot
There are advanced settings in Windows,
settings which normal users not only shouldn't be messing with,
but which they arguably shouldn't even know about,
because that would give them just enough knowledge to be dangerous.
And no matter where you put that advanced setting,
somebody will tell you that you are an idiot.
Here they are on an approximate scale.
If you dig through the comments on this blog, you can probably find
every single position represented somewhere.
-
It's okay if the setting is hidden behind a registry key.
I know how to set it myself.
- I don't want to mess with the registry.
Put the setting in a configuration file that I pass to the
installer.
- I don't want to write a configuration file.
The program should have an Advanced button that calls up a dialog
which lets the user change the advanced setting.
- Every setting must be exposed in the user interface.
- Every setting must be exposed in the user interface by default.
Don't make me call up the extended context menu.
- The first time the user does X,
show users a dialog asking if they want to change
the advanced setting.
If you implement level N, people will demand that you implement
level N+1.
It doesn't stop until you reach the last step,
which is aggressively user-hostile.
(And then there will also be people who complain that
you went too far.)
From a technical standpoint,
each of the above steps is about ten to a hundred times harder
than the previous one.
If you put it in a configuration file, you have to write code
to load a parser and extract the value.
If you want an Advanced button, now you have to write a dialog box
(which is already a lot of work),
consult with the usability and user assistance to come up with
the correct wording for the setting, write help text,
provide guidance to the translators,
and now since it is exposed in the user interface,
you need to write automated tests and add the setting to the
test matrices.
It's a huge amount of work to add a dialog box,
work that could be spent on something that benefits a much
larger set of customers in a more direct manner.
That's why most advanced settings hang out at level 1
or, in the case of configuring program installation, level 2.
If you're so much of a geek that you want to change these
advanced settings,
it probably won't kill you to fire up a text editor and write
a little configuration file.
Sidebar
Joel's count of
"fifteen ways to shut down Windows"
is a bit disingenuous, since he's counting six hardware affordances:
"Four FN+key combinations... an on-off button... you can close the lid."
Okay, fine, Joel, we'll play it your way.
Your proposal to narrow
it down to one "Bye" button, still leaves seven ways to shut down Windows.
And then people will ask how to log off.