1984

What is the XY problem?

When asking questions, how do I recognize when I'm falling into it? How do I avoid it?

Return to FAQ index

Other languages: ES, JA, PT, RU

19
  • 31
    See a PerlMonks post on the same subject.
    – ikegami
    Jul 31, 2013 at 19:34
  • 22
    sad example of the XY problem: stackoverflow.com/questions/2691018/… disclaimer I'm biased there, being the one claiming spotting X instead of solving Y Aug 16, 2013 at 9:12
  • 6
  • 2
  • 8
    Contrast with "frame challenges", which are now discouraged or prohibited on a number of SE sites: interpersonal.meta.stackexchange.com/questions/1495/… Jul 23, 2018 at 15:46
  • 2
    Relevant section in "How to ask questions the smart way".
    – Him
    Oct 23, 2018 at 18:18
  • 14
    @Sridhar-Sarnobat In your analogy, an X→Y question would be something like, "How can one inhibit the growth of cell types xyz by reducing levels of protein tuv in a patient's bloodstream?" because you think that is the only possible cure for cancer.
    – Michael C
    Jun 14, 2019 at 18:40
  • 2
    Hmmmm, so you're saying that that is too specific a question and I should add that the "real" goal is to cure cancer. If so, fair point. Though actually the opposite problem is that questions get closed as too broad in scope. Jun 14, 2019 at 18:43
  • 7
    Can we admit that this is the worst possible name for this problem? The name has literally nothing to do with what it is describing. Like if someone says something like "put the cart before the horse" even if they've never heard it before they at least have a hint that something is backwards (horses pull, not push). I don't have any good ideas for an alternative name though. Oct 16, 2020 at 22:20
  • Sometimes it can be useful to also consider things from a broader context, considering if what's progressing/ resulting is actually tending to a sensible solution
    – M H
    Nov 11, 2020 at 11:41
  • 1
    A: How to write an operating system with regex? B: Wasn't it your childhood dream to be a firefighter? Apr 23, 2021 at 16:32
  • Off-topic: What are good ways to answer such questions when they're encountered?
    – martineau
    Jul 21, 2021 at 17:27
  • 5
    I actually think people have come to believe the “XY problem” is always bad and not enough community effort is put into defending people’s right to ask highly specific questions without having their motives questioned. Sometimes you may have highly specific desires in a situation and you just want to know how a certain something might be possible. You aren’t interested in people telling you, “I wouldn’t do it like that if I were you.” You just want the answer to a certain theoretical question. I don’t know, maybe posters can anticipate when people will say it’s an XY problem Apr 11, 2022 at 8:22
  • 1
    and specify they wish to ask the question as it is and it can be accepted, for example. Not sure. Apr 11, 2022 at 8:23
  • 1
    It's really annoying everyone settled on such a bad name for this. "The XY Problem" says absolutely nothing whatsoever and it's not even unique
    – iono
    Dec 8, 2023 at 2:51

7 Answers 7

2070
+50

What is it?

The XY problem is asking about your attempted solution rather than your actual problem.

That is, you are trying to solve problem X, and you think solution Y would work, but instead of asking about X when you run into trouble, you ask about Y.

The problem

This can lead to frustration by people who are trying to help you solve the problem because by the time you ask about it, the solution that you need help with might not have any obvious connections to the problem that you are trying to solve.

How to avoid it

To avoid falling into this trap, always include information about a broader picture along with any attempted solution. If someone asks for more information, or especially a more specific question, do provide details. If there are other solutions which you believe will be suggested and which you've already ruled out, then don't try to avoid going over them again – instead state why you've ruled them out, as this gives more information about your requirements and helps others provide better answers.

An example

A recent IRC conversation for illustration:

Q: Is there a function to return a string between two delimiters?

B: I don't understand what you mean, but I doubt there's already a function

C: Split and slice

D: Partition too

Q: I tried partition
Q: I was trying to use built-ins to get the number between something like this in a string "attribute1: 50.223, attribute2: 442.1"

D: Why not just parse the string?

Q: I thought there may have been some built in parsing stuff

D: pairs = [x.strip() for x in s.split(",")]; attribs = {k: v for x in pairs for k, v in [x.split(": ")]}
D: There's a few libraries, but simplistic formats are easy enough -- if you don't care about error handling
D: Changing the source to use a well known format, e.g. json or yaml, is preferred when possible

Q: This code actually comes from HTML
Q: But I don't know how to parse Javascript with HTMLParser or whatever it's called

D: Is it merely embedded in HTML, or some mangled version of HTML?

Q: It's embedded in the HTML

D: If it's JavaScript (and that is, except for missing outer braces), JSON can probably parse it

Q: Thanks

D: I didn't say it explicitly: JSON only parses data structures, not JS code

Q: That's all I need parsed is a data structure

The problem is really about how to parse JavaScript data structures, not find "a string between two delimiters", yet it takes quite a bit of time and intuition to get to the real issue.

This is easier to do in a fully interactive chat (regardless of what mode), but on a SE site, where you polish a post a bit, post it, and then have 5-30 mins, or longer, before feedback, it really helps to head in the right direction from the start.

44
  • 285
    IMO XY problems are sometimes useful because the answers could help the questioner understand why their solution wouldn't work, and better understand the original problem in the process.
    – Thomas
    Jul 17, 2012 at 16:26
  • 738
    The easiest way to get to the real problem is usually asking Why five times.
    – Gordon
    Oct 21, 2012 at 17:25
  • 30
    Although, if you start off with Y instead of X, you may have to ask why 10 times (or more, apply the 5 whys to every level?). :-) Nov 30, 2012 at 15:10
  • 126
    Why Y - that's the question to ask
    – user93353
    Apr 23, 2013 at 14:49
  • 150
    To be fair, many times questioners ask about X, and the response is "that's too much, break it down to a small example" and so the poster isolates their attempted solution Y and everybody loses sight of the original problem.
    – PaulMcG
    Jun 23, 2013 at 23:48
  • 139
    Sometmes you are stuck with Y. In my first job I had to modify a webshop. The codebase was a rotten mixof html PHP and js. There were 2 ways to fix problems: Redo the whole thing (declined by boss) add more tape. SO did not really help me there. "How to y?" "Why would you do that?" "Because I have to" "What is Y / Do not do this/ why are are you using {antipattern}?" "Because I have to"
    – Oliver A.
    Jul 9, 2013 at 8:46
  • 119
    @OliverA. Then part of the question becomes an explanation of why you need to do Y. "I need to do Y because legacy/boss/old framework" then the question becomes easier to answer, and more valuable to all.
    – user226333
    Sep 4, 2013 at 5:59
  • 66
    @LegoStormtroopr Except many people don't understand that. They don't understand that sometimes you don't have the luxury of choosing the right approach and just have to band-aid existing code, and the question is closed as too narrow or something...
    – Thomas
    Sep 4, 2013 at 23:19
  • 48
    I made solid attempts to boil all of my questions down to as much of a "Y" as possible. I have no interest in spelling out the entire scope of my issue (especially when working on closed-source proprietary software at my job), and I feel like (excluding dealing with those who insist on traversing up the chain with "why? why? why?") I can get an answer faster by encapsulating my questions off from all context. Feb 14, 2014 at 17:07
  • 16
    It depends on the asker's overall knowledge of the problem space. I agree with n00n, for those more experienced with the alternatives, they may have already ruled out all the possible X's, and now X is a constant, and they just want to solve for Y. It detracts from the question to have to go over all the possible X's that you've already ruled out, and delve into office politics or existing system architecture. Someone less experienced might benefit from having other's review alternative X's and suggest they reconsider that precondition.
    – AaronLS
    Mar 20, 2014 at 13:48
  • 34
    The counter-example: Me: Is there any way to change the current directory in Java? Other: In java you don't need to do that. What do you want to do? Me: (sigh) OK, I have an executable jar for a program that listens to a port and exchanges messages. The jar normally sits in x/bin and the configuration sits in x/conf. So, the program reads its configuration from ../conf. Now I want to run that within a tomcat server by calling the program's main method myself. But I have no control on the server's home directory and "../conf" is not an acceptable place.
    – Florian F
    Oct 27, 2014 at 22:34
  • 34
    (cont) So I wonder if there is any way to change the home directory for one thread. Other: Oh, I see. Well, you can't do that in Java. Me: Why couldn't you tell me that earlier? -- In that case, I asked question X and I was answered question Y (how to use files in Java).
    – Florian F
    Oct 27, 2014 at 22:35
  • 40
    Usually, I do not want people to solve my problem, just answer my question. It can be rather annoying when people try helping with the former rather than the latter. Feb 13, 2015 at 17:31
  • 29
    @NoctisSkytower But most of the time every answer is context-dependent... Q: "How can I do X in C ?" A: "There are 20 different ways, each with its own pitfalls and usecases, you can study them yourself and make all mistakes others have made, or you can tell us what problem you want to solve with this and we can give you the best approach!" Q: "I don't want a lecture just give me any answer, I don't care!" - A: "-.- bye."
    – Falco
    May 18, 2016 at 8:26
  • 24
    Non-programming SE sites link to this answer to explain the XY Problem concept. A more universal (non-programming) example would be even more helpful. Mar 19, 2017 at 22:37
628

The X-Y Problem, as it is sometimes called, is a mental block which leads to enormous amounts of wasted time and energy, both on the part of people asking for help, and on the part of those providing help. It often goes something like this

  • User wants to do X.
  • User doesn't know how to do X, but thinks they can fumble their way to a solution if they can just manage to do Y.
  • User doesn't know how to do Y either.
  • User asks for help with Y.
  • Others try to help user with Y, but are confused because Y seems like a strange problem to want to solve.
  • After much interaction and wasted time, it finally becomes clear that the user really wants help with X, and that Y wasn't even a suitable solution for X.

The problem occurs when people get their train of thought stuck on one approach and become unable to take a step back. Remaining open to having a new look at the bigger picture, these people might find their way back to X and continue searching for alternative solutions.

See "XyProblem" for more information.

16
  • 10
    I also think this answer is a needed addition to the explanation. I read the above, tried to think about my current problem (whether it is an X or Y question), and when I read on to this comment, I got the "aha" moment of understanding that if I would have posted my question, I would have inquired about the Y not the X. The reiteration of my situation could be a mental block focused on how I am solving the problem rather than clearly stating the problem I want to solve is very helpful. Feb 4, 2015 at 20:17
  • 2
    I think it is the users' responsibility. I've meet many times the problem, that I wanted to solve the problem X, and everybody suggested Y and Z. But if I had wanted a solution for Y or Z, this is what I had asked. I find this a little bit embarrassing, not only because the answers I get don't belong to my question, but also because I feel myself underestimated. Since that I intentionally miss any details which could mislead my answerers into this bad way.
    – peterh
    Sep 8, 2015 at 2:02
  • This particular answer reminds me of Maslow's Hammer
    – Kulingar
    Mar 18, 2016 at 20:32
  • 12
    I disagree with the answer. If you do have problem X and state Y as your solution and ask help for Y, what you're doing is establishing your (likely faulty) understanding of the problem. When I want to help someone, I want to know not only their X question, but how it is that they are currently thinking (the Y). Sometimes it's more important to teach how to think than to teach what to think. And the XY problem gives me important clues as to how to approach doing just that. Dec 23, 2016 at 22:58
  • 10
    Actually, admonishing XY problems is particularly noob-unfriendly. And (to pick, oh, one): stackoverflow has been atrocious in this regard in the last few years. I'm holding out that the other programmer centric SE sites don't so irreparably screwup like they did. Dec 23, 2016 at 23:02
  • 7
    @tgm1024 I don't quite understand your comments; the XY problem is not when a user includes their thinking process by giving both X and Y in the question, it's when the user doesn't include their thinking process and gives only the Y because especially in that case it's hard to teach them to think.
    – JiK
    Sep 29, 2017 at 23:04
  • 1
    @JiK, You either identify it as an XY problem or you don't. If you do, then you're well aware of the X. If you don't, then you'd better not assume what the X is, because the presented Y might actually be a validly formed question. Oct 3, 2017 at 12:34
  • 5
    User doesn't know how to do X, but thinks they can fumble their way to a solution if they can just manage to do Y. Sounds like how all problems are solved to me :P . Taken to its extreme everyone should start their question with "I want to improve my life / the world in some way. I was born in 19..."
    – Att Righ
    Nov 29, 2017 at 15:55
  • 6
    Sometimes that's pretty much right. Many years ago, after my Oracle DBA turned to me (his sysadmin) and said, wearily, "Somehow, somewhere, something has gone wrong" I made myself a t-shirt with that on it. It is in many ways a perfect error report because it doesn't make any assumptions that I then have to rebut: it starts off with his problem and lets me drill down through his observations and his expectations to see where the mismatch with reality might be.
    – MadHatter
    Jan 5, 2018 at 9:34
  • 4
    @tgm1024 It's about avoiding wasting a lot of time for both the asker and the answerers. If you are aware of the caveats of a possibly valid Y then you should include that information in your question. Further asking for X will be avoided. If you don't know the caveats asking for X is probably exactly what you need because a solution for Y will not help you very much. It would be noob unfriendly to not point them towards the correct solution and instead leave them with a poor solution.
    – trixn
    Mar 19, 2018 at 18:15
  • 1
    @trixn, I'm not sure where we disagree. However, --->If you do have problem X and state Y as your solution and ask help for Y, what you're doing is establishing your (likely faulty) understanding of the problem. When I want to help someone, I want to know not only their X question, but how it is that they are currently thinking (the Y). Sometimes it's more important to teach how to think than to teach what to think. And their appropriate and valuable XY problem gives me important clues as to how to approach doing just that. May 3, 2018 at 12:27
  • 2
    @tgm1024 That is literally what you already said before. My point was about your statement that admonishing XY problems is particularly noob-unfriendly. Of course it's also a question of how you express your suspicion that a question might be an XY problem. But generally speaking I don't agree that pointing an asker towards that is noob-unfriendly as it might in fact be what he/she actually needs. That's why I usually ask for more information about the use-case. If Y is an easy to answer question I usually answer it anyway with a note that it might not be the desired solution anyways.
    – trixn
    May 3, 2018 at 12:45
  • 2
    @trixn, of course you can point someone in the right direction, and of course you can guide someone toward a new way of looking at something. However, to start with the notion that the question formation itself is somehow wrong is what I'm at strong odds with. For example, look at the hyperbolic quote in the 71 upvoted answer by Jonathan Benn: "Specific to Q&A, the perniciousness of an XY problem comes from the fact that it is frustrating for everyone involved." That is simply nonsense. The XY question is valuable. It's only frustrating for people who wish it to be so. May 7, 2018 at 0:48
  • 3
    Great explanation. RE: "and that Y wasn't even a suitable solution for X", I think that sometimes Y can be a solution for X. But it is not a natural or practical solution.
    – B Seven
    Jul 17, 2018 at 16:59
  • 4
    Imo this is the one which should be on top.No offense on the top answer,but I first read that and it made me scratch my head and then I came down to see this and the answer got crystal clear to me.
    – Sandun
    Jan 25, 2019 at 8:52
134

What is the XY problem?

An XY problem seems to be a subset of the Einstellung effect, where a problem-solver gets stuck on a particular solution and is unable to backtrack mentally to see potentially superior solutions. This psychological phenomenon affects everyone, novices and experts alike.

"Why Your First Idea Can Blind You to a Better One" explains an example from chess where a person wins with a 5-move smothered mate in one game. The next game, the same player fails to see a faster 3-move mate because they are stuck on the idea of a 5-move mate.

Specific to Q&A, the perniciousness of an XY problem comes from the fact that it is frustrating for everyone involved:

  1. The person asking the question asks the wrong question (which is related to their attempted solution rather than the original problem), and then finds it difficult to clarify the question because they are stuck on their own solution. The proposed answers are unsatisfactory because they don't address how to implement the author's solution.
  2. People answering the question find it frustrating because the proposed solution doesn't make sense to them since they are approaching the problem from a fresh angle and are (presumably) not being affected by the Einstellung effect, and they find it difficult to get the original poster to clarify their question.

When asking questions, how do I recognize when I'm falling into it?

For example, you are trying to solve an issue: how to compost your household organic waste. When considering how to solve the problem, you might think of several potential solutions: compost with a municipal government program, do backyard composting, or compost with worms. Let's say that a municipal program is not available and you pick to do backyard composting. You soon end up with a blocker: there are rats getting into your compost, and they're invading your kitchen too! You go onto a Q&A forum and ask, "How do I get rid of the rats in my kitchen?"

You have just fallen into the XY problem! You might get useful answers on how to get rid of pests, but no-one will be able to solve your problem because they're not addressing the source of the problem and the rats keep coming back.

How do I avoid it?

It might be better for you to ask the Q&A forum about how to solve the original issue you were trying to solve. e.g. ask, "How should I compost my household waste?" Then you might learn that you shouldn't compost meat or dairy products in a backyard compost bin because they can attract pests.

7
  • 1
    Interesting how Einstellung effect description is based upon an obvious mistake. Luchin was experimenting how people would deduce the problem from his incomplete and ambiguous description (was he asking for optimization for latency or optimization for throughput?). However he made himself delusioning that he allegedly still was experimenting on "how people come to solutions". That is a referential thing perhaps. Luchin was so focused on his interest, that he failed to notice when he diverted to a very different problem. May 16, 2018 at 9:52
  • 1
    My source was Scientific American, if you object you can take it up with them ;) May 17, 2018 at 12:57
  • 3
    I think a better example from chess would be something like a player being focused on trying to achieve a complicated checkmate with insufficient material, while overlooking the fact they have a pawn which could queen. Jun 10, 2018 at 23:25
  • 2
    IMHO this answer would be improved by mentioning what X and Y are. May 21, 2021 at 18:57
  • 1
    This answer does not answer any of the three questions being asked: what is the XY problem? how to recognise it? how to avoid it? (It mostly seems to answer a different question, "Why is the XY problem bad?") Jan 18, 2022 at 21:56
  • The first line explains what it is: "the XY problem is a subset of the Einstellung effect" By describing the problem in detail, it helps you know how to recognize it. You're right that the "how to avoid it" is only being addressed tangentially. I'll update the answer. Jan 19, 2022 at 19:37
  • The experimenters for the Luchins and Abraham, 1942 paper didn't put test subjects in an information vacuum. The experimenters prompted or suggested ideas to them as part of their experimental design. "The XY Problem", as stated, neglects this, by assuming the problem-solver is in an information vacuum, and the interlocuters are spectators pointing out that they are victims of the Einstellung effect. If "The XY Problem" were about problem-solving, it would emphasize the importance of dialogue in solving problems - not minimizing dialogue, or judgement of what is a "better" solution. Mar 10, 2023 at 15:30
74

Avoiding the XY problem

I argue that you can't avoid it. Not without simply throwing your program requirements at SO and asking them to do your design for you (not recommended).

I argue this because the design process for all software is based on a starting set of requirements "A". From there you say "I can achieve A if I do B and C". From there you say "I can achieve B if I do D and E and I can achieve C if I do F and G". And that continues to the point we say that "I can achieve X if I do Y". We usually do this so fast we don't even think about the process.

So the major problem with the XY problem is that Y is not possible, but you don't know how much of your design to unwind to get back to the X which is possible. You usually don't even know that Y is impossible without actually asking. You don't know what you don't know. Therefore it is unavoidable


Asking Questions where you risk falling into XY

The best thing you can do about the XY problem is to guard against it when asking questions. Still ask the same question but give as much pertinent information as possible:

  • State your problem
  • State what you are trying to achieve
  • State how it fits into your wider design

This will help people identify that its XY and help you much more quickly.


IMPORTANT: Giving Answers to XY problems

In my opinion the biggest problem with XY questions is the (frequently) unhelpful answers they provoke. We will never stop people asking these questions so the best thing is to understand how we can answer them quickly and effectively.

Ironically a lot of these bad answers and responses are given by those wanting to be the most helpful and can be given by some of the most reputable people on the forum / SO.

I've discovered a method of answering these questions which appears to help get round the psychology associated with XY problems and lead the OP of a question to a working solution. The method takes a little longer to answer in the first instance but closes the Q/A loop much more quickly.

I suggest that you answer the question in three parts and give them in the following order.

  1. Answer the OP's question. Even though the OP probably needs something else, never neglect to answer the question they have actually asked first and not the question you think they want answered. In some cases that answer may be "Y is not possible". Too often I see responses (comments) asking "why do you need that?". This gives the OP nothing. If you say "That's going to be really hard. Explain why you need it we may be able to help" then in a lot of cases an OP will simply take the "Y is really hard" and go back to the drawing board... That's fine because you've answered their question and they may well come back with question X themselves.

  2. Discuss the OP's attempted solution. This bit's tricky and takes some thought. But I can't stress how important it is. If the OP has asked for Y and you think they want X then after answering their question (1) carry on to talking about Y (NOT X). What is Y supposed to be used for? How is it not applicable to X? The crucial thing is to carry on talking about the question but move from answering it to providing helpful information. Because after all that's what you think the OP needs. Helpful information and not the answer to their question.

  3. Solve X This is what you've been itching to do and is the whole point of your response after all. You've met the OP on their terms and answered their question. You've helped them to understand the failings of their question and why solving Y is not the thing to do... so now you're completely justified in explaining a solution to X.

Most people are here to learn so parts 1 and 2 of this answer are as important as part 3. But too often part 3 is given on it's own and it is extremely frustrating and patronising to the OP not to mention a lot of OPs will not accept the answer.

Giving this answer also avoids embarrassment when you think the OP has an XY problem when in fact they don't. All you've done is give a little extra information. Simply giving part 3 risks appearing to have not read the question.


Incidentally. Read the question again and read this answer... notice the three parts?

8
  • 1
    As "XY Problem" is a kind of "Use of wrong hypothesis", the Stackoverflow community must to help in show the right hypothesis... This is the focus in your "Giving Answers to XY problems"? Nov 12, 2015 at 7:51
  • 2
    @PeterKrauss In a sense. That is more of an assumption (I agree the community should). I assume that someone answering the question wants to give part 3 - the right hypothesis. The trouble of XY problem lies in the wasted time. So focus of this answer is to highlight that spending time giving parts 1 and 2 up front is not wasted time but actually saves time in the long run. You are right that this answer is generalisable to the Use of wrong hypothesis. Nov 12, 2015 at 9:05
  • Too often the OP takes the answer to Y and runs, without reading on or realizing that Y was the wrong solution to X. Because of this, I'd rather not given them an answer that will be misused. I'd rather risk offending them to get to the correct solution than further contribute to both bad code and flawed logic.
    – Tom
    Aug 14, 2018 at 17:51
  • 1
    @Tom That's fine, in those cases the "you are asking for something that is really hard" or "you shouldn't do this, it's a really bad idea" type part (1) are entirely appropriate. Aug 14, 2018 at 18:42
  • I laughed out loud after I finished reading this and checked back. Excellent answer, excellent observations, excellent leadership-by-example.
    – SliceThePi
    Apr 16, 2019 at 16:20
  • 4
    I would add that the purpose of this site is not just to help the person originally asking the question, but also to create a repository for anyone else who finds the question later. Even if Y is not the right way to do X, it may still be useful in its own right in other contexts, so answering Y can be valuable too.
    – itub
    Jul 12, 2019 at 13:42
  • 1
    This actually answers the actual question properly while others just simply stated facts Oct 21, 2019 at 9:41
  • If I could, I would give this a thousand upvotes. I got a comment on my question which, although it might have been Y, led to comments including higher-level (manager-like) development plans instead of solving the question in hand. Nov 12, 2021 at 13:56
72

The Missing square puzzle problem is a good illustration. It illustrates a simple and universal problem/question/solution process, where "some illusion" causes complications.

There are a self-evident problem — the 1×1 hole in that arises on the second figure —, but the solution is evident only after we know (like an Egg of Columbus)... All people, experts and non-experts, agree that there is a problem.

enter image description here

  • normal user: thinks that
    "there are two equivalent figures, the 'total triangles' in a perfect 13×5 grid...",
    following with the question:

    • problem Y: "Why does the second equivalent triangle have a hole in it?".
  • expert user: think something like
    "oops, they are alike (close in shape), but not perfectly equivalent figures",
    following with the question:

    • problem X: "How to show that they are not perfect equivalents?".

The clever geometry-expert thinks in terms of close in shape geometries.

The normal user thinks, mistakenly, in terms of exact congruence. So, the use of wrong hypothesis, produce ill Y questions.


The "XY problem" as a specialization of the "wrong hypothesis behaviour"

You want to solve the real question-X, and you think in terms of an Y-context, and try to use question-Y. Instead of asking about context X, you ask about context Y.
(as @Gnome noticed above, but using other words)

So, "XY Problem" is only another (more specialized) term to say "Use of wrong working hypothesis". See examples at this question/answer.

2
  • This answer illustrates a typical use case, when "thinking-imperative programmer" ask a question about functional language... The suggested solution: ask in top level. Jul 26, 2015 at 11:24
  • 1
    "Similar" has a specific geometric/triangle technical meaning, that via combining zoom, rotate, slide and/or flip an object exactly covers another. But you use it to mean everyday "close in shape". Your expert knows they the start & end shapes are not technically similar but merely "close in shape". So it would be better if you used "close in shape" & not "similar". What people assume is that there are 2 small & 1 large technically similar triangles & the puzzle arises from the fact that there are only 2 triangles--the small ones--& they're not technically similar.
    – philipxy
    Jun 21, 2022 at 5:33
6

(separated from my other answer because this one has more opinion than explanation)

If you agree that the "XY Problem" is only another (more specialized) term for "Use of wrong working hypothesis", as illustrated and explained here, and similar to the "Einstellung effect" explained here by @Jonathan Benn

We can think in terms of some main situations:

  • Rush situation: the wrong hypothesis is only a language or over-simplification side-effect, that can be corrected by the user with a little more attention, and investing more time editing the question.

  • Normal situation: as in the illustrated Missing Square puzzle, you do not know that your hypothesis is wrong. This is the main situation to discuss here (!).

So let's put focus on the normal situation.


SOLUTIONS/ATTENUATORS

The "XY problem" is a valid problem!

The Stack Exchange question is to show a problem. If my question helps to show that the real problem is my wrong hypothesis, it is OK! It is a first step, and perhaps I will not need any other questions after obtaining the correct hypothesis (and trying to solve by myself).

Example. See "XPath for xml:lang? Testing attribute self axis fails"; the real problem is that @attribute::self does not exist, so it was a wrong hypothesis on the title of the question.

The help/mcve solution has limitations

Stack Overflow's help/mcve rationale: "How to create a Minimal, Complete, and Verifiable Example", can be used to avoid the XY problem.

But the cost of edit (time and attention expensive), and the perception that it is a kind of pollution in your text (a "bad marketing" for the question), are downsides.

It's correct also to simplify the problem and explain with more focus on the point.


Best practice

Train users of Stack Overflow to check if the simplification makes sense. Algorithm for a good question:

  1. Try to create an MCVE.

  2. If an MCVE is not practical, try at least to simplify.

    2.1. Test, check for inconsistencies, simulate the reader… and review. Does your simplification produce something strange, change the context? Review to avoid errors.

  3. Listen to the comments about your question, and try to clarify, try to work editing the question if necessary: if there are people commenting, it is a notice that you can invest more time in your question.

The wrong hypothesis is not self-evident, but when we simplify, we amplify the wrong effects, and it becomes more evident.


PS: On the other hand, when we explain and show all the details, all the context, and check the real point, the assembly of the problem (like when using mcve), the inconsistencies also show with more evidence.

2
  • 2
    It's my experience that the the MCVE creates more XY problems not less. It makes a more pure abstraction by stripping away the context of the original question. That is the X might be contained within the context of the original question but the MCVE will be constructed solely to express Y. Nov 11, 2015 at 23:57
  • 2
    Thanks @couling (!). Yes, as methodology MCVE perhaps is not a "best practice", but is a way to enforce "... explain and show all the details...". Our brain works better after that kind of self-review... You can edit and correct the text, it is a Wiki. Nov 12, 2015 at 7:39
-17

Negotiating a union contract...

The XY problem is relevant to the difference between "interest" based bargaining (X) and "position" based bargaining (Y).

X = the employee's overall take-home pay has been stagnant for the last several years, while their cost of living continually increases; the employee needs more take-home pay.

Y = picking "you will not raise parking fees" as a hill to die on / the only "solution" to X that the employee is willing to accept.

Aiming for Y (taking a position) is aiming for a very specific and limited solution to the problem (X). It cuts the employee off from from the universe of solutions to the problem (X) by insisting that it only be solved in one very specific and limited way. If that way (Y) is, for whatever reason, objectionable to the employer, then there will be a stalemate -- a period of time where there is no solution to X, where a solution has to be acceptable to both sides.

If the employee can aim for X instead of Y, then the universe of solutions remains open / unrestricted, and the employer can be recruited to help find possible solutions to X. (Maybe it will turn out to be OK with the employee to raise parking rates, in exchange for a cost of living raise...)

This interest/position paradigm seems relevant to asking questions on SO, when OP asks for help making their position work. Sometimes you can cut to X by simply asking: "Why are you trying to do this?"; But I wonder if sometimes, aiming for Y isn't just as valuable. How many of us have ever tried to do something, just to see if we could? Anyone here running their own DNS server with some specific type of software for that very reason? :-) Might not be your best solution to X, but it's still interesting...

You must log in to answer this question.