Hacker News new | past | comments | ask | show | jobs | submit login

The "XY Problem" link[1] has an authentic-sounding and hilarious impression of a developer being a jerks to a newcomer.

A quick analysis of "Example 1":

* developer has already figured out that the person almost certainly means to get the extension, but they then inexplicably post the likely irrelevant answer that blithely returns the last three characters. (More on that below...)

* developer uses caps-- meant to convey that they are YELLING at the questioner-- which is unwarranted and pointlessly aggressive

* developer is obviously annoyed by questioner taking too many steps to get to a proper statement of their problem. But after the developer states the problem properly and the questioner confirms it, the developer wastes a step in their own response to demand that the questioner obtain an arbitrary level of knowledge before they state future problems. I write "arbitrary" because the developer has apparently decided that the questioner should have already known that a) a file extension is called a file extension and b) file extensions don't always contain three characters. But the implication is that a questioner armed with this increased level of knowledge (and who would have therefore Google'd the answer more easily) strangely would be more deserving of receiving an answer than someone who obviously sought out the help of a fellow human being because they didn't know what to search for. That's a bizarre (and frankly anti-social) line of reasoning.

* developer uses a mean-spirited adjective "blindly", ostensibly to hurt the newcomer's feelings. But this is my favorite part-- the developer has already shown that they were nearly certain that the questioner meant to ask for concept they were unable to name-- an extension. (Plus having that confirmed by the questioner.) So for the insult to work here, the developer refers back to their own irrelevant example, calling that "blindly grabbing three characters," and using sleight of hand to reinterpret that as the initial query. All this after having already confirmed the questioner's actual problem!

That shows an impressive level of premeditation to be a jerk-- that is, setting up an irrelevant answer in order to heighten the language for an insult in a later response.

I sure hope this example response doesn't really reflect the current communication style of FLOSS devs.

1) http://xyproblem.info/




False XP Problem is a pet peive of mine actually. Personally, I downvote any answer on e.g. Stack Overflow that doesn't answer the question asked. The proper way to respond to any technical question, IMO, is first answer it exactly as ask if you can (if you don't, then don't answer). After that, you may optionally ask what the person is trying to do and offer your expertise.

The issue I run into is this: I work in the enterprise environment. I have a lot of experience but sometimes I'm forced into doing something seemingly stupid that you would normally never want to do (obviously more complicated than the silly "last 3 characters" problem). So I ask on SO giving as little detail as possible, purposely because I'm hoping to avoid a bunch of wasted time with "but you don't need to do that you can do solution A", where solution A is a solution I already wanted to do but was unable because of some reality of the company I work for (and no, I can't download or install anything and I won't be able to change that). All the obvious solutions will be this way. What I actually needed was what I asked and I had to ask precisely because I also never normally want to do this so I don't know how.

I find the kind of answers that some people advocate for extremely arrogant. By answering e.g. an SO question by answering something that wasn't asked you (a) assume you know more than the person asking (you may, or you may not) and (b) assume there will never be another user anywhere that will actually need the answer to the question that was asked. I get hit by (b) the most: I put my question into google, I actually find an SO question that I need the answer to but some jerk explained the user wanted something else, answered that and then, of course, the thread died.


I also run into this problem when asking on SO. Even if you write in the question "I've already ruled out ... as a possible solution" you still get people trying to argue about it. I'd rather they ignore the question...


Absolutely, this is why I rarely use stack overflow anymore. This attitude exists in all programming languages, even many of the stack exchange sites, like mathematics. I wish there was a direct way of saying it: "Believe me, I am smarter than you think I am. These cop-out solutions you're proposing have all been considered, but if I could find any way of solving my direct problem, it would be better than any other alternative."


No disagreement that the developer is unnecessarily hostile.

That said, your reading is not very charitable. Mine was:

* Developer reflectively responds to the question as stated

* Developer then thinks "wait a minute, why 3 characters?"

* Developer assumes questioner knows that extensions are called extensions, because "everyone" (certainly "everyone in a tech IRC channel") knows. Speaking from personal experience, this is an easy trap to fall into

* The response of the questioner ("yes", rather than "maybe, what's an extension?") confirms that assumption in the developer's mind


This happens in real life in software development frequently enough that thinking back on my career I can mentally replay the XY problem chat log as multiple IRL conversations I've overheard between a senior and junior developer without changing much.

I think it doesn't only stem from OSS communities, but is some sort of innate tendency in the types of people who get into software and IT, which dictates that community culture unchecked can become a contest of derision, one-upsmanship, and as you put it, impressive levels of premeditated jerk-ness. I don't know if it comes from the (apparently) increased levels of antisocial personalities in software, or insecurity, or maybe a more base, primal urge to haze the newcomers unnecessarily.


> I sure hope this example response doesn't really reflect the current communication style of FLOSS devs.

Not as pervasive as it used to be, but sadly still present in some places, particularly in communities that don't go out of their way to discourage it.

Personally, I would suggest https://jvns.ca/blog/answer-questions-well/ and https://jvns.ca/blog/good-questions/ , the first of which was specifically written to address the lack of availability of documents talking about the issue without that kind of newbie-unfriendly elitism.


For the XY problem I kind of think it's fine to just help them with Y and let them discover Y wasn't an appropriate solution to X themselves. They might need help again with X, but they'll probably learn more from doing Y and discovering why Y was wrong themselves.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: