Advertisement

User Interfaces: Software Settings

Started by February 01, 2012 08:30 PM
57 comments, last by Antheus 12 years, 9 months ago

Well this is semantics - I think most people will understand "settings" to include more than just cosmetic optional things. Perhaps there's an argument that we should define and deal with them separately - but as I say, I wanted to make it clear that there are these different kinds of "settings".

But that's my point - it's the current semantics that are wrong. There is 'required configuration', and there are 'optional settings'. The former should always be requested by the application, the latter probably shouldn't exist in the first place... Right now we conflate the two, and it leads to a terrible user experience.


I knew when I made that example, someone would try to say there are better ways of doing email - which is why I stressed "Similarly with changing print settings, scanner settings, or anything else I might want to consider."

Have you used a scanner post year 2008? You plug it in, there is a single big button on the front, and when you press it, an image shows up on your computer screen. Printers are pretty much the same in reverse... If I was required to configure a printer/scanner in this day and age, I'd return it to the store.

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

Your solution requires all email-capable devices come with 3G (which doesn't seem to be a standard trend even with mobile devices like netbooks/tablets).[/quote]

Ugh. Technical gimmicks again. So put 3G in every device.

The time of devices yelling at me what I cannot do are over. Today, devices need to enable me to live my life. Any device that complains is useless and thrown out.

What if I want to sign up for a new email (or already have multiple)[/quote]

You are an engineer - solve this. Don't ask me - it's your job to solve these issues. When I hire a plumber I don't expect them to ask me what kind of pipe to use. When I hire an accountant I don't want them to ask be about tax laws.

Therein lies the value of technology.

Look at cars. When you start up the temperature might be too low, fuel is too dense and the pump might get jammed so you might need to warm it 10 minutes before, .....
Solution: When you press remote unlock, the heater starts warming up the pipe leading to fuel so that in 12.6 seconds average it takes for someone to turn the car on the fuel is ready for use. There are also 500 or so other systems which ran in between, doing similar tasks, all to ensure seamless experience.

Vodafone were doing this in 2005 on my cheap low-end feature phone.[/quote]

And Moses had tables 2000 years ago. Apparently, they weren't doing it right.

Did they have appstore that ties with rest of your desktop out of box and shares your music and movies?

Sometimes, a single prompt makes a difference between seamless and useless.


an image shows up on your computer screen. Printers are pretty much the same in reverse...[/quote]

I have one of those combo scanner/fax/printer/coffee maker/washing machine things you get for $200. I think they're in $100 range these days.

Plug into network - tada. Works from every machine. There's DHCP, Samba, whatnot magic. Just use any computer, scan, print, fax (nobody does that anymore).

Even scanning - put in USB drive, press scan - out you get a pdf with properly cropped edges, gamma and contrast correct, properly aligned and oriented.

Magic. But it makes these devices useful - I don't need to worry that my document will be too dark, have ugly borders, be misaligned.
Advertisement
With a search box theres 2 problems:
-You need to describe what you want correctly
-You need to know what options are available

I know what I drew looks like a search box, but my vision for it is something quite different. It's more like a Siri-box.

I really should make some more sample screenshots that showcase what happens when something's entered into it, to help this.

Almost always i just want to look at the settings and see if there is anything interesting i might want to change for whatever reason.

This is another issue. You're looking at the problem from just one perspective, but there are two (opposing) perspectives that need to be considered to cater the UI to all people.

There are situations where you're interested, you have the time, and you care. You want to look through all the settings and see if there's anything interesting you'd want to change.

There are other situations, where you just don't have any time, you're stressed about something important in life, and you just want your damn electronic device not to get in the way of whatever you need to get done. At this point, you'd be happiest when there are fewer settings to look over/configure.

Me: I want to change the email settings.
CPU: I don't understand.
Me: I want to change the outgoing server.
CPU: Okay.
Me: I want to change the incoming server.
CPU: Okay.
Me: I want to change my email address.
...etc


Perhaps the OP may have a point that perhaps search is better for cosmetic changes - but I just wanted to make the point that not all settings are cosmetic. Some are required, and even if you set it up initially, you might need to change those at some point. It's not on a daily basis - but then surely that's all the more reason to not worry so much?

But that's my point - it's the current semantics that are wrong. There is 'required configuration', and there are 'optional settings'. The former should always be requested by the application, the latter probably shouldn't exist in the first place... Right now we conflate the two, and it leads to a terrible user experience.

Yes!

This is another important point. I see this system applying ONLY to the customization/appearance/preferences part of the application. That means settings that have a POSSIBLE optimized default value, and ONLY need to be touched by people who want some non-default behaviour. Basically, settings that are optional to the primary goal of the application, but added to allow users to customize it to their preferences.

That means things like (using examples from Chrome) "Always show bookmarks" or "Show the home button", or "Offer to translate pages", etc.

A personal example I can think of, my Latitude App has two settings that I have absolutely no desire to change from defaults, and I'd love it if they were hidden (yet accessible) behind my Siri-like change-request box. "Distance in: Miles/KM" and "Map Type: Road/Satellite". Note that the default value for the first one should depend on my country (e.g. Canada vs. USA).

My system has nothing to do with system configuration issues. That means things like your Login/password, server IP, etc. These things have NO possible default value that is optimal for an average user.
I knew I remembered reading this a while back, finally found it...

Behold, Eskil Steenberg on configuration (emphasis mine):
Once I meet Mac programmer that said: "Every option that a Application has is a failure, because the programmer was unable to make up his/her mind." I don't claim this to be true, but he had a point. People doesn't spend to much time configuring their software, it is tedious and boring. Making a user interface configurable is great, but it doesn't substitute a good interface, never assure that people will configure anything, "you can configure it to do that" is a bad answer to your users requests, not as bad as "you cant do that", but a lot closer then most people think.[/quote]

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


Even there though, I think that still shows the problem - you'd still have to know that you have to type to change a phone number, when it's better to have the computer ask you the required information. In some cases, there may be more than one required piece of information. I have no problem with "type in a search, then the computer brings up a relevant settings window" (as Windows 7 already does) (although thinking about it, it's still unclear what the OP meant - what are we supposed to type in - do we directly change in the setting to change, or do we just type a search and then it asks us something?)

Yes, I meant something more similar to how Windows 7 does it, except the search is more intelligent and allows you to find things no matter how you type/say them. After you've "found" what you wanted, you use another control to adjust that stuff. If you typed something unique, it lets you describe your change request in more detail and submit it to app developer for implementation (which takes from a few minutes to a few days).

I'm working on some prototype images to showcase what happens when the user types.

But the problem is right now my vision is not 100% clear. I am still working on it. Also, it really depends on my resources. If I were to design a system that I can implement, it would be a lot less ambitious compared to my vision of what a company like Apple or Microsoft could accomplish.

And I agree that there should be better ways of setting up email, but this is something that is separate to what the OP was talking about. The step forward there would be "making email better", not "using a search interface instead of a settings window". Maybe when email works off of phone numbers, and you've changed every other conceivable thing to work so that only one simple option is required at most, then I might change my mind smile.png[/quote]
Email is a completely separate topic, and you're absolutely right that the design for settings should not be based on configuring email. Off-topic, IMO email should die and get replaced by a modern equivalent that works well and allows you to do the same stuff as email (i.e. same benefit) but without the stupid downsides. But let's try not to get into that, one huge-impossible-task at a time. ;)
By the way, I'm glad to be seeing a lot of forward thinking in this thread - I'm sure many of the replies would not have been the same if today were 2006. I know to some people this cause might seem absolutely worthless, as in "who cares, checkboxes are fine so do something more important". But clearly there is potential to improve the situation, to move UI forward (even if to some people it's a non-issue).

After all, the same "who cares, it's good enough" argument can be used today for cars, CPUs and graphics cards. It doesn't mean there aren't people passionate about each field and want to do their best to move it forward.

At the end of the day, my main motivation here is:
-Sometimes (per user/per situation/per app/per device), having more checkboxes in an app's settings is good.
-Sometimes (per user/per situation/per app/per device), having less checkboxes in app's settings is good.
-Current solution (fixed "list of checkboxes") will always be a compromise.
-To make settings UX better we need to change something. Need to come up with a flexible design that lets you do what you want (per user/per situation/per app/per device).



[quote name='mdwh' timestamp='1328280576' post='4909180']
I knew when I made that example, someone would try to say there are better ways of doing email - which is why I stressed "Similarly with changing print settings, scanner settings, or anything else I might want to consider."

Have you used a scanner post year 2008? You plug it in, there is a single big button on the front, and when you press it, an image shows up on your computer screen. Printers are pretty much the same in reverse... If I was required to configure a printer/scanner in this day and age, I'd return it to the store.
[/quote]
Yeah, and this makes me really happy. :D I want to extend this pattern of "simplifying without reducing power" to app settings.

One of the benefits (at least for me) is that it would allow me to own more gadgets without increasing my "maintenance" headaches. Try owning (and caring about) a lot of computers, laptops, tablets, smartphones, Virtual Machines, servers, apps... You'll quickly realize the need for better settings UIs. Having more devices just amplifies the problem for me, but the fact is that it affects everyone to some degree. Those who it affects less, notice it less.
Advertisement
Users are stupid.

I cannot stress this enough. They don't know technical jargon. They don't call their contacts list "the contacts list" they call it "that screen with the people on it." Or actually "That thing with the people on it that I know!" They don't call a settings screen the settings screen, they call it "what's that?"

While an application should have smart defaults at its base, being able to change the settings for a different environment is important (enterprise vs home use for example). However, in those cases its generally not the USER changing the settings, but an administrator, who wants to setup one or two profiles of defaults and never touch that screen again (hint, this is where ADSI integration or GPOL integration comes in).

The problem with a "search box" for your settings is simply this: The user doesn't know what they're looking for. They don't know what its called, or anything similar to it, and will just type in random stuff IF they even bother. Most will give up before even trying to fix the issue them self because the interface was "clearly designed for a nerd." Users don't even like searching their emails.

To give you an example:
I do consulting for various companies and government agencies. I do application architecture, network design and implementation, security, firewalls, the whole lot. Sometimes when discussing things with various people in these companies and agencies we'll reference back to emails discussing previous efforts... most of the time this involves a lot of scrolling and paging. The idea to simply "search" for my name, or the date the email was sent does not occur to them. When I ask them about this habit of theirs, most often I find out that they don't even know HOW to search, or if they did know, they don't know how to search effectively. Now, for a technical person searching for an email sent between January 1st and January 15th with a body containing "C++" isn't terribly difficult (although its certainly not terribly easy in gmail), for the end user this is an act of frustration.

It's also important to realize that you can't simply ASK the user either... If you bring up a message box that says "Would you like to X" they will click whichever button will get the dialog to go away the quickest. Users are innately tuned in with the fast path to get out of dialog boxes. Because dialog boxes are scary.

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.


When I hire a plumber I don't expect them to ask me what kind of pipe to use.


I'm sorry, but he damn well better ask me what kind of pipe to use, because if he comes into my house and tries to run copper, he is going to get an ear full. Double wall flex-line with an insulator sheath only.


And here, we get back to the problem of "I'll just do that for you" software.

"NO! I did NOT want you to install to my C Drive. C is for windows, and windows only on my system. The drive is small, but fast, and I do not want any data on it that doesn't have to be there."

Remember, you are a programmer. You are not god, you do not know everything. Do not assume that you have all the answers upfront, and be sure there will be easy ways to do things differently than you initially expected.
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
I've been working on a mockup that shows how it looks like when there are two changes already made.

Proposed_General_Idea-Two_Entered_Changes.png

In this case, these are supposed to be "common settings" that come pre-built into the application, so the user can make them instantly. I'm using Chrome settings as my example. This image doesn't show how the user went about *making* (I specifically don't use the word "finding") those changes, that's still to-do.

Edit: I'm starting to realize there's a potential problem with visualizing these settings. I just copied and pasted traditional UI elements (checkmarks, radio buttons, textboxes) and although in the picture above they're supposed to be conveying information only - they are not directly editable. However, the picture makes it seem like they are click-able. After all, we're used to those UI elements being editable when we see them like that. I should change this.

Edit 2: I've changed it to fix the misleading problem described above. It's not as pretty, but it more correctly conveys my intention. There are 2 changes and they are being visualized. You're not allowed to edit a change in-place (to prevent accidental changes). So the UI to add/edit/deleting changes is not yet shown, that's my next step. You can see the original version here.

[quote name='Antheus' timestamp='1328282586' post='4909195']
When I hire a plumber I don't expect them to ask me what kind of pipe to use.


I'm sorry, but he damn well better ask me what kind of pipe to use, because if he comes into my house and tries to run copper, he is going to get an ear full. Double wall flex-line with an insulator sheath only.
[/quote]
I see the issue here very clearly. I understand the underlying problem. Let me explain.

Scenario A: As Antheus described it, he implied that he was not a pipe expert. He doesn't care, doesn't know what pipe types there are and how to fix them. He hires an expert, and asks the expert to use his own judgement in this situation, precisely because Antheus knows the expert will make a better decision and trusts him.

The plumber, in this case, represents the software developer who is a larger expert. He makes the decision, i.e. the optimized default value and the user uses it (since he doesn't care, nor can he make a better decision).

Scenario B: Luckless describes a similar situation, with a huge exception. In this case, he implied that he is the expert in pipes. He cares about which pipe is used, and he understands the pipe material choices. It is important to him. He wants to have control and override the optimzied default (whether that means to change its value, or to keep using the default which happens to coincide with his preference).

The plumber represents the software developer who is a lesser expert in this particular issue for this particular user. The developer makes an optimized default value, but this user chooses to override it.

Do you guys see how my idea of overriding defaults works to cater to both situations here?

OTOH, if traditional checkboxes were used, it would be impossible to optimize towards both scenarios. If there is a UI element to let the user control pipe material choice, it's good for Scenario B but not good for A. If there is no such UI element, it's good for user in Scenario A, but HORRIBLE for user in Scenario B. The developer has to make a very hard decision here - cater to Scenario A vs. B. Using my idea, the developer wouldn't have to.




Remember, you are a programmer. You are not god, you do not know everything. Do not assume that you have all the answers upfront, and be sure there will be easy ways to do things differently than you initially expected.

Exactly. You are a programmer. You don't know everything. But you can make much better decisions for many optional things for the average user, things that the average user doesn't care about/understand. Now, don't forget the power users who need/want to change certain things - provide a system that'll allow them to. But when doing that, don't punish the average user by increasing the number of checkboxes they have to look at.

This topic is closed to new replies.

Advertisement