Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    72comments
  2. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    39comments
  3. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    42comments
  4. San Francisco Onion Futures Company(onionfutures.com ↗)
    62comments
  5. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    403comments
  6. Apple M6 Pro Achieves the Highest Single-Core CPU Score in Geekbench 7(geekbench.com ↗)
    14comments
  7. Typesafe-computer-use drives a Mac toward a goal for 1/50th of a cent per step(github.com/awlevin ↗)
    43comments
  8. Cloudflare Quick Tunnels(cloudflare.com ↗)
    278comments
  9. SDCC – Small Device C Compiler(sourceforge.net ↗)
    17comments
  10. Science Is Open Software(jepedersen.dk ↗)
    35comments
  11. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    12comments
  12. How to Write with an LLM(sockpuppet.org ↗)
    324comments
  13. Saving another 100TB of RAM(cloudflare.com ↗)
    69comments
  14. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    30comments
  15. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    5comments
  16. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    84comments
  17. NASA-IBM Lunar Foundation open-Source Geospatial AI Model(usra.edu ↗)
    2comments
  18. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    104comments
  19. Goroutine Leak Profiles(go.dev ↗)
    2comments
  20. OpenJev(openjev.com ↗)
    262comments
  21. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    88comments
  22. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    69comments
  23. Minimal Phone 2(minimalcompany.com ↗)
    220comments
  24. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    12comments
  25. Veronese's Dogs(publicdomainreview.org ↗)
    discuss
  26. Suppress vulnerabilities applying Kubernetes context to scans(github.com/alegrey91 ↗)
    1comments
  27. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    59comments
  28. Inside ZCode: Silently uploading your Git history to the cloud(ferstar.org ↗)
    98comments
  29. Cyclomatic Complexity in C#(ndepend.com ↗)
    19comments
  30. Stepfun Step 5 Preview (LLM): On AA Pareto frontier(artificialanalysis.ai ↗)
    2comments

The XY Problem

68 pointsby 11y agoxyproblem.info
70 comments
11y agoHN ↗

Anyone who has worked a computer help desk for more than a week knows this all too well.

11y agoHN ↗

Anyone who has used an computer help desk knows the reverse problem all to well:

   A: "My sharepoint workflow is broken again, 
       Can you put me through to the sharepoint guys,
       they helped me yesterday with the same problem."
   B: "Have you tried turning your computer off and on   
       again?"
   A: "No, but this is problem with sharepoint". 
   B: "Have You Tried Turning It Off And On Again!" 
   A: "Ok, ok, hang on."

    15 Minutes later (big corporate machines can be slow)

   A: "Didn't help"
   B: "Ok, we'll reinstall your machine. I'll send you a 
       technician"
   A: "NO, no, no, nevermind"
   A (lying voice): "It suddenly seems to be working again"
11y agoHN ↗

Why, yes, yes, I have tried that. Again? If you insist, please wait. Bam! Done! This machine is sooo fast.

11y agoHN ↗

I used to work in a tech support shop for desktop, laptops and other devices a few years back.

I had to once explain a furious customer, why their newly purchased desktop doesn't have internet(They had no internet connection). Basically I had to talk to them about how internet works.

11y agoHN ↗

What would you call geeksplaining answers, the YX Problem? ("I want to do X." "No no no, you want Y." [If I wanted Y, I'd have said 'I want to do Y.'])

11y agoHN ↗

Yes, because we need another negative preoperative targeted at our community.

11y agoHN ↗

Considering it's a pretty well justified one, I figure the incentive TO TRY NOT TO DO THAT will be worth it.

11y agoHN ↗

You can't acknowledge the prevalence of the XY Problem and expect geeks not to act on it.

11y agoHN ↗

Oh, absolutely. The overcompensation the other way is a pain in the backside, though, and reminds me why people don't like nerds much. (And I say that as one.)

11y agoHN ↗

You can acknowledge the prevalence of the XY Problem and expect geeks to act on it in a manner which is not presumptive and condescending.

Geeksplaining involves the presumption that the geeksplainer knows what the specific inquirer wants better than the inquirer because of the geeksplainer's presumed superior general knowledge of the relevant domains.

Even where the latter presumption is correct, it often doesn't justify the former presumption, so its always best to validate an belief that the questioner may be experiencing the XY problem rather than assuming that is the case.

Its fairly simple to do, provides an opportunity for learning, is generally socially more acceptable, and provides a better chance of actually resolving the inquirer's actual problem.

11y agoHN ↗

If I experience the XY problem with 90% of the people I try to help I'm not going to walk through it with 100% of people because an even smaller portion of the 10% might get their feelings hurt. That's a waste of my time as well as the time of most people I'm helping.

They can solve their own problems if they wish to be that selfish with their time.

11y agoHN ↗

Plus, that sort of presumption is simple human nature. Targeting geeks specifically is just perpetuating an unfairly negative image.

11y agoHN ↗

While I am by no means one to claim that typical geek behavior is always correct, could it be the case that geeksplaining is ultimately inseparable from the positive aspects of the geek personality (even if we can mitigate it to some degree)?

Also hashtags, particularly negative ones, have less to do with actually bringing about social good and more to do with social status games[1]. What I consider to be one of the defining traits of geeks (and I should hope be characteristic the HN community) is our disdain for social status games[2].

#hashtagsareforsheep

[1]http://www.arnoldkling.com/blog/playing-the-status-game/ [2]https://medium.com/@maradydd/when-nerds-collide-31895b01e68c

11y agoHN ↗

[2] Was a fantastic article, thanks for the link.

11y agoHN ↗

Did you mean pejorative? In which case "negative" is redundant, as pejorative also implies negativity. #wordnerdsplaining ;)

11y agoHN ↗

This is perhaps at least as prevalent. Sometimes people really do want to do X.

If you're nice, always answer the question as asked, and then speculate about better solutions to possibly related problems.

11y agoHN ↗

This behavior used to be common in IRC, where there are really no consequences for being a dick. In IRC, my experience was generally: ask question, spend 5 minutes justifying why it's a reasonable question to ask, then maybe (or maybe not) get an answer.

I think StackOverflow does a pretty good job of incentivizing people to give helpful answers, so I haven't seen this behavior as much there. Even when the person asking has flawed assumptions, the answers tend to steer them politely in a better direction.

11y agoHN ↗

And sometimes, I started off wanting to do X, thought of Y as a dumb way to do X, figured out how to actually do X (it's Z, you don't need to tell me), and now just have a lot of idle curiosity about Y for its own sake, and what other X'es it potentially could be useful for. This is how most of my forays into Ruby metaprogramming started, for example.

More generally: there's tons of documentation on what to do if you've got a particular problem. There's little-to-no documentation on what you're most empowered to do now that you've got a given tool. For example, I would expect a section in the awk(1) documentation detailing what problems fit awk(1) best, and what problems are better left to simpler tools like sed(1), or more complex tools like perl(1). Or, for another example, I'd love if every API function in an SDK came with some examples of idiomatic usages of that function that justify its inclusion.

But since such docs aren't helpful in heads-down pants-on-fire problem-solving mode, they never get included in standard places or required by documentation standards, and instead only get written as asides in people's StackOverflow explanations of how they solved a given problem, or as long paragraphs of prose half-way through a chapter in tutorial books. (In fact, such paragraphs are frequently the only value in such books.)

11y agoHN ↗

And opposite of this is to saying something sensible like "Can we stop for a minute and find up what your final goal here is? What do you want in the end of this process?"

11y agoHN ↗

A large amount of programming problems are not getting a program to do a certain thing, it's that nobody knows what that certain thing is they want it to do.

11y agoHN ↗

This is stackoverflow.

"I want to draw a square in an HTML Canvas"

"Why?" "Why not use python?" "Circles are better than squares, just saying" "It is not possible to draw a square usign that language, it was not designed to do that" "It depends on what type of screen you're using" "Are you sure you want to draw a square in the screen?" "How do you define a square?" --> "10 Downvotes, closed as not constructive"

And later, but only if you're lucky:

"c.getContext("2d").rect(20,20,150,100).stroke();"

11y agoHN ↗

Link?

StackOverflow certainly has its issues but absurd hyperbole like this only makes your argument weaker.

11y agoHN ↗

Oh goodness yes.

"You don't NEED a car, I use four shopping trolleys bolted together with an outboard motor. It's so much better." G+ post: https://plus.google.com/111502940353406919728/posts/DKDCbDGr...

And past discussion on HN: https://news.ycombinator.com/item?id=9084152 'My buddy and I call that "I asked how to use a ladder, you told me to take the elevator" syndrome. I'm picking apples!'

It's typical mind fallacy in weird people who don't realise how non-normative they are.

11y agoHN ↗

This is especially bad when you are posting in a Q and A forum like Stack Overflow and I see it happen constantly to myself and others. A year down the line if I search how to solve X problem I may not even want the same end result as the OP of the SO post and then nobody has even solved the original problem, just suggested alternatives that are useless for me. If I make a post, someone will inevitably close it as a duplicate of that question. Very frustrating.

11y agoHN ↗

Definitely Stack Overflow, but it's a long-standing problem that existed long before that. "Assume the user doesn't really want what they asked for."

In the late 90s the ultimate condensation of this was to answer any computer question with "install Linux."

11y agoHN ↗

More often than not, newbie questions on SO are XY questions, so I guess it creates a bias. I actually got downvoted many times for answering the actual question when most people thought it was the wrong way to achieve the broader goal, even though it was a correct answer.

So usually if I do it, I try to answer the question, and add my opinion on what the better approach might be.

11y agoHN ↗

I remember a question in asking for what kind of keyboard they could buy to type faster. The question got closed while I was preparing my answer: a stenotype.

11y agoHN ↗

I'm so happy this wasn't about chromosomes.

At least, I hope it isn't. :-)

...I'll see myself out.

11y agoHN ↗

The example I've always used is "How do I remove the blade guard from a chainsaw?" In response to which you should very carefully find out what they're really trying to do. Unless you want their next question to be "what kind of knot makes the best tourniquet?", or perhaps "what's the fastest way to dissolve human bones?"

11y agoHN ↗

This has been described in marketing as the "drill-hole" problem. If you work at a hardware store, and a customer comes in looking for a drill bit, they aren't actually trying to buy a drill bit. They're trying to buy a hole in their wall.

Why would they want a hole in their wall? To put a screw or nail into it. Why would they do want a nail or screw in their wall? To hang a picture.

And now you can start with all kinds of picture-hanging solutions, some of which don't require the screw or even the hole in the wall.

Edit: And this only used 3 of the 5 Whys. https://en.wikipedia.org/wiki/5_Whys

11y agoHN ↗

Let me guess... those picture-hanging solutions the customer really wants just happen to cost more than the drill bit they specifically asked about?

11y agoHN ↗

Well yes, you could run your business that way. And maybe your customer lives in a building with asbestos or old lathe walls or another reason not to drill holes in the wall.

Or maybe the customer just doesn't want to risk putting a nail in the wall because last time it went right into a water pipe and they had to replace their entire entryway - 2 walls, the floor, and rehang the front door.

11y agoHN ↗

Possibly yes. I think that's where the sales culture of the company comes into play. At somewhere like Best Buy I'd expect them to push the most expensive option regardless of other considerations.

Somewhere else where I trust the sales person, I would expect them to present me with a variety of options based on the defined scope of the problem I'm trying to solve, and be able to communicate the pros and cons of each, with "more expensive" being a con that is presumably outweighed by some of the pros.

11y agoHN ↗

Or they're a carpenter who builds houses for a living. "Why are you trying to build a house? It's so much easier to just buy one."

11y agoHN ↗

Sometimes they come in looking for a drill bit, and leave wanting to strangle you.

11y agoHN ↗

I thought this was going to be another post about bro culture in tech and how bad it is. I am pleasantly surprised that I was wrong.

11y agoHN ↗

There's an inverse phenomenon in which the question asker has legitimately found the appropriate solution to their problem, but people are combative and unwilling to help because they insist on knowing the full context, erroneously believing the situation to be an instance of the XY problem. This sometimes leads to a huge digression because explaining the full context is not always as simple as "I want the file extension". I've seen this fairly often on Stack Overflow, where someone is unable to get an answer to their question and instead only gets interrogated. In the worst case, this creates a prominent link in Google results to the question with no answer.

11y agoHN ↗

Can you provide an example of this?

Either way, in a Q&A site like StackOverflow, asking for more context for a problem is rarely an issue in of itself. I find that more often than not people that are put off by that are in fact asking bad questions.

11y agoHN ↗

An example that happened to me recently regarding a git problem:

I had a few changed files in a working directory. I did `git add -A` to stage them. I then intended to `git stash` those changes, but I accidentally did `git stash pop`. I now have two sets of unrelated changes checked out: one staged and one not. I'd like to just stash the staged changes for now, but I don't know how to do that off the top of my head.

Google brings up this answer: http://stackoverflow.com/questions/14759748/stashing-only-st...

The original poster asks pretty much what I'd like to know: "How can I stash only staged changes?" However, he also provides some background. It sounds like he legitimately has an XY problem here, and the top answer is a long discussion of alternate workflows. However, when I search for something like "git stash only staged", I get a very unhelpful answer.

11y agoHN ↗

But that's not what he asks, that's just one of the many questions he puts forth, including this one at the end:

"Am I going about this the wrong way? Am I misunderstanding how git can work in other ways to simplify my process?"

Which is answered correctly. It could have been a typical XY problem but he adds enough background information that he's able to get a better answer. Great question AND great answer.

I'll give you that Google didn't index that question particularly well, but that's not really StackOverflow's fault.

11y agoHN ↗

Or at the Apple store! omg, the number of times I've walked in, gone directly to a sales person to request that they kindly go to the back room and retrieve a specific item for me so that I can give them money and been stalled, interrogated, and counter advised on other products when really I already know what I want and just want them to get it for me.

me: "Hi, I'd like to buy a White 13" Macbook with a 500gb HD and 8gb of RAM. Could you please get one for me?"

sales person: "What are you using it for? Do you browse the internet? look at photos? do a lot of word processing?"

me: confused "um, I do web development and use Photoshop sometimes..."

sales person: "Oh well you need a Macbook Pro then."

me: "no, I can't afford that and the regular Macbook is plenty powerful for what I need. Can I just buy one please?"

sales person: "Photoshop won't run well on the regular Macbook. What you really want it the Macbook Pro. You'll need at least 16gb of RAM and if you're editing photos you'll want a bigger harddrive, not to mention the extra power that comes from the Pro's CPU."

me: "um, I have money in my hand right here that I will give you in exchange for a regular Macbook. Can you please go get one and take my money?"

11y agoHN ↗

The problem is that they don't know that you actually know what you want.

You present identically to the kind of person who is completely non-technical and was mis-advised by a friend of theirs, and who will come back in a week complaining about how Photoshop doesn't run well enough and their hard drive is full.

Apple has decided that they want to ensure that you are happy with your purchase, and part of that process involves the salesperson being convinced that you are buying the right thing.

11y agoHN ↗

You're right that I would present the same way.

I just get frustrated being told what I want, being upsold, and being made to feel as if I don't know what I'm talking about when in fact I probably know a lot more than the sales person who has probably never used the device in question the way I've described I will be using it.

I understand that the general case is better serviced this way, but for someone who walks in knowing the part numbers they want, the added friction is a turn off.

I personally avoid going to Apple stores because of how hard it is to actually buy stuff there. Even grabbing a simple USB key off the shelf is incredibly hard to pay for when the cashiers are all hiding in a sea of other people.

11y agoHN ↗

I'd think "I do web development" should be a sufficient signal that "this person is not non-technical."

11y agoHN ↗

I'd think "I do web development" should be a sufficient signal that "this person is not non-technical."

Not to a systems software developer, sonny.

/s

(Besides, "I do web development" could easily mean "I know what Dreamweaver is". (It's that song by Gary Wright which helped inspire Freddy Kreuger, right?))

11y agoHN ↗

I misread that the first time, and thought "I don't understand... someone saying that they do web development should be a perfectly clear sign that they're nontechnical, especially to a systems developer".

11y agoHN ↗

(Besides, "I do web development" could easily mean "I know what Dreamweaver is".

People who fall into the (negative) category "I know what Dreamweaver is" never describe themselves as web developers, but rather as web designers (and the serious web designers, say, as UX designer).

11y agoHN ↗

If you don't want this to happen, just don't answer the questions about what you are using the computer for.

Just say something like "I don't want to get into that - I know this is what I want to buy."

I've never had a problem with this.

11y agoHN ↗

I've run into this a lot on Twitter, where I can ask a highly technical question and end up fielding demands for more context until I'm defending my most basic design choices to strangers. Somehow the 140 character format makes these tech 'discussions' maximally frustrating.

11y agoHN ↗

I would advise you not to ask technical questions on Twitter ... but what's your real problem.

11y agoHN ↗

On the one hand, this is a real problem. On the other hand, the source linked as "source 2" at the bottom demonstrates just how awful, condescending, and elitist geeks can be when lording knowledge over others. It's not hard to be friendly, and those IRC logs are nothing to be proud of.

11y agoHN ↗

This is only too true, and I have no doubt that this behaviour has deeply discouraged people looking for a bit of help to get them up the learning curve.

11y agoHN ↗

The "helpers" in both examples are awful. Ugh.

Also representative of all of my attempts to get support via IRC.

11y agoHN ↗

It varies heavily by channel. It's impressive what you can produce if you decide ahead of time that your community won't be that way. For instance, the Rust community is exceptional; I would never expect to see anything like this there.

11y agoHN ↗

Note the lack of a response actually helping the person. That's an occurrence of needless snark, not a positive demonstration of how to help someone asking for help.

Here's a better response: "What kind of information are you looking to obtain? Much of that information is already read by the OS and provided via various APIs."

11y agoHN ↗

Even the most seasoned expert could spend a little time getting to know the situation before attempting to jump to the answer. If the user's question is not a precise statment of the issue that needs attention, don't worry, this is normal.

In my opinion, it is up to the community to either tease out the real question and prompt the user to make some edits, or flag/downvote and give some useful criticism.

11y agoHN ↗

Why is it called the xy problem? it is not realy a problem...

It is a description of a common interaction betwean two persons.

11y agoHN ↗

That's a great question. If this is such a common problem, one might reason that people may want to refer to this category of problems occasionally. How would you describe this category of common problems to a third party? Would it take more syllables than "XY Problem"? If so, you've discovered why it can be useful to invent common vocabulary.