Re:Are users trying to make developers angry?
by crasm on Saturday August 06, 2016 @02:03PM
(#12239099)
But their stupidity persisted. They did things that
were so wacky they boggled my mind (like putting a
credit card number in with spaces between each
number)...
Not allowing spaces in a credit card field is a pet peeve of mine. It's a trivial problem to solve in code, and almost nobody does it. Whether it's a space every 4 numbers (the most logical to me) or a space between each number, it really shouldn't matter.
There are spaces in the number on the card itself. Entering the number with spaces makes it easy to check if you've made a mistake in only a few glances, instead of painstakingly going number-by-number and losing your position a few times.
Re:Are users trying to make developers angry?
by chrismcb on Saturday August 06, 2016 @03:29PM
(#12239503)
I just looked up a flight on Delta's site. I entered the flight number, or what most people would consider the flight number. "DL133" Delta darius it was an invalid number. Turns out they just wanted "123" how hard would it have been for them to strip the leading "DL"? Apparently to hard
Re:Are users trying to make developers angry?
by jakub_g on Saturday August 06, 2016 @05:49PM
(#12240071)
They probably have a ticket for it in JIRA, at the bottom of the backlog with other things that make people's life easier, because POs want insert_annoying_features_here instead.
Re:Are users trying to make developers angry?
by 20years on Saturday August 06, 2016 @02:13PM
(#12239150)
I think sometimes users think developers are trying to make them angry.
"It's not that the users were trying to make me angry; it's that they were ignorant of how to make the app do what they want."
Actually, I think the ignorance is on the developers part.
Users don't care about what some developers may perceive as a sexy UI. Honestly, most don't really even want to "learn" the UI. They just want to get stuff done without having to think about it.
We as developers need to get better about developing software that doesn't require a manual. That doesn't require a user to learn how to use something that in their minds should really be so easy.
Example: don't force a particular credit card entry format such as multiple entry fields, doesn't allow spaces or requires use of dashes, etc. Same thing with date formats. Make your software smart enough to handle as many use cases as possible. If they do something incorrectly, make the UI guide them through the error in an easy to understand way.
We as developers are used to reading through complicated documentation, tutorials, etc. That doesn't mean we should subject our customers to that same pain. Unless your software is at the Salesforce scale, the aim should be to develop it in a way that doesn't require a manual or require your users to dig through a bunch of tutorial pages just to get started.
Re:Are users trying to make developers angry?
by SerLava on Saturday August 06, 2016 @02:28PM
(#12239245)
>Users don't care about what some developers may perceive as a sexy UI. Honestly, most don't really even want to "learn" the UI. They just want to get stuff done without having to think about it.
Very much this. Users aren't stupid, they just don't give a shit. They use dozens, maybe hundreds of user interfaces per day and your UI has no right to be a difficult POS.
Re:Are users trying to make developers angry?
by rudedogg on Saturday August 06, 2016 @02:17PM
(#12239176)
I look at this a little differently. If a user is able to make a mistake, I've failed (this is too broad, but you get the idea).
If you take an honest look at your application, and step away from it, it's usually easy to see how they misinterpreted something, etc. I think empathy is an important skill in developing software. It's not right to expect someone to change how they think about a task, because you've written the software to work in that way.
Good software and UX is hard. Modeling problems in a way a computer and a user can understand is hard. Browsing http://ux.stackexchange.com/ and reading some of "The Design of Everyday Things" opened my eyes to how bad things are - and how much better they can be.
Also, if you haven't you should watch some talks by Bret Victor or Alan Kay.
Re:Are users trying to make developers angry?
by joncampbelldev on Saturday August 06, 2016 @03:07PM
(#12239417)
Totally agreed about the not letting mistakes be an option.
I was building an admin ui to configure basically a fancy slideshow for employee performance metrics (gamification). We originally had planned a few days work to put proper validation and error messages in, but then flipped the task around and made it so that every field had a sensible default, and no mistaken values were possible to be filled in (e.g. number fields with automatic limits, date pickers instead of free text).
It turned out to be much less work and the user never sees an annoying "hey you've not filled in this field in the way one of our devs wanted you to".
Re:Are users trying to make developers angry?
by unabst on Saturday August 06, 2016 @05:57PM
(#12240089)
> empathy is an important skill
This. I get what the author of the article is experiencing and respect his process and conclusions (I empathize), but the one thing that bugs me is:
>> Hanlon's Razor: "Never attribute to malice that which is adequately explained by ignorance."
... which can be taken to mean users are, if not evil, just stupid. I sense a lack of empathy here.
Could it be that your application just sucks? Maybe it's good or great, but from the details of the article it clearly seems like it was full of UI oversights and has potential for improvement.
>> The issue was that I live and breath code, and they don't.
This statement is telling, because code is absolutely irrelevant to the user and their experience. It would have been better if he claimed to breath UX not code, because his issues are with user experience, not code. This says more about his pride and his ego when it comes to his code, both which will only cause drama, which he admits to.
Re:Are users trying to make developers angry?
by iptables on Saturday August 06, 2016 @02:14PM
(#12239161)
> users saying something doesn't work, only for us to point out something simple that they forgot to do, or the instructions they totally didn't read, and then the error magically goes away
If that's how your software works, you're doing it wrong. It means there was little to no design planning. The error should tell the user/developer what to do to avoid the error thus avoiding an angry email in the first place.
Re:Are users trying to make developers angry?
by cpitman on Saturday August 06, 2016 @02:31PM
(#12239262)
Are you saying users read error messages? People come to me for help when things break, and ~60% of the time I save them by reading the error message and doing what it says.
Re:Are users trying to make developers angry?
by iptables on Saturday August 06, 2016 @03:39PM
(#12239552)
I would argue that developers should aim for 0 error messages ever. If your software requires an action to be performed before moving on, then redirect them to the action, highlight the point of interest, and give a little alert at the top that tells them what to do. When you have a scary error message, users get scared.
Re:Are users trying to make developers angry?
by cpitman on Saturday August 06, 2016 @04:22PM
(#12239727)
In this case I'm talking about software I didn't develop. Also, developers are not immune to this. Very often it is a compiler or runtime error that tells you where the issue is and sometimes even how to fix it. Person/developer sees a red message and panics before attempting to resolve.
Re:Are users trying to make developers angry?
by klagermkii on Saturday August 06, 2016 @02:08PM
(#12239115)
I don't think I've ever felt that users are intentionally trying to annoy me, it's more that it feels like they're not trying hard enough. The sense that the application is not impossible to use, lots of their peers have apparently been able to use it with no problem, and that they need to meet me halfway. A kind of unspoken contract where I try and make it as easy as possible for the user, and the user puts in the effort to read the directions rather than just immediately clicking through.
This is not to say that it's their fault or that I am not always working on improving my own work to better take into account human nature as part of interface design. Merely that the post focuses on "intentionally piss off" as the prime motivator, and I'd be a surprised if most developers attributed it to that.
Re:Are users trying to make developers angry?
by dmoy on Saturday August 06, 2016 @02:03PM
(#12239097)
If the user has difficulties, it's usually your fault not the user's. Now that doesn't necessarily mean you can realistically do anything about it (time, budget, lack of UX people, etc)...
Re:Are users trying to make developers angry?
by taeric on Saturday August 06, 2016 @02:10PM
(#12239125)
Meh. This is just as problematic of a way of looking at it, honestly.
If the user is having a hard time getting something done. It is probably a difficult problem for them. The job of the developer is to work with the user to make it easier. If you are lucky, you can make it easy. But, incremental improvements are huge.
Re:Are users trying to make developers angry?
by iammyIP on Saturday August 06, 2016 @03:18PM
(#12239471)
Learning a graphical software interface is wasted lifetime, it's like having to learn a new spoken language everytime you want to talk to someone. If however you are married to that person, it might be ok to waste some time to learn that persons interface. Like a photographer that needs to learn how to talk to Photoshop so it can make the pictures prettier.
However most software resembles more the person that you randomly ask for directions in the city. Nobody wants to learn a new language just to exchange 2 sentences.
But building interfaces that require no learning at all is as hard as writing a program without any bugs or undefined behaviour. In practise it might be even harder since talking to the machine gives more predictable precise results, compared to talking to a human.
Most interfaces are therefore quite bad, because development time would go through the roof if any imaginable erratic user behaviour would be taken care of totally invisible. The bigger and more complex the program, the messier it's interface will be.
So yes, users might be trying to make developers angry by pointing out their lazyness.
Re:Are users trying to make developers angry?
by Artlav on Saturday August 06, 2016 @02:07PM
(#12239113)
> They weren't trying to make me angry, they were trying to learn.
Yeah, these are the easy ones.
The hard ones are the "why should i think what to do? I have my job, just make this thing work!" kind that doesn't try or want to learn anything at all.
Re:Are users trying to make developers angry?
by hiou on Saturday August 06, 2016 @02:32PM
(#12239271)
I think that comment may be in relation to tool software such as a CAD program as opposed to service software.
In tool software it is often impossible to always know what the operator is looking to achieve as it is often novel. Service software is quite the opposite where there are likely a few well defined goals the software is attempting to help the customer achieve.
Re:Are users trying to make developers angry?
by Artlav on Saturday August 06, 2016 @03:07PM
(#12239422)
I guess it was a bit out of the wrong context. I did a lot of fixing/building computers back in the school days, and that left a bad impression - a lot of people don't care to learn even the simplest things, or stop to think for 5 seconds.
Re:Are users trying to make developers angry?
by rwallace on Saturday August 06, 2016 @03:32PM
(#12239519)
A good guideline for writing user-facing software:
When you get asked a question once, it might be just a question.
When you get asked the same question by two different users, treat it as a bug report and see if you can fix the interface to make that question not arise.
Re:Are users trying to make developers angry?
by kleer001 on Saturday August 06, 2016 @02:32PM
(#12239269)
and it seems trivial to add too that they're just trying to get things done, one in a huge pile of never ending obligations and difficulties to plain old living in the world.
Re:Are users trying to make developers angry?
by KC8ZKF on Saturday August 06, 2016 @03:52PM
(#12239597)
Harrumph.
He has the razor pointing the wrong way. His users weren't trying to learn, they were trying to teach. In almost all enterprisey CRUD applications, the steel-toes on the floor know more about the domain than the developers.
Re:Are users trying to make developers angry?
by NKCSS on Saturday August 06, 2016 @02:47PM
(#12239342)
Hmm, not quite sure I agree; as with communication, I believe that the responsibility lies with the sender for the receiver to comprehend what you are saying.
Someone does not understand you? Then you are not explaining it well enough.
Someone can't figure out how to use your software? Then you did not create it in a way people can comprehend what they need to do.
Is a button you are not supposed to press (before you've completed some other action) enabled, it's your fault the user can click it.
Same goes for repeated clicks, allowing/not handling bad input, etc.
Re:Are users trying to make developers angry?
by mytec on Saturday August 06, 2016 @02:30PM
(#12239256)
I was frustrated enough with one user that I made RTFM part of his password. Some time later his son logged onto his laptop and asked, "Dad, do you know what RTFM really means?"
Re:Are users trying to make developers angry?
by spion on Saturday August 06, 2016 @02:30PM
(#12239253)
I actually have a very different feeling when I watch users struggle with my app. I feel slightly ashamed and very grateful. Most of the time I realise I've made too many assumptions about the UI, and i start getting ideas on how to maybe fix the problem so that other users don't encounter it.
Re:Are users trying to make developers angry?
by SirensOfTitan on Saturday August 06, 2016 @02:11PM
(#12239128)
I've watched developers who regularly work with UI get tripped up by all sorts of design paradigms. Everyone interacts with things differently, regardless of their background.
Re:Are users trying to make developers angry?
by tamana on Saturday August 06, 2016 @03:07PM
(#12239421)
Many of the commenters here are missing the satire. This essay is about a self centered dev learning user empathy, not a defense of hard to use software
Re:Are users trying to make developers angry?
by 20years on Saturday August 06, 2016 @05:01PM
(#12239908)
"These kinds of users should not be accommodated or even responded to"
Please let me know the software you have developed so I can develop something better and make those users you refuse to respond to happy. Especially if they are paying customers.
This mentality is what results in failure and leaves paths WIDE open for your competitors.
There are spaces in the number on the card itself. Entering the number with spaces makes it easy to check if you've made a mistake in only a few glances, instead of painstakingly going number-by-number and losing your position a few times.
It shouldn't be the user's fault.
Then I get to the expiration date and the first column is a drop list of Jan, Feb, Mar... wat?
Now my brain has to convert 07 to Jul instead of just picking 07. Why?!
Are developers trying to make users angry?
Banks are making users angry really.
* A text input field (which you will store as the user entered)
* What will eventually be coerced in to a series of just numbers in a string.
Never make the user do what code can do, unless you have a good reason for it
And no, making them take the spaces manually (or spaces/dashes/parenthesis in a phone number) is not a good reason
Bonkers.
"It's not that the users were trying to make me angry; it's that they were ignorant of how to make the app do what they want."
Actually, I think the ignorance is on the developers part.
Users don't care about what some developers may perceive as a sexy UI. Honestly, most don't really even want to "learn" the UI. They just want to get stuff done without having to think about it.
We as developers need to get better about developing software that doesn't require a manual. That doesn't require a user to learn how to use something that in their minds should really be so easy.
Example: don't force a particular credit card entry format such as multiple entry fields, doesn't allow spaces or requires use of dashes, etc. Same thing with date formats. Make your software smart enough to handle as many use cases as possible. If they do something incorrectly, make the UI guide them through the error in an easy to understand way.
We as developers are used to reading through complicated documentation, tutorials, etc. That doesn't mean we should subject our customers to that same pain. Unless your software is at the Salesforce scale, the aim should be to develop it in a way that doesn't require a manual or require your users to dig through a bunch of tutorial pages just to get started.
Very much this. Users aren't stupid, they just don't give a shit. They use dozens, maybe hundreds of user interfaces per day and your UI has no right to be a difficult POS.
If you take an honest look at your application, and step away from it, it's usually easy to see how they misinterpreted something, etc. I think empathy is an important skill in developing software. It's not right to expect someone to change how they think about a task, because you've written the software to work in that way.
Good software and UX is hard. Modeling problems in a way a computer and a user can understand is hard. Browsing http://ux.stackexchange.com/ and reading some of "The Design of Everyday Things" opened my eyes to how bad things are - and how much better they can be.
Also, if you haven't you should watch some talks by Bret Victor or Alan Kay.
I was building an admin ui to configure basically a fancy slideshow for employee performance metrics (gamification). We originally had planned a few days work to put proper validation and error messages in, but then flipped the task around and made it so that every field had a sensible default, and no mistaken values were possible to be filled in (e.g. number fields with automatic limits, date pickers instead of free text).
It turned out to be much less work and the user never sees an annoying "hey you've not filled in this field in the way one of our devs wanted you to".
This. I get what the author of the article is experiencing and respect his process and conclusions (I empathize), but the one thing that bugs me is:
>> Hanlon's Razor: "Never attribute to malice that which is adequately explained by ignorance."
... which can be taken to mean users are, if not evil, just stupid. I sense a lack of empathy here.
Could it be that your application just sucks? Maybe it's good or great, but from the details of the article it clearly seems like it was full of UI oversights and has potential for improvement.
>> The issue was that I live and breath code, and they don't.
This statement is telling, because code is absolutely irrelevant to the user and their experience. It would have been better if he claimed to breath UX not code, because his issues are with user experience, not code. This says more about his pride and his ego when it comes to his code, both which will only cause drama, which he admits to.
>> So we all (including me) need to calm down.
Yup.
If that's how your software works, you're doing it wrong. It means there was little to no design planning. The error should tell the user/developer what to do to avoid the error thus avoiding an angry email in the first place.
This is not to say that it's their fault or that I am not always working on improving my own work to better take into account human nature as part of interface design. Merely that the post focuses on "intentionally piss off" as the prime motivator, and I'd be a surprised if most developers attributed it to that.
If the user is having a hard time getting something done. It is probably a difficult problem for them. The job of the developer is to work with the user to make it easier. If you are lucky, you can make it easy. But, incremental improvements are huge.
However most software resembles more the person that you randomly ask for directions in the city. Nobody wants to learn a new language just to exchange 2 sentences.
But building interfaces that require no learning at all is as hard as writing a program without any bugs or undefined behaviour. In practise it might be even harder since talking to the machine gives more predictable precise results, compared to talking to a human.
Most interfaces are therefore quite bad, because development time would go through the roof if any imaginable erratic user behaviour would be taken care of totally invisible. The bigger and more complex the program, the messier it's interface will be.
So yes, users might be trying to make developers angry by pointing out their lazyness.
Yeah, these are the easy ones.
The hard ones are the "why should i think what to do? I have my job, just make this thing work!" kind that doesn't try or want to learn anything at all.
In tool software it is often impossible to always know what the operator is looking to achieve as it is often novel. Service software is quite the opposite where there are likely a few well defined goals the software is attempting to help the customer achieve.
When you get asked a question once, it might be just a question.
When you get asked the same question by two different users, treat it as a bug report and see if you can fix the interface to make that question not arise.
So we all (including me) need to calm down. Users are not trying to piss us off, they're just trying to learn.
He has the razor pointing the wrong way. His users weren't trying to learn, they were trying to teach. In almost all enterprisey CRUD applications, the steel-toes on the floor know more about the domain than the developers.
Listen to them.
Someone does not understand you? Then you are not explaining it well enough.
Someone can't figure out how to use your software? Then you did not create it in a way people can comprehend what they need to do.
Is a button you are not supposed to press (before you've completed some other action) enabled, it's your fault the user can click it.
Same goes for repeated clicks, allowing/not handling bad input, etc.
Eh, dunno. Maybe try not to breathe so much code? I mean, that already sounds like you're overdoing it somehow.
These kinds of users should not be accommodated or even responded to. Good UI/UIX should not cater to the lowest common denominator.
Please let me know the software you have developed so I can develop something better and make those users you refuse to respond to happy. Especially if they are paying customers.
This mentality is what results in failure and leaves paths WIDE open for your competitors.