Hacker News new | ask | show | jobs
by open-source-ux 1693 days ago
Lack of empathy abounds among programmers writing user-facing software. I am increasingly convinced lack of empathy is over-represented among developers. It's a controversial thought, and feel free to shoot it down.

But why the lack of empathy? Is it because developers are more comfortable with computers than with people? This is a common stereotype about programmers. Perhaps it has more than a hint of truth to it?

Examples of abrasive behaviour in developer circles are too numerous to list (from real life and online).

It's not just a lack of empathy towards fellow developers, lack of empathy is even more marked when applied to "non-technical" users who are often patronisingly viewed as clueless idiots (and a source of irritation for developers).

So many UIs (visual and non-visual) and interactions are badly designed by developers who show no empathy toward users struggling to complete tasks. If you can't use the software you're considered a clueless and annoying 'newbie'. (How dare you suggest I 'dumb down' the interface to accommodate your cluelessness).

RTFM? (Read The Fucking Manual) Even this patronising acronym speaks volumes about the sneering attitude among many developers towards other developers and users. (Never mind the fact that in most cases the manual doesn't exist or is so poorly written as to be useless.)

4 comments

What you describe is orthogonal to whether a developer has empathy, though.

1. UX design is a trained skill that most developers don't have. It's not a lack of empathy if you have no idea how to create a better user experience.

2. Many developers are in it only for the paycheck. They do exactly what they have to in order to keep being paid, and not a minute more of effort goes into their work product. They may be an excellent people-person, and in fact may be able to talk themselves into raises and promotions at work due to their excellent empathy skills. But if they really don't care about the end user or the work product, that's not a lack of empathy as much as a lack of pride in work.

3. RTFM may be misplaced if there really is no good manual, but a significant fraction of the time I've seen it employed (or more polite variants) was because there was a manual that had the exact answer the developer asking the question was looking for, and the questioner just didn't bother to look. I spent an entire year and a half on a project answering questions to the same developer with links to the documentation where he could find the answers he was seeking. I swear he would ask me something at least weekly, and I always could just point him to exactly where I'd already answered that question. It's not a lack of empathy to just start saying RTFM. It's a failure of PATIENCE with someone for asking the same question you've already answered a hundred times because they're too lazy to look up the answer themself.

And telling an end user to RTFM goes back to point #1 above: If the user feels the need to ask how to use a product, then that's a failure of UX. See Don Norman's many books on the topic: He's fond of saying that an ideal user interface shouldn't require instructions. An as in point #1, if you needed instructions to begin with, that implies bad UX, which isn't the fault of a programmer, but rather of a UX designer. Most programmers also shouldn't be front-line on helping end users anyway because of the patience issue I mentioned.

There are developers out there who just lack any form of empathy. Granted. Anyone with the skill to code can likely find work, regardless of their shortcomings; demand is such that they will be hired even if they're generally jerks. But I don't accept that programmers are in general less empathic than an average person. It's just that empathy isn't a job requirement.

It probably started out as a character trait among early programmers, but these days I'm convinced it's mostly a cultural thing. It's not actually about the software as much as these folks want to say it is by saying things like "RTFM"; it's selecting for people with similar emotional reactions to themselves. Consequently, you're also going to see more abrasiveness in very online programmers. Devs that don't want to deal with the abrasive gatekeeping and bikeshedding online and just want to get shit done either work on projects and share them in private circles or quietly write cool software for industry. I know folks working on microkernel stuff and capability-security that just don't want to get into online language flamewars or complexity flamewars, so they just don't publish their stuff on the big link aggregators.

Entire online software communities (suckless, PL enthusiasts, etc) have been created around cultures of rewarding gatekeepers; things like "our software sucks because we're forced to write it for _normies_" (suckless) or "oh those capitalist, Fordian idiots causing us to use sad programming languages that aren't Haskell/Ocaml/Lisp/etc" (PL enthusiasts). It's sad because it holds these developers back from understanding why people don't buy into their philosophies. But for a lot of these folks, I don't think writing and sharing software is the end goal. They want to form a community and a culture with other people where they can shit on the normies or Fordians because it offers them pleasure in some form.

The last time I remember seeing someone say "RTFM" is probably something like 2006? in the freenode bash IRC room. Where are you frequenting that you see such things?

I don't know any haskellers who I would think say or think the things you say. Most of them realize that they're into a niche thing. I think most of them want the good things of haskell to be shared to the larger community, but we just don't know how to get there from here.

Well, I take that back. There is one person I know of who is what I would consider gatekeeper-y, and I really generally disagree with him on almost everything, except I too like Haskell.

But this is one person out of the many many haskellers I know.

> The last time I remember seeing someone say "RTFM" is probably something like 2006? in the freenode bash IRC room. Where are you frequenting that you see such things?

Just a cursory search, nothing specific:

https://news.ycombinator.com/item?id=28831243

https://lobste.rs/s/yjvmlh/go_ing_insane_part_one_endless_er...

https://lobste.rs/s/yjvmlh/go_ing_insane_part_one_endless_er...

https://lobste.rs/s/yjvmlh/go_ing_insane_part_one_endless_er...

https://lobste.rs/s/d1tk0e/overhead_returning_optional_value...

https://lobste.rs/s/cpfajx/java_16_gets_records_jep_395#c_dr...

https://news.ycombinator.com/item?id=29006854

I can definitely find more but this is what 5 minutes of searching turned up, and while many of them come from the same thread, I can find way more where that came from. There's legitimately a vocal contingent online that wants to gatekeep around PL usage. Note the language there: "inferior language and ecosystems", "Rob Pike doesn't trust programmers to be good", "The entire attitude is an apology for the bare fact that Go doesn’t have error-handling syntax", "perhaps we care a little too much about ordinary users?" These aren't solidarity-building statements. They're about flaming, expressing intransigent opinions, and gatekeeping.

> I don't know any haskellers who I would think say or think the things you say. Most of them realize that they're into a niche thing. I think most of them want the good things of haskell to be shared to the larger community, but we just don't know how to get there from here.

When I said "PL enthusiasts" or "suckless", I don't necessarily mean to say every, or even most, PL enthusiasts fall into that bucket. Likewise devs interested in simple architectures aren't all in the "suckless" camp. Like I said, there's plenty of folks doing great work exploring things like ML-based functional programming or simple, composable designs. What there also is though is a vocal community, probably a minority, of folks who _do_ create a tribe of gatekeepers. As I was saying in my last post, these folks are usually the Very Online type as most folks trying to actually get things done spend less time inciting flamewars and more time actually writing code.

But my post is more about this strain of very (online) visible toxicity in programming. Taking opinionated, intransigent positions is disturbingly common in programming and I largely think it's a practice holding the state of the art back.

I see. When I read your statement, I interpreted it as statement about a majority of devs in such communities.

I actually came into the haskell community expecting MORE of such behavior, becuase I think common wisdom is that Haskell is full of gatekeeprs. I've been quite surprised by how little of it there actually are.

I'm not sure I totally grok your point re: golang. Just go read Rob pike's statement. That doesn't mean much about golang per se; he may have been attempting to make something suitable primarily for beginners, and hit upon some kind of impossibly powerful design (i'm thinking like scheme or something). But I hear about how bad golang code has to be, and well it makes me very sad.

Of course, golang does solve actual very real problems, and failing to acknowledge this is holding back the industry 100%. It also meets people where they are, not where the language author is, which is of course something we really need to come to terms with as a group of people who want to push the industry forward.

> I see. When I read your statement, I interpreted it as statement about a majority of devs in such communities.

> I actually came into the haskell community expecting MORE of such behavior, becuase I think common wisdom is that Haskell is full of gatekeeprs. I've been quite surprised by how little of it there actually are.

Yeah I don't mean to imply that this is something specific to the Haskell or PL community. More that there is a strain of vocal gatekeeping in the field of software dev as a whole, and it finds most purchase in niche communities like PL enthusiasts or simplicity enthusiasts, probably often because small communities don't always have the time/manpower to create consistent messaging and guidelines.

> I'm not sure I totally grok your point re: golang. Just go read Rob pike's statement. That doesn't mean much about golang per se; he may have been attempting to make something suitable primarily for beginners, and hit upon some kind of impossibly powerful design (i'm thinking like scheme or something). But I hear about how bad golang code has to be, and well it makes me very sad.

I just linked those posts from a thread I found, it's not really a point I'm trying to make myself, though hating on Go is a common sport for folks who write in niche languages. (So P(niche language writer | hater) is high, not that P(hater | niche language writer) is high.)

> Of course, golang does solve actual very real problems, and failing to acknowledge this is holding back the industry 100%. It also meets people where they are, not where the language author is, which is of course something we really need to come to terms with as a group of people who want to push the industry forward.

Right and that's all I mean. I firmly believe that choosing a PL is often a complicated decision and is often driven more by the problem domain than anything else. But the toxic gatekeeping around the dialogue ends up making everyone defensive and has people take increasingly intransigent positions, which leads to silly divides instead of folks working together to advance SOTA.

If anything that's more a cliche than something controversial.
I don't think it's that programmers are, on average, less empathetic than "non-programmers/techies/whater."

In my experience, it's always been that people who are technically-minded, usually don't have the soft skills to make it look like they care -- without really getting emotionally involved at all.

Most people are just trying to go about their day and deal with their problems as they come up. Whether they be financial, emotional, inter-rational, mental, or what have you; everyone is primarily focused on themselves.

Most people will feign empathy and side-step such things with some tact, because their livelihoods and current level of comfort relies on other people liking (or atleast tolerating) them. Whereas programmers have a little bit more insulation -- a moat if you will -- for being tactless jackasses, because other people will still tolerate them (for the moment), so long as they ship that code and stay in their caves, away from real people.

The same is true about many BB IBankers: what's the point in being a decent human being? You're getting paid fat stacks to brown-nose. The best, most soul-less brown-nosers get rewarded by making MD/VP. Whether or not you have empathy is irrelevant to your compensation, i.e. your comfort and livelihood, i.e. your goals.

t. someone who used to be a virulent jackass thinking meritocracy was the be-all, end-all