Designing without prefs

I run into this in Bugzilla from time to time, where people don’t understand why I don’t want to take code for an alternate UI/feature (pref-driven of course). There’s arguments about code size “its only 12 lines” or “its a hidden pref, users won’t be confused by it” which are often both not the case. The politics of inclusion in OSS are bad in many places, where a well-written patch is hard to dismiss, especially if it doesn’t affect default operation. Aside from code maintenance/QA issues (more codepaths to maintain/test) there’s a failure in design if you have two polarized methods to get a result. Even more so if you have multiple distinct UI setups depending on a pref.

As an example, lets use the Firefox download manager and how it evolved over time. Starting with Seamonkey, there was a choice between IE-style progress dialogs and a single window download manager. The manager wasn’t especially nice/usable, and hung around until you closed it. It also didn’t do a few other things that people wanted out of it. Phoenix 0.5 had a download sidebar as an option instead of the manager, which was even less functional than the dialogs, so few people used it. With Firebird 0.7 Ben came up with a single download interface, a new download manager with various privacy options and the ability to close on download completion, and it wouldn’t open until a short delay (to avoid the “Your download is finished” popup effect). There was a lot of negative feedback, initially, to the loss of the IE-style dialogs. However, the change stuck, and incremental improvement has meant that most users are ultimately happy/okay with the combined solution.

By combining the best of both worlds, and working to refine the idea, we ended up with a single implementation to maintain, which I think is better than any of the three implementations we had before. Being forced to make a solution work for a wider audience, instead of splitting our users, allowed us to refine a concept that was relatively stagnant. The end result, while obviously not everyone’s cup of tea, is a better solution for more users than any of the old solutions, resulting in a better initial experience for users.

This is why adding hidden preference X to do Y to solve Z is a problem. It removes the impetus to fix the problem that Z presents for the about:config-deficient. If we can come up with an alternate solution, on by default, that eliminates or at least mitigates Z for all users, then we provide a better experience for all users, not just those fortunate/saavy enough to find out about the hidden pref.

12 Comments

  1. Judy Lambert says:

    It’s really neat to be able to make a change via the hidden prefs, but how in the hell do you expect me to keep track of what’s been changed? There are way too many of them!!

  2. Anonymous says:

    chelsea hotel…

  3. Anonymous says:

    bellagio hotel las vegas…

  4. Anonymous says:

    olympia hotel…

  5. Anonymous says:

    the hotel…

  6. Anonymous says:

    hotel suisse…

  7. Anonymous says:

    dijon hotel…

  8. Anonymous says:

    sheffield hotel…

  9. Anonymous says:

    hotel in bangkok…

  10. eden hotel says:

    eden hotel…

  11. penang hotel says:

    penang hotel…

  12. The government should be persuaded to pay for all healthcare

Leave a Reply