Just make it a user preference

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.

jeg coh  ettt jenny mamma jenny jag har inte så bra som helst så är det var inte alls lika mycket som jag inte alls tisdag och torsdag och jag har inte så bra kväll och att jag inte har något att ha på jenny hlshaw   jeg  coh ettt en på  blilllldig som vill vara en bra dag idag

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

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
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, 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.

--

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 [ https://www.youtube.com/watch?v=MGOLqU8AZpo 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.