If too many users are wrong, it's probably your fault (2011)
rachelbythebay.com
rachelbythebay.com
1) the customers who couldn't sign up had used illegal characters in their usernames - there was no validation in place to prevent this: bad mistake;
2) most of these customers, literally hundreds of them, had signed up with usernames containing lots of asterisks. Many usernames looked like lillo* * * * * or bobby* * * * *.
I didn't give much weight to this, assuming (wrongly) that it was just a coincidence. Only a guy in my team kept thinking there had to be an explanation, until he nailed it: it was the signup form that said "fill in the fields with asterisk". So we added the damn validation and clarified the copy.
I would argue that barring a conspiracy of some kind that the designer has made a mistake in either in the preparation of the exam or the preparation of the students. Others might argue that students may be lazy or aren't maximizing the use of their time. I hear similar arguments about users now that I'm in IT but I've always felt that it is the designer's problem if "no one can use it right."
It depends if I have corroborating information.
Normally, it means that they are lacking some very fundamental piece to their learning. The last class I taught that this happened in had a particularly poor Data Structures teacher and so didn't understand Hashes/Dicts/Associative Lists and how to use them.
Yeah, that assignment didn't go well for about 30% of the class. I had to back up and teach that piece.
However, my first assignment ALWAYS has 40+% failure rate. And my assignment is: "Here are the directions to: set up Eclipse, set up Mercurial, type in this program, compile it, run it, and check it in so I can run the automated tester on it."
I literally give people a document with every single step documented. I'm not joking. We're talking a single print statement that prints "Hello, World!".
40%+ always fail. It's almost invariant. Nothing I do can budge that number. I want to bang my head off the desk at the office hours just before and after that assignment.
*Best as in most learning happens to the majority of students.
I always make sure that my first assignment is due before the drop deadline. I don't make that first assignment worth a lot of points, but it sets the tone for the rest of the class--"If you can't do this, you're in for a rough time in my class." Anyone who stays even if they bomb that first assignment knows what they are getting into.
The teachers themselves are pretty bad as well. Java is alrightish, but not in a course called 'Systems Programming' where we talk about paging! And the list goes on...
Now, when I hear about students that learn what array or loop is on C++... I imagine how they start call themselves "C++ developers" after graduation, and it's even more terrifying.
But it was just an example that despite needing some crucial knowledge students just don't care and do not bother to learn themselves. (Even if told)
I agree. If that is the problem, I will happily walk the student through the setup--even at any point in the semester. If a computer craps out, I will help the student recover from the repository--I don't expect them to be able to do that. It does also happen, rarely, that I have to actually help a student set up their computer because they have some weird issue. I do not consider failing at setting up your environment to be a failure of the class. Schedule some time with me and we'll go through it together.
HOWEVER, this is generally not the problem, oddly. They get that set up pretty much fine.
The first problem is: System.out.println("Hello, World!");
I WARN people over and over. I am automated testing this. Computer output must be EXACT. The comma, space, capitalization, and exclamation point ARE NOT OPTIONAL. Debugging is about noticing details, and if you can't match this, you're not going to find the actually subtle bugs later in your own code. Really, this is the only functional line in the program--I'm not joking about this.
The second problem is: "But I didn't know I could check this before the assignment date." Um, I have a website set up for the class--did you check it for the past two weeks that it has been running? I have pointed this page out and put it on screen at both beginning and end of class for the past 4 lectures. The anonymized login ID's have a Red X for a failure and a Green + for success. I also have the intensity modulated properly so that those who are red/green color blind are able to tell as well.
I have just learned that I'm going to have to politely smile at all the excuses and whining after that first assignment and tell people repeatedly that I'm not budging on this. After the first couple of students, the rest get the message.
Heh, you are basically battling a lifetime of built up muscle memory when it comes to that.
We've done programming long enough that this is ingrained to a very deep degree, but for them, it still looks like english.
Anecdote: I had a college instructor who thought it was reasonable to write a TCP-IP program from scratch without reference using Winsock2. I'm sure he could do it, and I could probably do it now, but as a student, not so much.
On assignments where literally every step was documented, my students would still often not know what to do, because they had missed something small but crucial.
After reading “The Design of Everyday Things”, I’ve come to design things based on the assumption that people don’t read. Even when their sole task is to read, they just don’t.
I write compilers, and producing good error messages is a crucial part. But as it turns out, the best predictor of a programmer’s ability to notice and correct an error is not good error-message text—it’s accurate and precise source locations.
I believe a part of this is training not to read the error message text, by years of error message text not worth reading.
I certainly wouldn't go so far as to say that this accounts for all (or even most) of the effect, though.
You're right - I was taught for a long time that the compiler will usually say something like "unexpected ':'" - which is in most cases absolutely useless.
In essence, computer logic and the monkey hind brain don't mix...
I find that those are the same people who tend to write content-free walls of text. No wonder they only read the upper-left-hand corner of e-mails, that's the only part of what they write that's worth reading.
We have an App (of debatable quality) where we made screenshots with big red circles so people know which button to push, as many do not read the button's label.
Sure, I also misread email. Easy enough to say "sorry, my fault" and fix the problem.
EDIT: As this might sound very negative: the whole situation is more like "collective creativity", rather than stupidity. I'm often astonished on how people think and what there reasoning is. Ways of thinking I'd never imagined. And no matter how absurd, there's always some logic reasoning.
They haven't learned to quiet it yet.
And some probably just gave their last full measure of devotion somewhere along the way; they just couldn't for some inscrutable reason.
I learned it less than Cary did. Every time I read this, I calculate what it'd really cost per kid and get pretty sad; it would be a pittance.
http://carymillsap.blogspot.com/2011/01/axiomatic-approach-t...
If my freshman year college professors are to be believed, this happens because undergrad is but an entrance exam for postgrad. 300 CS students come into freshman year. Only 30 can make it into postgrad 4 years later.
Do the maths.
(the stats have improved since the bologna system, now 60 people get into postgrad after 3 years)
It's important to remember that any time someone complains, there is a legitimate problem behind it somewhere.
The issue is that users don't come to you with problems, they come to you with bad solutions. "Make this monster easier" "Make this item drop more often", etc etc.
It's easy to start thinking that if you did what all the players wanted then the game would be entirely bland and give you so many rewards all the time that they become meaningless.
The trick is to try and reverse engineer the problems from the solutions that they are giving you, and then come up with good solutions to fix their real problems.
I definitely feel you here. The feedback I see is always about letting the player be more powerful relative to enemies or even other players. This correlates well to the amount of fun a specific player has, but doesn't correlate well at all to how fun the game is for players in general.
Now I try and get in the habit of having people try out CLI tools while I watch. Especially that first run when they have no experience with it is so valuable! The grumbling is also very valuable ("that's a weird name..." "why does is this option different?")
And other people are better? Writing clear instructions that random people can follow is _hard_.
when I showed it in public in an event, I saw the same loop many, many times:
1> user press buttons confused, see I am standing nearby, ask me what they do. 2> I do nothing if they have a SO near. 3> SO points user, that there are descriptions of the button right there in front of them. 4> User slaps his forehead.
In case there was no SO near, then I would point it myself, the reaction of people was still the same...
I concluded that ins't just that people don't follow instructions, is that they don't even try.
http://dirtsimple.org/2009/05/how-we-get-stuck.html
TL;DR: The author's SO got stuck trying to assemble a kitchen cabinet, and couldn't figure it out. The author looked at the problem, checked with the manual, discovered the solution immediately, and got called smart. The SO didn't even bother. And the author realizes that if their positions were swapped, he wouldn't bother either.
There's something wrong with the whole class of people - that mostly seems to coincide with the "non-tech" group, though maybe it's more about problem-solvers/not problem-solvers. What's wrong is that they get stuck on the first obstacle and give up. Instead of assuming that there must be a simple solution and searching for it, they assume it's broken and quit.
Also, related, the famous XKCD chart: https://xkcd.com/627/.
To be fair, compiler messages can be needlessly cryptic, but if you copy and paste the error into Google you'll almost always find someone who did the exact same thing and had it answered quickly.
Its not about how obvious you think it is, its about how hard it seems to the user. And the harder you make it the fewer users you'll have.
Secondarily, you put your instructions in printed form next to the screen -- when all the user cares about is the screen itself.
Also: “In fact, users don't read anything.”
http://www.joelonsoftware.com/uibook/chapters/fog0000000062....
Yes they are. There's a reason why product managers exist.
I don't think the author's point is that technical people can't write clear instructions, it's that technical individuals sometimes mock or deride others over things that "should be obvious".
Edit: Ok you said product managers. Which I suppose is reasonable, product managers should have a good understanding of developing products for customers.
I'm going to leave the top part of my comment because in retrospect its food for thought.
Are developers innately bad at understanding users? Is middle management better?
This disadvantage potentially extends to managers whose job includes understanding what the abstracted-over system is, but they're probably not thinking about it as hard on a day-to-day basis as the developers.
(Note that "non-developer users" probably also includes developers whose expertise does not extend to the specific system in question and therefore have no ability to guess what's leaking across the abstraction barrier, e.g., Linux users trying to use a Windows tool, new employees figuring out your in-house build system, etc. etc.)
I started developing just 3 years ago, after shifting from marketing and sales. Its amazing how most developers lack social skills needed to understand user trends. Yes, product managers are important to connect technical point of view with more abstract one. No, not all developers are like that, but I would say 2/3 at least.
Developers are mostly good at creating products that they would use. Once they enter ground where they create product for others - thats when difficult part begins.
> I don't think the author's point is that technical people can't write clear instructions, it's that technical individuals sometimes mock or deride others over things that "should be obvious".
That I can totally believe. But then again, non-technical people like to do that too - often the "obvious" thing being the one that they conveniently forgot to mention at all.
If companies weren't getting value from them, they wouldn't be hiring them.
> And technical people are basically the only ones who actually know how to write things in detailed and unambiguous enough way
No, that's exactly OP's point. Developers in general are terrible at writing explanatory text (if they even bother at all) because they make so many assumptions about background knowledge that others don't share.
Other people are remarkably less prone to arrogantly declaring everyone else to be idiots, in my experience. Tech is a field full of people who fondly imagine Dilbert as a documentary about a hero.
There are few options for formatting. [1]
Above is an example of how HN users typically link. The "[1]" above will correspond to the first in a list of numbered links at the end of this comment.
HN is a really interesting UX that appears to be deliberately designed to be difficult for new users to keep the signal to noise high. At least that is my charitable interpretation.
Something that is easy to say and hard to master, I've been trying for a long time but I think just trying helps.
Actually any profession where you have to deal with human suffering (say child protection) you need to be able to turn off your empathy. Of course it helps if you can fake it, but if you try to stay empathic you will burn out very quickly. The turnover in these fields is very high for this reason.
Prostitutes can use empathy to build a good long term client relationships. I've read of one who was visited regularly by a client over a couple of years, they went on dates, he bought her flowers and she bought him birthday presents and there was a lot of give-and-take. If that's not empathy enhancing her ability to perform at her profession I don't know what that is.
I don't see myself being able to handle that kind of emotional roller coaster day in, day out, and so I'm grateful to those who can.
Cognitive empathy: I can accurately predict the feelings/experiences of another person. This can't be "faked" - if your predictions are accurate, you have it.
Affective empathy: I experience similar feelings to another party (perhaps weakened) as a result of observing them experiencing it. This can be faked, and it can also cause problems for the person who has it.
Affective empathy seems like the thing which you describe as causing problems, while cognitive empathy seems like the thing which is useful for building better products.
One thing that can always make me feel real empathy with a complete stranger is sunburn. I am not sure why this is (I don't feel the same way about broken bones for example despite having had them myself), but everytime I see someone badly sunburnt I really feel it as though it was me that was burnt.
The idea that a lot of people doing the same thing can't be wrong is wrong: yes they can be wrong.
The solution which was put in reflects the view that it was them all along. Everything is exactly the same in the UI, except that the subset of the user base which does a silly thing now gets feedback that they are doing a silly thing. No design change has taken place so that fewer (or no) users actually click on the images!
If the developer believed that these are intelligent people who have a reasonable mental model of the system, but who are somehow visually fooled by the layout into clicking on inactive elements, then a true design change would have followed.
The goal of reducing support calls was achieved, of course.
Ranting about the stupidity of your users is certainly therapeutic, but it doesn't excuse you from serving them and doing your job.
There's a Danish entertainment that once asked: "The majority always right, or are they just the most (largest group of people)?"
I don't buy the logic that if the most people believe something, or can't work something, then they are somehow the ones that get it right.
(Amusingly, both of those things have appeared as user interface components, but fell out of style. Apple once had the ability to scribble notes on top of things, and Google was pushing "material design", with lots of raised squares and dropped shadows. (Whatever happened to that, anyway?))
This raises a really interesting point which is the cognitive elite are responsible for designing systems with zero empathy for the rest of the population. It is much harder to design a system that anyone can use and most system designers really don’t make the effort.
I work in a UX role and my yardstick is whether my mom would understand it.
The solution to robust user interfaces is not to just whack labels on images saying don’t click on this, but to step back and assume your user can’t (or won’t) read, can’t (or won’t) do anything mathematical, and also who loves to randomly click on things. Build for the worst possible user in mind and you will avoid a lot of problems.
For example, if the author had assumed that people like to randomly click on things then they could have created a pop-up that said don’t click on this, use the menu above.
I'm not saying the author is one (certainly doesn't sound like it) or that it's even a majority, I'm just saying that when I do need to call for tech support, I understand exactly why they tend to act the way they do and don't take it personally. Some people are just rock stupid and some of that group willfully remain so.
Does that mean all the elitism around IT people is warranted? Of course not, part of your job as support is working with people who you know, NEED SUPPORT. If you aren't down for that job then you really shouldn't have applied, and you shouldn't be treating everyone like an idiot even when you're pretty sure they are. That's what you're paid to do.
Me: Here's how I fixed it, this takes only one step... User: Oh, this stuff is over my head. I don't want to know. Me: In that case, it was magic.
The user ended up finding my boss to commend me for being so easy to work with.
The article you're replying to directly contradicts this. He was dealing with militantly ignorant people, made a change to accommodate them, and it worked.
Author is Rachel Kroll, who has also packaged up and reformated her blog posts into a book: http://www.amazon.com/Bozo-Loop-Rachel-Kroll-ebook/dp/B00878...
They walk up to me, they tell me their problem, and I tell them "sorry, I have a Nexus, don't know how it works on iPhone or any other Android phone. Call your manufacturer or your carrier."
Given the anecdote she shared relates to doing desktop support for Windows users at the dawn of web proxies, your whole premise seems like a strawman you've erected in order to launch into a non-argument.
(I'm not a prude but seriously I do not need to see YOUR inclinations in that department.)
Hypothetical Example: dating site users want an ltr with a 6, but are often seduced by the potential for a one night stand with an 8. Users have chosen 8 but the moral ethical and socally acceptable choice is the 6 with the potential for an ltr. The user is wrong but they hooked up and are happy... Is a site that caters to ltr6's wrong?
However, too often products have massive flaws that designers should have predicted.