Ask Slashdot: When Is the User Experience Too Good?
gadzook33 writes "I had an interesting experience at work recently. A colleague suggested during a meeting that we were building something that would make it far too easy for the customer to perform a certain task; a task that my colleague felt was deleterious. Without going into specifics, I believe an apt analogy would be giving everyone in the country a flying car. While this would no doubt be enjoyable, without proper training and regulation it would also be tremendously dangerous (also assume training and regulating is not practical in this case). I retorted that ours is not to reason why, and that we had the responsibility to develop the best possible solution, end of story. However, in the following days I have begun to doubt my position and wonder if we don't have some responsibility to artificially 'cripple' the solution and in doing so protect the user from themselves (build a car that stays on the ground). I do not for a second imagine that I am playing the part of Oppenheimer; this is a much more practical issue and less of an ethical one. But is there something to this?"
I assume you work for Zynga?
Are you sure you want to delete that file?
If your interface would allow a user to shoot themselves in the foot without proper precautions, then your user experience is, by definition, *not good*.
The goal of any application is to let the user perform a function FASTER than manipulating the data themselves, manually. If your UI enables the user to destroy a significant portion of that effort easily, then you have failed to achieve your goal.
Mod me down with all of your hatred and your journey towards the dark side will be complete!
Who is the target market for your product?
If it's for Joe Sixpack, and he might metaphorically poke out an eye with it, then maybe.
If it's for system admins and the like who neither need nor want training wheels, not so much.
You certainly can expose too much functionality to people who shouldn't have it. But you can also make something useless to the people who actually do need to do it.
Lost at C:>. Found at C.
I suppose this is the rationalization that Apple uses internally to justify their walled garden. Gotta protect users from themselves whether they want it or not.
Rather than being assholes like Apple, perhaps you could make this configurable in some fashion? Whatever the hell "this" is?
Since 1984.
David Gould
main(i){putchar(340056100>>(i-1)*5&31|!!(i<6)<< 6)&&main(++i);}
http://www.youtube.com/watch?v=EDv0W3peMxM
NO... a better user experience is better. However, if what you're doing leads the user to an experience that is NOT what they wanted to do, then it's NOT a "good" user experience. There was a cartoon, pre-web, with two unlabelled buttons on the wall... this one turns off all the lights, that one destroys the world. Easy to turn off all the lights, but also easy to make a fatal mistake.
Wordpress has a 'shoot-yourself-in-the-foot' option in the admin settings. You can just enter a path to point your entire Wordpress site to a new root folder... which if you get wrong means you can't access your settings anymore to change it.
Put a button that toggles your program's "dangerous flying car" interface, with a nice warning about they can now wipe their system with a single click, and you aren't responsible if they misuse the software.
Yes, there is. Part of the UI is to protect the users from inadvertent operations. That's part of why various destructive operations in programs have the "are you sure?" dialog box. The good ones also have a checkbox that says "Don't ask this again". There's a difference between making it hard to do a task, vs preventing the task altogether. There may be legitimate reasons why one may need to do the said task. Also, provide a way for the user to consciously remove the speed bumps you're putting in. I don't mind software that wants to hold your hand by default, but I want a way to tell it to get the heck out of my way and let me do my task.
Learn to think in the wiki way.
Rather than make it hard for users to do what they want to do, on the (very valid) assumption that some of them will do bad things, or things they don't really want to do, it is better to make it easy for users to recover from those mistakes, and for others to recover easily from any side effects of those mistakes.
This is not always possible. But it usually is.
Jimmy Wales - Wikipedia.org
Wikia
I've heard this before and every time it was about letting the software bypass some business rule important to an external process.
Well yeah of course I could let you add a negative Debit for an Asset but your accounting department will come at you with sharpened coffee mug or something.
Well, I guess the other time I hear "this software is too good" usually comes from sales and it makes my skin crawl every time.
crazy dynamite monkey
And why it's so easy for shitware like the ask.com toolbar to end up on systems.
People got used to thinking "oh, crap, I just need to keep clicking next until it finally installs". Now you need to check every page of the install to be sure that installing someone's toolbar or whatever isn't checked by default (which it always is).
People either start ignoring the warnings, or stop caring what they say and click next anyway.
Lost at C:>. Found at C.
If your interface would allow a user to shoot themselves in the foot without proper precautions, then your user experience is, by definition, *not good*.
What if the user interface lets them shoot everyone else in the foot at no cost to themselves, while accomplishing their task quickly and with ease.
It's a great user interface from the user's point of view, but a really terrible system to have.
SJW n. One who posts facts.
"If your UI enables the user to destroy a significant portion of that effort easily, then you have failed to achieve your goal."
Ultimately, your goal is to get paid. If you don't do what the customer wants, you have failed to achieve your goal.
It is acceptable to try to dissuade them. It is acceptable to warn them. But document it when you do. And if they still want it despite all your warnings and attempts to convince, then give it to them. That's what you're getting paid for. If they complain later, show them your documentation and where they insisted even though you advised against it.
I once worked for a company that demanded the ability to do X in the software, despite my warnings that it was a bad idea. So I put in confirmations. When they first clicked the button to do X, it first popped up a message saying "This will result in _____. Are you sure you want to do this?". If they clicked Yes, then another confirmation popped up: "Are you really sure?" And if they clicked yes again, a third confirmation popped up: "Are you really, really, REALLY sure?"
An administrator mentioned to me later that he thought the warnings were funny, but he liked the fact they were there.
It's a good idea to help protect the user from themselves. But is it really difficult to give a warning message saying 'Be careful....blah, blah are you sure you want to proceed?'.
Also have a simple mode, and an advanced mode, then let the user decide whether they want more power. You don't have to force a single ideology upon anyone.
Why OpalCalc is the best Windows calc
that asks you I see you are trying to do X do you need help?
I've unliked plenty of things. It never occurred to me that it was anything other than obvious.
For post or a comment, the "Like" text turns to "Unlike". A simple toggle for something that doesn't matter.
For a page like, The "Like" button turns to "Liked" with a checkmark. Hover or click that and "Unlike" is on the drop down-menu. Unliking a page is a rarer and bigger significance of event than a comment like, so it's good design to make it so that it can't be done with a single click.
There's lots of things to complain about in the Facebook UI, but I don't see this as one of them.
Ultimately, your goal is to get paid. If you don't do what the customer wants, you have failed to achieve your goal.
What if the ability to do X harmed others?
The Kruger Dunning explains most post on
The question isn't how easy it is for a user to do something bad; the question is how easy is it for a user to inadvertently do something bad. If the application is properly designed, all tasks should not only be easy to perform, but easy to perform accurately. Presumably, this deleterious task is something that does potentially need to be done, so it should be easy to do. But it should only be easy to do if the end user actually wants to do it, and not easy to do if the intention of the end user is to do something else. Your problem as a designer is to figure out how to accurately assess the user's intent.
one word:
Access
The Kruger Dunning explains most post on
Agreed. At the end of the day, those who write the checks get what they want.. I was speaking more of the theory rather than the practical.
In those situations where I've recommended and warned against the functionality, and the user still demands it, I have considered it more my failure to communicate the risk than the user's failure. But, as you say, I wanted to get paid so I delivered what the user requested.
Mod me down with all of your hatred and your journey towards the dark side will be complete!
It's simple, really: either your users should be doing it, or they shouldn't. If they should, it should be easy to do. If they shouldn't, well, they shouldn't. Any gray area just means you need to better define the parameters.
Mod parrent up.
Think about the typical user – then subtract 20 points of IQ. It is always somebody's first day.
Think about the the worst case scenario – what is it and what is the overall effect.
I have found a good method is to have a “user” mode and a “admin” mode when the stakes are modest to high. Everybody uses the user mode which, in your case, would keep the car on the ground. If somebody needs to take off they can enter admin mode – but it is clearly in admin mode. And add lots of soft stops – power users always think more then they actually do.
Confirmation dialogue boxes should be reserved for really damaging operations like "rm -rf /", and people who abuse them should be forced to install an app that asks "are you sure?" after every keystroke until they learn.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
But if the action can easily be undone, then keep it easy to do.
If you are talking about something like permanently deleting a database, then YES, MAKE IT HARDER.
excitingthingstodo.blogspot.com
Sorry... that URL should be:
http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html
If it needs to do something critical or troubleshoot something make it easy and obvious to take the appropriate steps. Don't obfuscate controls or code.
The only reason you might want to tone down these things is if it makes the software too complex by overwhelming a user with options. Even then it should still be easy to get the more advanced functionality.
This is my number one pet peeve with software. Windows included. The network dialog for wireless connections gives back no sane feedback unless you click through 4 or 5 dialogs. Because Microsoft believes "You do not need that information". Well how else am I to figure out what my NIC is doing?
Anyway. The more deep and open your softwares interface is. The better it will be.
If your interface would allow a user to shoot themselves in the foot without proper precautions, then your user experience is, by definition, *not good*.
I would respectfully disagree. I would much prefer a way to unshoot my foot than be bothered by "proper precautions." Why does every action have to be so final? It's not like disk space is at a premium anymore. I know, that programming an undo is hard and tedious, but it's far more helpful than constantly putting up warnings that people learn to ignore.
Ultimately, your goal is to get paid. If you don't do what the customer wants, you have failed to achieve your goal. What if the ability to do X harmed others?
Many companies exhibit sociopathic behaviors in pursuit of maximizing shareholder value.
If you want news from today, you have to come back tomorrow.
It should be noted that your whole post has the caveat "unless someone could get hurt". Working in heavy industry, we quite frequently tell our clients "No, you do not want X. X does not make sense, and you will hurt yourselves. You want Z instead." If the client insists, we stop doing business with them. If the crane you built collapses because the customer wanted a "press here to collapse crane" button, nobody is going to give a damn that you have documentation proving the client really really wanted the button.
When it comes to health and safety, the customer is not always right.
Everything is better with chainsaws.
Do a job that let's your customer destroy their own data quickly = getting paid once 'cause they won't hire you again.
Do a job that protects your customer from themselves (and making sure they know it) = getting paid for this job and the next ones they give you.
If you are just a code monkey pounding out code to spec- then sure. Shut, up do it, get paid, and then get replaced by someone in India who will do the exact same thing for a quarter your price.
If you want to help your customer and improve your business (and if they do well odds are better you will get even more business from them) then you let them know of the risk and offer suggestions to mitigate it. Now you've shown you are proactive and willing to help out. Which customers usually like.
If your interface would allow a user to shoot themselves in the foot without proper precautions, then your user experience is, by definition, *not good*.
The goal of any application is to let the user perform a function FASTER than manipulating the data themselves, manually. If your UI enables the user to destroy a significant portion of that effort easily, then you have failed to achieve your goal.
it sounds to me that there was a "good for who" discussion in the company.
if it's something like making unsubscribing hard or so.. or send a message to everyone in-game. so, is it good for the particular user but not others? in that case, it probably doesn't make much difference if it's hidden in menus, if it can be abused to annoy other users and the whole feature would need a rethink.
then there's modern services, where getting the user to log in is viewed more important by the company than the user using the system - so they might opt to make it hard to turn off social network sharing of activities(to advertise the app), the user would view that as bad of course but the company as good.
if it was just protecting the user from shooting themselves in the foot I doubt he would be having second thoughts about it, it's probably something that will be pretty obvious and annoying to a "power user" but that's something they don't want to guide the users to do, it's easy to have second thoughts about it because if it's not protecting the user but just trying to get stupid users to do something beneficial for the company then it will annoy the power users and core users and ultimately at some point the newbie users as well who learn the system later, because there's a chance it will make the company look like greedy bastards.
world was created 5 seconds before this post as it is.
Writing software has to be about more than getting paid.
For instance: Remote start cars are awesome. Putting a remote start in a manual can have unintended consequences. For instance, the car might jump forward crushing a person between two parallel parked cars.
True story, and actually, the designers of that software were sued.
At some point liability for your code will fall back on you, and it's your responsibility to say no and not take the money if you are actually creating a dangerous situation.
...If your UI enables the user to destroy a significant portion of that effort easily, then you have failed to achieve your goal.
Uh, that's a bit extreme of a mentality. Shift-Delete and rm -f still exist today. Users shoot themselves in the foot all the time. IT professionals are there to bandage that foot and teach them how to not do that again. Warning messages and pop-ups sometimes help, but not really with the attention span we have today.
At some point, user responsibility kicks in. Now liability on the other hand, is a whole other legal nightmare to address.
Ever delivered something which met the formal requirements and had them say "well, that's not what we wanted"?
There is often an unbelievable disconnect between what users tell you they want versus what they actually really really wanted but had no idea until it was too late.
End users will often help you design unusable software which is exactly what they asked for.
Lost at C:>. Found at C.
Since you felt it would be tedious to explain specifics, you create a huge hole in our ability to give you a serious answer that is relevant to your situation. So to speak on a purely generic level, there's no such thing as too good a user experience.. The notion that you might make the user of your product TOO happy, or make their lives TOO easy, is the sort of sadistic logic that I would normally attribute to someone whose just shitty at developing user interfaces and wants some kind of perverse rationalization to justify their shortcomings.
However... this whole "flying car" analogy leads me to believe that you're not really talking about "user experience" in terms of user interfaces, ergonomics, and the like. It seems to me that you're talking about feature sets and what you are empowering the user to accomplish with your software. For example, some advanced text editors may enable global search and replace. That same text editor may support using regular expressions in a variety of ways. With this hypothetical text editor, it might be possible to combine the application of these features and modify dozens of critical files in unexpected ways, really wrecking the local PC.I'm wondering if this is the scenario that's really behind this question? If so, referring to this as "user experience" is misleading.
I'm fully in agreement that you want to be careful about what sort of capacities you grant the users of your application. If that particular feature has a crappy risk/benefit ratio, then drop it altogether. On the other hand, if you have powerful but risky features that you believe the software needs, then you should be working hard to improve the user experience in such a way that inexperienced users don't stumble across those features accidentally. Although I have personally railed against Microsoft's history of nesting options under multiple layers of dialog boxes, part of the intent there is to segregate "power user" options where they will not distract casual users from the features they actually care about.
exactly in the "flying car" thing you would put the control to enable flightmode
1 Inside the GloveBox
2 require a special key THAT MUST BE PURCHASED SEPARATELY be inserted (and the key burns out after say 18 hours)
3 require that the car be accelerated to say 70 mph (in first gear)
4 have special warning lights light up (maybe aircraft style red and blue? strobish things)
in short make it so that Legal is satisfied that flightmode will not enable by accident
Any person using FTFY or editing my postings agrees to a US$50.00 charge
I think the real problem with warning messages is that they're so overused that people ignore them. If UI designers had saved warning messages for things that were actually important ("You're about to delete a file") rather than stupid things ("You are loading a web page with unsecured elements") then people might actually pay attention to them.
Hell, back when Vista first came out I had to go through FOUR, yes four UAC dialogs to create a folder in program files and rename it.
Agreed. It seems a primary attribute of good usability that you don't let your users "commit suicide" (lose data, kill the app . . .)
Have you ever tried to unlike something? It's not easy and I'm sure it's that way by design. Feature must be there, but obscuring it makes people unlike less pages. This is profit driven decision.
Hah this was the first thought I had too. He must work for Facebook and was tasked with adding an "I want to opt in to never being able to opt out" feature. Make it too easy to use, and hey...
What if the ability to do X harmed others?
That responsibility/consequence fall to the user, not the tool used.
It must have been something you assimilated. . . .
I don't have mod points today so I'll just say I like your attitude. :-) This is, in my opinion, a professional mentality.
Sure, but everyone defines their own level of acceptable risk. Unless you're (for example) their parent, it's not your job to define it for them. I believe it's my job to make benefits/risks known (and, perhaps, documented) but not to decide for the customer what's acceptable for them. If they want something stupid/dangerous (and if I agree to build it), I'll explain/warn them as best as I can, but if they still want it, they get it - along with a note that says I'll be standing by to say, "I told you so."
I'm not my employer's / customer's keeper or even their nanny.
It must have been something you assimilated. . . .
The question is ... if the user changes their mind, how easy is it to recover.
I help out with an online forum, we get requests every day from people who requested to delete their accounts and then changed their mind. (Okay, not every day ... but too often.) This isn't something the user can do themselves, one of the administrators has to go into the backups to find the data.
Conversely, we do have a legal requirement to delete user data upon proper request, we can't just make this option unavailable.
So the option is there and is fairly hard to find (I've never used it myself and can't say how hard it is to actually use), that's the best we can do.
Ever delivered something which met the formal requirements and had them say "well, that's not what we wanted"?
There is often an unbelievable disconnect between what users tell you they want versus what they actually really really wanted but had no idea until it was too late.
End users will often help you design unusable software which is exactly what they asked for.
Don't be too hard on them. Often, it's working with what they asked for that shows what they should have really asked for had they been able to see in advance what was actually possible.
One of the advantages of being Agile. Don't invest too much in the "final" solution. Because it probably won't be. Unfortunately, that particular nuance tends to get lost in the Cult of Agile.
I'm assuming that the company that created the app did it for some profitable reason. So, it's in their best interest that the user is protected, even from themselves - for the best future of the app. If, for example, the engineers built a "delete my account" button that offered a one-click solution - I can see the company taking issue with that. In my own applications, I would never create a one-click "delete my account" option. It would be a two-step, maybe even a three step process - just to discourage users from deleting on a whim (or accident)
There are good reasons to slow down certain processes. Performance isn't always the goal.
"Lame" - Galaxar
Easily and unintentionally is the key. Also important is the difficulty in reverting the damage. If it is easy to reverse it is not as big of a deal.
"In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson
The concern here is that the task is bad so let's assume so.
Is the fact that you are getting paid to do something excempts you from any ethical repercutions?
No I don't think so. I don't accept so.
Are you allowed to do a subpar job?
Yes. One is never obligated be perfect. Nor are we obligated to do our best effort, You can do the worst possible job the client will still accept.
So one can do a bad job. But can you do it on purpose?
For the most part the legality of an action depends on the action, not intent. Some proffesions do make requirements about intent. Doctors for instance make an oath to do no harm (intentionally). Judges, Presidents and other public servants make an oath to do their job to their best of their abilities. Do programmers make such oath? Well... Do insurance agent make them? do real state agents? Do bankers? And, do they actually follow them up?
The answer no in every case. So no. Unless you make an oath to serve to the best of your abilities, you have a right to do the worst possible job that still satisfies your contract. And abilities imply responsability so I'd say you must. However don't be outspoken about it. The law is unfair and I can see some lawyers finding a way to implicate that you do have such an obligation.
But... the future refused to change.
Actually, the customer is not always right about MOST things, because "the customer" is actually a euphemism for "every single unique individual out there who we can get to purchase our product". There's no WAY you can get a consensus on practically any feature or function you'd put in a product that's used by a wide variety of people, all in unique situations.
What you can (and really should) do is try your best to offer a product or service that your design team believes offers the best possible experience for the customer. THEN get customer feedback and make changes whenever you can tell a significant number of individuals want them.
IMO, "health and safety" is only different because we have a legal system which, all too often, rewards individuals and punishes manufacturers, whenever it can be shown an injury occurred using the product, and someone argues in court that a different design could have avoided said injury. (I recall the story of lawnmowers requiring a warning label cautioning not to attempt to hold them up off the ground and use them to trim hedges or other shrubs -- ever since some idiot won a lawsuit for injuring himself doing just that.)
My point is, if most of your customers want that "collapse crane" button, it's probably for a very good reason (a need for it for storage purposes). You can either pretend you know better than they do what's best for them and refuse to provide it -- or you can put some thought into it, and provide it so it only functions along with other safeguards in place. (EG. Heat and motion sensor must not detect presence of a person on or within so many feet of the crane, or the operation cancels with an audible warning alert. Crane must not have anything attached to the end of it when button is pressed or again, it cancels.) A fear of our legal system probably causes many good ideas not to even be attempted, which is unfortunate.
There are several high end sports cars with "track mode" that's a more practical version of this. To put the car in this mode (with suspension and engine settings that with frankly be stupid and destructive for normal driving) requires a special key in a lock while the car is off - deliberately designed to be too awkward to switch if your waiting at a light and another sports car pulls up next to you.
Several cars also have a way to put your engine into "waiting at a light and another sports car pulls up next to you" mode that puts you into some sort of fast launch mode for the next minute or whatever, but you're only allow e.g. two per month. The Nissan GTR famously made it too easy to get launch mode, and ruined a lot of engines while still under warrantee in early models.
Socialism: a lie told by totalitarians and believed by fools.
Make the interface for the dangerous function easy to use, but make the user have to go through some sort of difficult/obscure process to enable that functionality, such as having to check a checkbox in the preferences and acknowledging a dialog box warning them of the dangers.
Or, make a dialog box pop up every time they attempt to do a dangerous function, but provide them with a "Don't show this warning" checkbox if efficiency is important to the user.
The GTR did not have a "launch mode", and specifically warned users not to use it as such. It was a mode intended to allow you to accelerate out of low-traction conditions like getting stuck in snow or loose gravel. They specifically warned people not to use it on dry pavement as it could damage the transmission if used that way, and would explicitly void the warranty. Nobody listened.
Nowadays, they did add real launch control so people would stop using the VDC-off mode wrong, which is kind of the opposite solution as what TFS talks about.