Just make it a user preference

We often request, "Just make it a user preference", and similar. This list-essay aims to summarize some of the complexity with that path.

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 (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 columns to the user-properties database table, which is already too large (T54777)
 * 9) Adds to the quantity of things that need to be considered, when contemplating any additional new features in the same feature-set

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

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 (though it needs built in documentation, and I used to use an extension for that before it was abandoned).

I've written a bit more about this, at Talk:Requests for comment/Redesign user preferences (A serenade to settings).