Jump to content

Just make it a user preference

From mediawiki.org

We editors often request "Just make it a user preference", and similar. This list/essay aims to summarize some of the complexity with that idea, giving the difficulties and benefits.

Difficulties

Every additional user-preference:

  1. Adds to the complexity of the [core/extension] code,
    1. Increases the likelihood of bugs (either now or in the future)
    2. Increases the long-term code-maintenance task
    3. Increases the quantity of variations that ought to be tested, in both automated and manual code checks - each variation adds exponential new combinations
  2. Adds to the complexity of the Special:Preferences tabs for users (hence making everything a bit more difficult (or less likely) to be found)
  3. Adds to the UI translation backlog
  4. Adds to the already overwhelming documentation
  5. Adds new rows to the user-properties database table, which is already too large (task T54777)
  6. Adds to the quantity of things that need to be considered, when contemplating any additional new features in the same feature-set
  7. Makes it harder to diagnose bugs
  8. Must avoid cache fragmentation

Hence, developers/designers/managers/etc are very hesitant to just make a new user preference every time [frequently!] that somebody asks for one.

Benefits

That said, I (and many of us) adore preferences, and I consider Firefox's "about:config" page to be generally DoingItRight™ as far as power-users are concerned.[1]

I've written a bit more about this in a section at Talk:RfC/Redesign user preferences, which I'll copy below:

An Ode to Options, A Paean to Preferences, A Serenade to Settings, A Cry for Configuration

<Alice> Make the first question: "Do you want to use the default settings or customize?"
<Bob> every nerd worth his or her salt answers "customize"

—Two staff developers on IRC, discussing improvements to the MediaWiki-software installation process and documentation. ~2014.

I want to see our Special:Preferences menu become better organized, so that it can grow, with all the tweaks and power-tools that some editors need permanently available – I.e. The things the various overlapping communities have built over the last 20+ years, and continue to create and refine – So that newcomers can find what they're looking for without being overwhelmed, and so that new power-users can find the brilliant tools they didn't know they wanted.

When I sign up for a new website, I immediately go to the settings menu to see: What things I can turn on, and what I might want to turn off (either now, or in the future). When I install a new program, operating system, or game,[2] I immediately look through the Toolbar and the Preferences/Options menu. They tell me a lot about the software, e.g.:

  • Technical vocabulary (concepts, keywords, and groupings),
  • which settings the developers thought were "useful enough to include, but not crucial enough to set as default",
  • which options the specialized-power-users might need, that I might want to investigate or use once I become proficient with the basics.

One way to make complex systems easy to use is to remove the functionality. But that isn't really solving the problem, is it?

— @MrAlanCooper[1]

This wiki endeavour, requires tools that are as complicated as Photoshop or Autocad, for many editors but not all. Newcomers often need something simple, as do casual-editors.

We need something like Photoshop for power-users, as well as something like MS Paint for the newcomers and casual editors.

  • MS Paint is great! It's Welcoming, and easy to learn via experimenting, and easy to create simple (sometimes even complex) projects in!
  • Photoshop is great! A dense abundance of menus, and a profusion of tiny and detailed-metadata, for those who need it! For those who spend many hours every day, for many years, working hard within it.

We want and need both ends of the spectrum, and a migration path for users to slowly learn about bits of the complexity without being overwhelmed.

Footnotes

  1. However it really needs some built-in documentation. I previously used an extension which added helpful annotations about each option to the page, but it stopped being maintained.
  2. - "So let's start with the options" - Bayonetta review (Youtube)

Further reading