Advertisement

User Interfaces: Software Settings

Started by February 01, 2012 08:30 PM
57 comments, last by Antheus 12 years, 7 months ago
It's time to challenge the status quo.

I have an idea that I want to share about a IMO better approach to handling settings/preferences/choices in software.

Idea_Overview.png

I'm in the process of writing an article about it, once finished I can post it on my blog and try to spread the word.

http://shurserv.no-ip.org/index.php/Choices_in_Software_Settings

Anyone can help; I've put up a wiki server for this purpose. I'm all ears to comments and discussion.

The main reason people start to criticize the idea when they hear it for the first time is because I don't explain all the parts of it fully, so they bring up points that I'm already aware of... So they should be addressed.

There are a lot of arguments and thoughts at the bottom, which needs to be edited and integrated into the main article. But I have more thoughts that need to be added.

Thanks. biggrin.png This is kind of an experiment, as I've never done anything like this before. Let's see what happens.
I think the settings screen is a relic of the past.

In this image, there are email settings. I don't find a single one of those settings useful.

Number of messages is a function of display and interaction mode. Setting 25 vs. 50 vs. x isn't a useful choice.
Preview by number of lines is again wrong abstraction - I want my preview to be meaningful, preferably gist of the replied text or meaningful image.

General outlook - settings are too simple and limited. In a typical app today, one would customize the theme. It's what made web popular (accessible UI). Show/hide something, different colors, etc... "But not everyone can program" - counter-point Wordpress + plugins + themes ecosystem. Non-programmers aren't an issue here, at least not in practice. And those that aren't motivated for such system, they really don't care either way.

"Ask before deleting". An incredibly difficult topic. For regular users, never physically delete anything. At least not at this stage and in such a way. For corporate users, legal will dictate deletion and tracking policy, as well as notifications on such actions. Such switch is really redundant. Recycle bin metaphor on desktops has served well over this time, web service data retention is also a proven practice.

"Load remote images". If it's a performance optimization, there's no need to switch, it should be transparent fallback, best suited for connection quality. If it's a security precaution (phishing, dot tracking, spoofing), then it will be on by default and can't be disable, or must ask on each message.


These settings to me just look quaint, something that has been completely solved over last 10 years.


There is still place for certain configuration But I think too many of these settings are aiming too low and not addressing important issues. Compared to 20 year old win 3.1 dialog, most of underlying causes that required these settings went away. And many of those that stayed in the bowels of OS setting are simply too arcane and specific to have much use for friendliness, they are simply there to do the dirty job for those that really need to do it.
Advertisement
Antheus, I agree.

I think the settings screen is a relic of the past.[/quote]

Pretty much. But it serves an important role. It allows users to change/customize certain things about the software that aims a large target audience.

This task is very important and it needs to be addressed.

In the past, that objective was implemented by presenting a bunch of choices via checkboxes, radio boxes, text fields, etc.

I think the way forward is a model similar to how Extensions can be added to browsers. You start with zero extensions. You can search for an extension that you like, and add it. Now you have one active extension in a list. Except you would be searching from potential settings that can be changed.

In [iPad Mail Settings] image, there are email settings. I don't find a single one of those settings useful.[/quote]

Great! So you're a perfect example of a user who would be satisfied with the "optimized defaults" for your mail settings.

However, another user might find it very important if the remote images are NOT loaded (assume that loading remote images ON is the default behaviour). This user would go to settings of Mail app, type "load remote images" in the search box, which would have auto-completion and suggestions similar to Google Search. He would find a "Load Remote Images" setting, set it to off and apply the change. He now has 1 explicitly listed software change in his settings list. If he decides to undo this in the future, it will be easy to remove it (or temporarily disable it) .

type "load remote images" in the search box, which would have auto-completion and suggestions similar to Google Search. He would find a "Load Remote Images" setting, set it to off and apply the change.

Except that search interfaces never work that smoothly. Take Google as an example - unless I explicitly know what I am searching for to start with, I often have to run through 15-20 search strings and 40-50 pages of results before I find the article I need.

What happens if the user types 'block pictures', 'hide external content', or 'disable images'? You really have to be prescient to provide a decent search interface (Google/Siri occasionally border on prescience by dint of the massive amount of previous search behaviour available to them, but it's by no means reliable).

---

That said, Antheus is on the right track. While some subset of egotistical power users will always jailbreak their iPhone because they 'need so-and-so interface tweak', the rest of us are more than happy with the defaults - I've yet to change a cosmetic/behavioural setting on an iOS device.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]


I think the way forward is a model similar to how Extensions can be added to browsers. You start with zero extensions. You can search for an extension that you like, and add it. Now you have one active extension in a list. Except you would be searching from potential settings that can be changed.


Nah, choice again.

When I sit into a car, the steering wheel is on the left. Plugins won't help me - I can't drive any other way around, nor is that a choice for me.

UX research these days, coupled with AI and machine learning does away with choice. It simply observes what people do and builds systems around them. Web made this process easy, but only a handful of companies manage to extract value from it, with Google leading the pack.

In [iPad Mail Settings] image, there are email settings. I don't find a single one of those settings useful.[/quote]

However, another user might find it very important if the remote images are NOT loaded (assume that loading remote images ON is the default behaviour).[/quote]
Not to focus too much on this particular detail, but all email clients have this functionality worked out - show without images, click to load them, remember by sender/topic/title/etc. Single context-related click. It's not even about "remote image" (what is that anyway). It's about email first looking ugly, then looking pretty.

Tech jargon, even when seemingly benign has little place anymore and really sticks out. We know what "remote" and "image" mean, but few others do. Or, it could as well be called BoogaOoga. Words simply have no meaning, remote means the stuff you click to switch channels on TV, but why would anyone want to do that with images hanging on the wall?

This user would go to settings of Mail app, type "load remote images" in the search box, which would have auto-completion and suggestions similar to Google Search. He would find a "Load Remote Images" setting, set it to off and apply the change.[/quote]

Terrible. Even for me. I would have no clue that option like that exists, what it's called or that it can be toggled.

UI design for ops is static and has no hidden elements. Even disabled elements are visible, just indicated as off. While there's hype around HUD these days, it's completely abysmal as primary means of interaction.

However, having a shell alternative is a good thing in same way *nix shell is good completent to UI.

But most importantly - if remote image protection is important, then it's on. If it's not important - why is it an option? If two users have different preferences, why do they need to decide - how do you find out which group of users do they belong to and select based on that?

And then one of those users switches machines and suddenly, their email is broken. Images aren't showing up. Why is that machine broken?

Only improvement of settings for long run is removal of settings and that requires learning about human (not even user) expectations and intuitive reaction. Cannot be done in general or for all things, but most commonly used interaction modes are getting there.

[quote name='shurcool' timestamp='1328131634' post='4908489']
type "load remote images" in the search box, which would have auto-completion and suggestions similar to Google Search. He would find a "Load Remote Images" setting, set it to off and apply the change.

Except that search interfaces never work that smoothly. Take Google as an example - unless I explicitly know what I am searching for to start with, I often have to run through 15-20 search strings and 40-50 pages of results before I find the article I need.

What happens if the user types 'block pictures', 'hide external content', or 'disable images'? You really have to be prescient to provide a decent search interface (Google/Siri occasionally border on prescience by dint of the massive amount of previous search behaviour available to them, but it's by no means reliable).[/quote]
It should work for any of those "search" queries. They shouldn't necessarily be thought of as "search queries" actually, but rather "describe what you want". Search implies finding one unique answer. Describing what you want can be done in many ways for the same thing. This interface should accept any of those ways.

I'm imagining a system where the user who types something in for the first time has his query directed to the app developer, who then either redirects the original query to an existing software change, or implement the necessary code to make that change possible.

Here's what I wrote elsewhere on this topic:

"There are two obstacles [to finding your result] here.

1. The user doesn't know he's able to change something, so he doesn't even attempt.
2. The user tries to search for what he wants to change, but is unable to describe it well enough to find it. Perhaps he's searching for "background" instead of "wallpaper" to use your example.

Issue 1 needs to be handled in some way. I haven't given this much thought, but I'm sure it's a fairly standard problem in UI design so others might have solutions.

I've already thought about issue 2. I want this to not be a problem. Suppose the developer actually sees "failed search queries" and "background" is one of them. He can "redirect" the users to the correct answer, automatically adding an alias to wallpaper. Future users can search for either background or wallpaper and automatically see the result.

I've thought, in the worst case (i.e. if this can't be automated, ala Siri) there can be a human operator sitting on the other hand who can have a "conversation" with the user. Assuming the privacy issues can be handled. So now a user can actually talk to a human to try to find what he needs. He can use natural language. If the feature he wants to change doesn't exist, a software change ticket can be made and the developer can choose to implement this feature. Pretty far-fetched, I know, but it's just my vision for now."
Advertisement

[quote name='shurcool' timestamp='1328131634' post='4908489']
I think the way forward is a model similar to how Extensions can be added to browsers. You start with zero extensions. You can search for an extension that you like, and add it. Now you have one active extension in a list. Except you would be searching from potential settings that can be changed.


Nah, choice again.[/quote]
Choice is only bad when it is unwanted/unneeded.

But when the user really wants/needs to change something, not having choice is bad.

Let's consider changing the wallpaper/background image in a desktop Operating System for example.

You can eliminate that choice, and that's good for people who are happy with the default wallpaper because there's less clutter in settings for them. But many users will be unhappy, those who really want to change the wallpaper to be some non-default image.

There's no way you can figure out the correct wallpaper based on machine learning. It's a personal choice.


Tech jargon, even when seemingly benign has little place anymore and really sticks out. We know what "remote" and "image" mean, but few others do. Or, it could as well be called BoogaOoga. Words simply have no meaning, remote means the stuff you click to switch channels on TV, but why would anyone want to do that with images hanging on the wall?

Terrible. Even for me. I would have no clue that option like that exists, what it's called or that it can be toggled.

Please see my reply above, where I address this exact concern.


UI design for ops is static and has no hidden elements. Even disabled elements are visible, just indicated as off. While there's hype around HUD these days, it's completely abysmal as primary means of interaction.

This is a good point. This is why many more people will be able to press buttons to interact with an unfamiliar UI, compared to guessing that they can "swipe" from the sides of the screen to interact. I need to think more about this.


However, having a shell alternative is a good thing in same way *nix shell is good completent to UI.

My vision is a solution that gives you the same power as a *nix shell. Actually more, because it also allows users to add new settings that did not previously exist (akin to emailing the developer and asking them to add a setting, except this is a much more streamlined way). But it's supposed to be as easy, if not easier, to use compared to today's Preferences windows.

It's almost like modifying the source code of the software you want to change, except you outsource it to the developer to do it for you (and he can reuse his previous work if two ppl want the same change).
There is one problem with this, one which comes nicely from games in fact; I don't know if it has a formal name but it is basically being overwhemled by choice.

In games this manifests itself as 'ok, you've completed the tutorial... go do what you want!' and without a mission structure many users fail to make a choice and give up playing completely.

Same with this; you effectively saying to the user 'so.. what?' and they have no structure on how to phrase what they want or what they can even do. Most users, as has been pointed out here, don't need "settings" anyway (or they tend to be engineered in such a way as to be part of the work flow) and those that do generally don't want to be dicking about with a natural language and guessing at what they can do when they could have them layed out in front of them.

There is a visual studio plugin I use which I have customised by looking at the options and trying them out; without this 'here is what you can change' factor I'd have no idea what the options would be, never mind how to configure them.
People don't want, care, or need settings. The less they have to configure the better.

Choice is not always a good thing.

Microsoft Office had this problem right up until ribbon. Lots of people rag on the ribbon UI, but it achieved its goal: It simplified the interface by eliminating the majority of things that people never touched.

Most people don't build documents that contain embedded forms. Most people don't digitally sign documents, and most people don't do collaborative editing on documents. Thus all those options have been moved out of the main UI. YOu can get them back, which is the important thing, but for most people they are things that they never used.

The picture of the iPad email settings window is a good example of too much choice. Most people won't understand the 25 emails or 50 emails thing until they hit a scenario where they need to go back 51 emails. Then they'll wonder "where did my email go?" not "oh, yes, i need to change that setting."

The "ask before deleting" thing is understandable though, and probably should be there for one big reason: Email uses an archaic protocol that has no ability to distinguish between "deleting" and "move to recycle bin". SMTP doesn't support folders, or anything of the sort, so there's no "proper" way to mark an email as "pending delete, but don't delete" without confusing them on every other platform that gets that email as well (they click delete on the ipad, goes to recycle bin. They go to their desktop and read their email and...its right there in their inbox! WUT!?!?!?!).

There is a reason Microsoft, Apple, and even Linux in recent years, spend hundreds of millions of dollars on UX studies.

In time the project grows, the ignorance of its devs it shows, with many a convoluted function, it plunges into deep compunction, the price of failure is high, Washu's mirth is nigh.

phantom, thanks for your thoughts. I would describe that problem more as "lack of guidance". Existing checkboxes in options serve to guide the user and tell them, "hey look, there are the things you can easily change right now, if you want".

Without that information, most users will probably not be able to come up with any of those change ideas. Just try to think of what you can change in a modern web browser like Chrome off the top of your head. With a browser it's easy, and you can probably come up with 3-5 things off the top of your head. Remembering more things isn't easy.

What if I show you this picture?

imagepoe.th.png

Now it's much easier. You would've never thought of being able to hide/show the Home button unless you saw it listed there.

Similarly, in video games, it's likely a typical user can only thing of simple settings off the top of his head like resolution. But the more advanced graphics settings will depend largely on the implementation.

This is what you're referring to.

Yes, I'm aware of this, and I don't have a very well defined answer right now.

One of my thoughts is just let it be. If the user doesn't know what he wants to change, it means that quite likely he's fine as it is with the current (optimized default) options.

One of the reason I want to reduce/eliminate lists of options is because they force users (those who care about having software optimally configured) to go through each one, try to understand the option, and make a decision. Why should they do this for options they don't care about? The more options there are (that a user doesn't care about), the more choices you force him to make. Most users end up ignoring options, but that's hardly the best thing - some of those options could be inadvertently changed from default to be non-optimal.

You just have to ensure the user knows (perhaps via a small tour guide/tutorial when they first open the options screen) that he CAN change anything he wants to, he just has to describe what he wants to change. As long as people are aware (so they won't feel like they can't change anything), I think user satisfaction should be high. But this theory of mine is unverified as of now.

This topic is closed to new replies.

Advertisement