Settings

Theme

YX Problem

sicpers.info

109 points by rkta 2 years ago · 93 comments

Reader

lupire 2 years ago

"YX Problem" aka "geeksplaining" originated right here on HN 9 years ago. https://news.ycombinator.com/item?id=10023951

Also a few other takes based on that comment.

https://csf.github.io/blog/2018/05/01/the-yx-problem/

https://yxproblem.wordpress.com/ (SEO ad farming page?)

  • scj 2 years ago

    "I'm working with a second-party pre-compiled library and don't have a lot of wiggle room. After careful consideration (of both the library and my other job prospects), I want to do $DUMB_THING. Yes, I know it's dumb, but trust me, $SMART_THING is not an option. Unfortunately, $DUMB_THING is not well documented, because it's legitimately a bad idea, so I was hoping someone could fill in some gaps."

    If you ever help someone in that situation, know that you are a hero among programmers.

    • inhumantsar 2 years ago

      I spent 3 hours last night digging into a Linux workstation issue along these lines. the solution was in a comment on a heavily downvoted SO answer.

      the commenter was (unfortunately, inevitably) shat on by a large number of people but it saved me from giving up on tech to live in a cave the rest of my days.

      all I could really do was comment with my thanks but that still felt wholly inadequate.

    • ChrisMarshallNY 2 years ago

      Sounds like a classic Beans and Noses thing: https://archive.uie.com/brainsparks/2011/07/08/beans-and-nos...

      • scj 2 years ago

        I'd say it's more akin to being dealt a bad hand and trying to work through a strategy to play it well.

        Sure, you'd like to have been dealt a better hand. But you haven't, and dwelling on that won't help anyone.

        The problem with this metaphor is that it's easy to describe the contents of a hand. But computer programs are a lot more complex than that, and sometimes it's non-trivial (and possibly NDA violating) to describe why the recommended solution isn't feasible.

        • AnthonyMouse 2 years ago

          > sometimes it's non-trivial (and possibly NDA violating) to describe why the recommended solution isn't feasible.

          It's not just NDAs. A lot of times people are constrained in what they can do for a reason they're not inclined to admit. This is extremely common with office politics or any kind of corruption.

          The boss demands X because Y would mean not getting kickbacks from a particular vendor, but she can't tell you this so she has to make up some hogwash. Now you have to go ask someone how to do X, and you know the boss's justification is ridiculous but you also know that you can't list "because the boss has issued a rattlebrained mandate" as the reason in a written communication with your name attached to it, so you have to submit the hogwash as the reason or make up your own.

          Then the person answering the question points out that the proffered reason for doing it is absurd, which everybody already knows, but nobody can admit it.

          In large organizations this kind of thing happens so often that people become conditioned to not even question it and just follow orders, and then it happens even when there isn't a hidden underlying reason, because there is now a culture of not questioning stupid decisions.

        • drngdds 2 years ago

          And even when you can explain your whole justification for doing Y, it often doesn't help. In my experience, longer your question is, the more likely it is that people will just skim over it and misunderstand it. Or they'll argue against your reasons for doing Y and try to convince you that you really should be doing X anyway.

      • theamk 2 years ago

        That's great if you can afford to do this.

        If someone asks, "I've downloaded SUPER SQL EXPLORER PRO how do I connect to prod database so I can add a few columns", then you don't sit back and wait, you take actions fast, including contacting manager and revoking access if needed.

        In a less extreme situations, you might have a shared task with quick deadline, and someone else went off to the woods instead of making a working design, increasing load on their teammates.

      • Dylan16807 2 years ago

        That's way too dismissive. It's still assuming XY, but taking a different route to handle it.

        Often it's not XY, for real.

      • antifa 2 years ago

        That's a great way to be condescending and unhelpful to someone struggling with an edge-case or wrong-sized feet.

  • plagiarist 2 years ago

    My favorite is the version where X=!Y, as can often be seen on Stack Overflow when people specify a constraint that some answers just ignore.

  • inopinatus 2 years ago

    When all you have is a hammer, everything looks like a thumb.

  • joshu 2 years ago

    it didn’t originate here. i remember it being used on IRC #perl and years before this. here is an example from 23 years ago: https://groups.google.com/g/comp.lang.perl.misc/c/rCCGCpipjH...

  • ShamelessC 2 years ago

    Why did you think that was the first usage? The conversation linked even implies they’re referring to a previously known concept - no one said “I call this the “YX problem”. Merely reiterated a common cultural touchstone.

    • Dylan16807 2 years ago

      > no one said “I call this the “YX problem”

      Right, they said "What would you call [it], the YX Problem?"

      Is there a meaningful difference as far as coining a term?

      The idea of "what if this phenomenon happens in reverse" existed, but adding a name isn't nothing.

  • brudgers 2 years ago

    I think it predates HN.

    This is “What is the XY problem” on Meta-StackExchange from 2010:

    https://meta.stackexchange.com/questions/66377/what-is-the-x...

    The top answer links to this wiki page that goes back to 2006:

    https://mywiki.wooledge.org/XyProblem

    First revision here:

    https://mywiki.wooledge.org/XyProblem?action=diff&rev1=1&rev...

TillE 2 years ago

I've had this issue a lot, usually secondhand (search for a solution to X, find a bunch of forum posts that scold about X being bad and wrong even though it is absolutely the correct approach in my scenario).

But realistically, any kind of programming Q&A forum is absolutely flooded with beginners and dolts and literal children, so if you've somehow decided to be a power user that answers a million questions, it's probably reasonable to assume that they really want Y.

  • lolinder 2 years ago

    It might be reasonable to assume of the original asker, but it's unfair to the dozens of people who follow in their footsteps and find their question years later.

    I've lost track of the number of times that I need to X (even though I know Y is an option that is probably better in most circumstances) and had to dig through dozens of "do Y instead" answers before finally finding something helpful. More often than not the original asker actually accepts Y as the answer and thanks the responder, but now the search space for X is polluted with yet another non-answer.

    I agree with another commenter downthread—the best response when you think you're looking at an XY problem is to answer both X and Y. That way you can be sure that the naive asker is set on the right path (if they are in fact naive), but you're still logging the answer to X so that searches for it don't become useless.

    • falserum 2 years ago

      > but it's unfair to the dozens of people who follow in their footsteps and find their question years later.

      Exactly.

      In similar fashion: duplicate questions are alternative ways how people can find the question. (I.e. Useful for later searchers)

      • MisterSandman 2 years ago

        I can see you’re getting downvoted but I 100% agree. StackExchange is so, so bad at this - they will close a question because there’s like a 75% overlap with a different question.

        • falserum 2 years ago

          Duplicates could be useful if they are properly linked with earlier question/answer. (Something like “import answer” could be useful)

  • dap 2 years ago

    Even in a forum that's mostly beginners, you can still construct responses that are appropriate for both beginners and experienced users. There's no need to assume.

    • zettabomb 2 years ago

      Simple questions are free and make everyone's lives better. "Hey are you sure you need X? Have you tried anything else?" (or something to that nature) takes seconds to type. The answer isn't much longer, "Yes, I tried A, B, and C but they don't seem to be appropriate for my problem. X meets my requirements but I can't get it to work" (again, or similar). It's beneficial to the responder (don't spend unnecessary time answering the wrong question), beneficial to the asker (perhaps it really IS an XY problem, and you can help show them a better way, or if it isn't they don't get frustrated with someone mistakenly answering Y), and better to all future visitors who now understand enough context to determine if reading further is going to help or not.

      • whatevertrevor 2 years ago

        Agreed. What is usually not useful is making implicit assumptions instead of communicating explicitly.

camel-cdr 2 years ago

I think a good answer to a question that you think is an XY problem, should answer both X and Y.

When there is an XY problem, Y might be the better option, but most of the time understanding the solution for X is still very interesting.

Also, if somebody can answer Y, but not X, are they really qualified enough to answer the question?

  • kevincox 2 years ago

    The problem is more often that I can answer X, but it is very long, convoluted and odd. Because the question is based on bad premises. If you ask Y it saves us both a lot of time because I can give you a good answer without going down path X in the first place.

    • koala_man 2 years ago

      My favorite example that I see pretty often is "In posix grep, what's a regex that matches lines that don't contain the word `test`?"

      The X answer is a lecture on language theory including the construction and inversion of finite state automata. Absolutely interesting, but a long and dense chapter in a CS textbook with no practical applications.

      The Y answer is `grep -v test`

      • falserum 2 years ago

        > The X answer is a lecture on language theory including the construction and inversion of finite state automata.

        To be helpful and educational, one must describe/illustrate the failure mode of X. For example just demonstrate how unwieldy pure regex is for more constrained question like “regex to check if there is no ‘ab’ within 3 char string”. “a[^ab].|.a[^b]|[^a][^a].”. (Solution complexity grows with length of the string within which we are searching)

        • a1369209993 2 years ago

          > (Solution complexity grows with length of the string within which we are searching)

          No it doesn't. It's something like '([^a]|a[^b]|a$)*'.

          In general it scales like '([^a]|a([^b]|$)|ab([^c]|$)|abc([^d]|$)|...)*' (ie, quadratically with the length of the needle, if I haven't overlooked a optimization), but the complement of a regular language is regular, and fixed strings are always regular, so it's always a pure regular expression (including being independent of haystack length).

          • a1369209993 2 years ago

            > It's something like '([^a]|a[^b]|a$)*'.

            And, proving that any curt correction of a silly error will likely contain its own silly error, I think that should actually be '^([^a]|a[^b]|a$)*$', since grep defaults to searching rather than matching.

          • falserum 2 years ago

            Thanks.

            Good to know that there was no repealment for Cunningham’s law.

      • kuratkull 2 years ago

        It seems to me that your Y is actually the X. An actual Y would be to suggest they use Perl instead.

        • gwd 2 years ago

          The X asked for a regex, not a command-line parameter. It's possible that the user was actually using POSIX grep, in which case Y ("don't invert the regex, use this command-line parameter to invert what's done with the result of the regex") is the answer they actually need. It's also possible that they're using some other tool, which they know implements POSIX-compatible regexes, but doesn't have an easy way to invert the usage; in which case the user really does need an answer to X (i.e., a way to invert the regex).

        • Xcelerate 2 years ago

          And how do I enable Perl regex for e.g., the Snowflake SQL regex functions? ;)

          I’m laughing because I had this exact XY problem. Searched StackExchange for a potential workaround for a certain regex I wanted to match, and the answer said to use Perl regexes instead. Cool... except as far as I can’t tell the database we use doesn’t support that. I rolled my eyes and went to look at other search results.

    • wokwokwok 2 years ago

      You think, in your opinion, that Y is both what the asker wants and needs; but this is empirically and objectively false in some cases, unless you are infallible (unlikely).

      ...and here-in lies the problem. It's the hubris that "I am right" that leads people to answer Y instead of X.

      Y and X are maybe related, but ultimately, X is empirically what was asked. It's your take that Y is the solution that the asker wants instead of X.

      Maybe you are right, sometimes.

      It's very unlikely you are always right.

      Therefore, it's likely, that sometimes when you do this, you're actually not helping; the answer is X, and your comments about Y are both wrong and unhelpful.

      Come on, are you never wrong? We're all wrong sometimes.

      At the very least, you can often start answering X (a long partial answer) along with 'and this is why Y is maybe a better solution...'

      I suggest that the 'race to be the first answer and get karma for it' is the motivator that drives people to do this on some platforms, rather than any actual desire to help / any actual competence in the question domain / actually knowing what they're talking about in many cases; a partial answer to X is never that time consuming.

      ...it's just more time consuming than not answering it at all.

      • lmm 2 years ago

        > Therefore, it's likely, that sometimes when you do this, you're actually not helping; the answer is X, and your comments about Y are both wrong and unhelpful.

        > Come on, are you never wrong? We're all wrong sometimes.

        Whatever you do you'll always be wrong sometimes. Answering Y is usually helpful, that's why people do it.

        > I suggest that the 'race to be the first answer and get karma for it' is the motivator that drives people to do this on some platforms, rather than any actual desire to help / any actual competence in the question domain / actually knowing what they're talking about in many cases;

        This is, if anything, even more true of people who answer the literal question asked while giving no thought as to what the questioner actually wants.

        > a partial answer to X is never that time consuming.

        Disagree. Often X really is something possible-but-difficult; you can give a "partial answer" in the sense of "I'll need a research team and five years", but that doesn't really help anyone.

        • a1369209993 2 years ago

          > Often X really is something possible-but-difficult

          If "I'll need a research team and five years" is actually a valid answer to X (eg: X="How do I determine if a given jpeg image contains a bird?", at least... uh, five years ago), then it's a valid answer for the purposes of answering both X and Y. The problem is people giving incorrect/non-answers like "you shouldn't do that", and then pretending they answered the question because they also gave a (presumed for the sake of argument to be correct) answer to some different question, Y.

        • wokwokwok 2 years ago

          > Answering Y is usually helpful, that's why people do it.

          That's just opinion. :)

          The indisputable fact is that it is sometimes unhelpful and wrong.

          Is it more harmful to be partially wrong in answering/trying to answer a difficult question, or wrong about helping at all?

          Still, on the bright side with the rise of AI helpers, most people don't need anyone to answer trivial questions going forwards, and actually, it becomes (opinion, mine) increasingly clear that answering hard questions is significantly more valuable in a post-AI world.

          /shrug

          I think, most of the time, answering hard questions is actually not as hard as people imagine them to be.

          The answer is usually either 'that's not possible because of blah' (eg. platform restriction) or 'doing it that way is hard because of blah, but if you wanted to, you would look up these things to do it'.

          ...but often people are too lazy to add that to their answers.

          5 years is total utter hyperbole. Obviously.

          Spend 10 minutes trying to answer X before you say 'do Y'. 10 minutes. It's such a tiny investment of time, you're just being lazy if you don't.

          • lmm 2 years ago

            > That's just opinion. :)

            Well sure, but do you actually disagree? IMO a lot of people are overthinking this and skipping the obvious explanation.

            > The indisputable fact is that it is sometimes unhelpful and wrong.

            Everyone, and every answering strategy, is "sometimes unhelpful and wrong". (So are AI helpers). So that's not a useful way to compare approaches.

            • rezonant 2 years ago

              Well if you can answer both X and Y, then in the case they really wanted X the answer is helpful, and in the case that they overlooked Y, the answer is still helpful. I'd say that's wrong less than either X or either Y

              • lmm 2 years ago

                Sure. But cost/benefit; you can always spend more time and effort making a better answer, but at some point life gets in the way. And sometimes you're not up to answering X.

            • wokwokwok 2 years ago

              There is no situation where a genuine attempt to answer both X and Y is unhelpful and wrong.

              Even if it's wrong, it'll still be helpful to see an attempt at answering both the question and your interpretation of a solution to the problem.

              Only an incorrect and wrong attempt to answer an imagined problem (ie. Y) is actually useless.

              • lmm 2 years ago

                Why? If an attempt is always helpful, then an attempt to answer Y is always helpful. It's true that sometimes you might be wrong about Y being the real problem, but answering both X and Y doesn't solve that - sometimes the real problem is Z.

      • kevincox 2 years ago

        You are arguing a strawman. I'm not saying that I am guessing Y and that in my opinion it is what they need. I'm saying that if the asker provides Y it will often turn out better for both of us. I never once suggested that I would answer something that they didn't ask.

  • thayne 2 years ago

    Another valid response if you think it is an XY problem is to ask for more information. Or even do all three: "Here's how you do X. But if you really need Y, then you should do Z instead. What are you actually trying to do here?"

    > Also, if somebody can answer Y, but not X, are they really qualified enough to answer the question?

    Maybe. It could be that there just isn't an answer to X. Or the answer is "you can't", so the author tries to give an answer that is more helpful, in case the asker actually wants Y (it would probably be good to explicitly explain that though). Or maybe there are multiple ways of interpreting X, and the answer interpreted it a different way than you expected.

  • plagiarist 2 years ago

    It is truly classy when people do both. Very respectful of the questioner while still conveying that there might be a better approach. You're right, in almost every case it is interesting to read each approach.

civilized 2 years ago

Both problems come from hiding assumptions in an attempt to focus on a conclusion, which is presumed to be the only relevant information. That's not a bad thing to do in general -- we always have to be selective what we communicate. It's only bad if your hidden assumptions are wrong.

  • cjbgkagh 2 years ago

    I wouldn’t say bad as I would maybe say sub-optimal but unavoidable - assumptions have to be made. I’m assuming the ‘bad’ comes from the cumulative ‘microagressions’ to which I would prefer people just toughened-up a whole lot.

    Quite often the person asking questions is a newcomer and is on the path to making the same newbie mistakes we all made when we started. Knowing what question to ask is half the battle.

    I got pulled into HR by a young intern for not answering her stated question and instead suggested she was taking the wrong approach and offered an alternative approach. It was clear to all involved that my assumption was indeed correct but she still took it as a condescending slight. It seemed like to me she was looking for reasons to take offense.

    I stopped helping her or other interns after that, let the young’uns figure it out for themselves. I figured my time would be better spent shielding myself from the consequences of the coming competency crisis.

    • civilized 2 years ago

      I would like to offer a different perspective than the one you are getting from a couple other folks. Not being in the room it's hard for me to be sure, but my guess is that both of the following are true:

      1. The person you tried to help could have taken your suggestions in the spirit intended, rather than leaning on a threatening or insulting interpretation of them.

      2. You could structure your response in a way that would make your good intentions clear and make the other person more open to the information and less likely to feel threatened or slighted.

      It could even be that, from some reasonable perspective, the other person is 100% to blame for the negative outcome, and still, at the same time, you have the ability to avoid such things in the future by adjusting your approach. It's like defensive driving: I'd rather not have accidents at all, and if it's possible to avoid them, I adjust my driving style accordingly. Regardless of how poorly others drive and how much to blame they'd be for accidents I prevented by being defensive.

      That way, we can hopefully get the enjoyment of helping others, and the gratitude of those who are more inclined to be grateful, without the trouble of unintentionally angering those whose response is more... complex.

    • falserum 2 years ago

      I bet that problem was not the answer but how you did it.

      • cjbgkagh 2 years ago

        Well the end the result is now I don't answer questions, except occasionally on HN. The end result of all this mansplaining / geeksplaining is nosplaing. I just hope we can make AIs advanced enough to take over before the wheels fall off.

        She went on to accuse a bunch of other people of some other nonsense so it was really a matter of time rather than the manner in which I answered questions.

        • bmer 2 years ago

          I think this is a win-win for everyone involved.

          In the highly likely case where your answers are crap, the world is spared yet another person who thinks they are well-suited to add to the mess. In the equally possible case where your answers are not crap, you are spared having to deal with people who cannot appreciate your campaign medals.

          nosplaining is great. Welcome to how most of us live.

          • cjbgkagh 2 years ago

            "In the highly likely case where your answers are crap" hahahaha.

            I think there is a natural impulse to want to help others but there has been a shift of dynamic where the flood of newbs with their entitlement and hostility to those helping them has pushed knowledgeable and helpful people away. And now the newbs can only talk to each other where they can reinforce each others ignorance with the false perception that what they know is correct because they perceive it to be the consensus.

            The suggested requirement to avoid the microaggression is to answer both X and Y even when most likely X is irrelevant on the off chance that it isn't. According to some I'm not even allowed to XY probe and must answer both aspects in full to avoid offence. Sure; let me do more free work for you. I used to have some of my code available as open source but got sick of the barrage of questions by those who fail to do even the modicum of effort to understand what they're doing and then get mad at you when you don't provide the exact worked solution to their problem.

            People no longer fail to learn, other people have failed to teach them. It's a complete abandonment of personal responsibility. Sure, at this stage I'm shouting into the wind but I think things are going to get really bad really quickly and I feel sorry for those who will have to endure the consequences.

            • bmer 2 years ago

              I disagree: I don't think there's a pure natural impulse to want to help others. It's usually coated with a bunch of other stuff, inadvertently (e.g. when dealing with attractive members of the opposite sex: wanting to prove our value; or when dealing with requests for help within an organization beyond what our job descriptions require: we hope that people will recognize that as we stand we are "undervalued").

              I don't think the suggested "requirement" (?) to avoid microagression is to answer both X and Y. I think the suggestion to avoid microagression is to avoid using the term microagression in the first place.

              Another one would be to recognize that you are fully within your rights to not offer help where it's not your job to offer help. No one cares if you choose not to answer support requests for your open source project, nor will the world suffer for it.

              On the flip side, you can't expect those you do help to care enough to show you respect for your help either. If being respected and/or people making special allowances for your tone is something you do care about, well, then don't help to begin with. Contrary to our self-centered worries, the world will go on fine without us. It might even go on better without us; who is to say, after all? Most certainly not us.

              Here's a piece of advice I keep hearing from people who are more powerful than me (Usually, these were also people older than me, but that is becoming less true as I grow older myself.): you're owed absolutely nothing. No one is.

              Most human beings on this planet live in full awareness of that fact. So its only a matter of time until those who don't, end up learning that too.

              • cjbgkagh 2 years ago

                You're strawmanning, I never stated that the impulse was pure - i.e. solely to help. I would suggest that if helping is discouraged that the proportion of those doing it to self aggrandize will increase as for those people the signaling effect increases with the added risk. Then you're left with an environment the vast majority of those who remain are doing it for self aggrandizing reasons which is probably why young people start with that as a prior assumption.

                Lol, meta-microaggressions that'll fix microaggressions.

                I'm aware I'm within my rights to keep quiet and have stated as much. HN is the last place I continue to post and eventually I will stop posting here as well. I do this for my own sake, I live in a cloistered environment protected by wealth, and others who are similarly wealthy, where it continues to remain the 1990s. I engage with people outside of my environment to help myself better understand the cultural phenomenons I see occurring around the world, make a few statements for posterity, and perhaps let some people know it wasn't always like this.

                "So its only a matter of time until those who don't, end up learning that too." - yes you will win, but what are you winning really. If future generations cannot learn enough quickly enough in order to produce sufficient value to support their lifestyles then why would they remain entitled to a future brighter than those from 3rd world countries who are quickly catching up with the knowledge work. How do they expect expected to stay ahead of AI. The 1st world middle class is going to be sacrificed on the altar of financialization - I see young people clinging to hope that the specter of communism will come and save them. They can't all be commissars and baristas - someone has to man the work labor camps.

                • bmer 2 years ago

                  Wanting to help others isn't being discouraged. You helping others is being discouraged (apparently? that's your claim, because you believe the market has expectations that you believe should not apply to you?).

                  Anyway, are two different things.

                  > "Lol, meta-microaggressions that'll fix microaggressions."

                  I have no clue what this means. Do you?

                  > "yes, you will win..."

                  What? This isn't "me", winning. This is the age-old reality of "you are owed absolutely nothing", and that "if you are owed something, you will know because people will be paying you for it". This is capitalism at its core.

                  When it comes specifically to helping others:

                  1) you are either paid for it by an employer, in which case you ought to do it based on the employer's requirements, and all extraneous complaints are null and void unless

                  2) you create your own business off of your expertise, where you get to choose what precisely you offer people, and people get to choose whether they value your expertise; or

                  3) you do it for free, because you get something out of the experience which is entirely unrelated to how others treat you. If you're doing it for free to establish yourself through "loss-leader" tactics, but you cannot turn your losses into said leadership, then you can't complain. The world considers you to be an overvalued commodity. End of story.

                  Welcome to reality! You can rage if you'd like. The world will not care. There's business to do, money to be made, and entertainment to be had in the form of people who think they are worth more than what the market prices them. Either they are right and they eventually get movies made out of their life stories ("rags to riches!"), or they are wrong and they serve as living comedy (which can also be converted into money).

                  This is hardcore Reaganomics I am suggesting, not "youth-communism" (lol, wtf? where does that even come from...). Either you are rich enough to earn respect, or you are sensible enough to know you're not worth any. Which one is it?

                  If you believe you can be rich enough to be shown respect, then why are you wasting your time commenting on HN, instead of turning the apparent coming-doom into a business opportunity? The wealth you earn this way can then be convert into concrete respect if you so choose?

            • falserum 2 years ago

              Might be abit too dramatic regarding consequences.

              Mentoring is force multiplier in virtualy all scenarios, but there is a fraction of people who are self starting eager readers, that will manage to get out of the newbie stage on their own (as long as they are not actively sabotaged).

              Btw. You sound overburned. Btw2. I find being selective of whom to help, very healthy for me.

legends2k 2 years ago

The author laments about the relationship being asymmetric when they think it is symmetric. The fact that someone is teaching someone makes this asymmetric, no? Mentor-Mentee relationship is asymmetric. Giver-receiver relationships are asymmetric. Nothing wrong about that as long as both respect each other.

  • re 2 years ago

    Also asymmetric about the relationship is that the asker usually gets something more measurably valuable out of the exchange (getting unblocked on a problem, often one that they're working on for money) whereas the answerer is frequently doing it only out of a sense of altruism, for the satisfaction of helping others, or for their own entertainment.

barryrandall 2 years ago

I see filtering out low-quality answers as the cost of asking for free advice on the internet. As long as the responses aren't abusive or malicious, they represent someone giving their time and effort away for free in an attempt to help a stranger.

dsp_person 2 years ago

I run into "XY Problem" the most when I'm googling X, usually the argument is in the arch linux forum or maybe reddit. It can be infuriating when yes I actually literally have my reasons for doing X, and seeing them dismissed. And then it's extra funny when someone does present the solution (Yes, thank you person!) and then the next response from an admin is something like "Learn not to necrobump. Thread locked". Uhg. Honestly, anytime I see the word necrobump, the info that was shared actually helped me out a lot. Such a dumb rule. I don't care about getting email notifications from 5 year old threads. A better solution for the hard-line no necrobumpers should be a auto-unsubscribe after N days feature. Or since they are such expert authorities I'm sure they could rig up a script or email filter to moderate their own feeds.

  • dpkirchner 2 years ago

    > And then it's extra funny when someone does present the solution (Yes, thank you person!) and then the next response from an admin is something like "Learn not to necrobump. Thread locked". Uhg.

    See also: stalebot, scourge of GitHub.

jannyfer 2 years ago

Omg. I think this concept kind of explains a phenomenon I’ve noticed on Hacker News.

An article gets posted about X. But the top comment is about Y. People pile on to the easy topic of Y.

creatonez 2 years ago

I'd say this is firmly a less useful formulation than XY. With wise troubleshooting practices and a good back and forth between the learner and the instructor, most of the time when the instructor is worried about a possible XY, they end up being correct in their intuition.

dmkolobov 2 years ago

This article definitely brings to mind hobbyist embedded programming forums, Arduino, Raspberry Pi, etc.

  • theamk 2 years ago

    I think those are usually an opposite example? There are a lot of unusual solutions in those areas that people ended up doing for absolutely no reason, simply because they didn't know better.

account42 2 years ago

> Frequently the situation is more symmetric

Not at all. Usually the person asking has some need and the person answering does not. Seems a bit entitled to complain that the person answering provided the anser they though would best help you instead of the answer you wanted.

renewiltord 2 years ago

All of this isn't a problem any more. Claude/ChatGPT is far more helpful than any human. Except, for some reason, in matters of kernel code where there is no substitute for some god-damned message list somewhere in nowhere.

vendiddy 2 years ago

Does anyone have a concrete example of this to help me understand this better? I found the article a hard to understand because it was abstract with X and Y.

Would be nice to see an example with X/Y filled in!

  • elevatedastalt 2 years ago

    Let's say you are using an electric space heater to heat up your room and have some questions about the best place to keep it in your room.

    You go to an HVAC forum and post the question. Instead of answering the question (or saying that it doesn't matter where you place it), people instead start lecturing you about how electric heating is very inefficient, and you should instead use a Heat Pump, then give you lots of details about heat pumps which are completely irrelevant to your specific issue.

sodapopcan 2 years ago

I kind of just YX'd myself in a way. I read all the comments without reading the article first. My brain autocorrected "YX" to "XY" and I kept thinking, "What the heck are all these people on about?? They seem to talking about Y when they mean X(Y)..."

ronnier 2 years ago

Also see https://xyproblem.info/

bena 2 years ago

People who descend into this are kind of missing the point of the XY problem in the first place.

The XY problem is to get all parties involved in thinking about the actual goal and how to achieve that goal. By presuming you know what the Y is already, you're kinda falling to the XY problem yourself.

Very rarely do we need to, for example, draw a square for the sake of drawing a square, there's usually a larger problem we're trying to solve.

Using this: https://news.ycombinator.com/item?id=10024188 as the example.

None of those responses is actually relevant to solving the XY problem (if it exists). The user wants to draw a square with HTML Canvas. Before suggesting any course of action, we need to know why he wants to do that.

  • re 2 years ago

    The amount of information needed before answering a question can and should vary depending on the question itself, depending on the context. There is zero harm in giving an answer about how to draw a square with HTML Canvas, even if the asker actually has a different problem they're trying to solve—they'll probably figure that out pretty quickly. On the other hand, if the question is "How can I encrypt and decrypt credit card numbers for storage in my database", or "What ratio of bleach to ammonia is best for cleaning mold", some inquiry about the broader problem is warranted.

  • OJFord 2 years ago

    That's my reading too, it's not really 'YX' problem (that doesn't even really make sense to me by analogy?) - it's when someone claims you have an XY problem and No actually you do need X, you just didn't bother to go into why because it's not relevant/none of their business/etc.

    I think this frequently comes up in the form Well actually the idiomatic way to do this is not X but X'; but X really was needed by OP due to some unstated constraint. (Because why would you state it, especially if you're unaware that you're doing it a remarkably unidiomatic way. You're just asking how to do what you're doing.)

  • blt 2 years ago

    Your response seems to assume that "XY-probing" responses are equally good as straightforward responses, but they aren't. If your question is solid, it's really annoying when others try to XY-probe it instead of answering it.

    Therefore, before giving an XY-probe response to a question, one should think about the probability that the question hides an XY problem.

    If the question is about drawing a square, there's no good reason to assume it's an XY problem. Better to just answer the question.

    If the question is about something strange that should never come up in typical applications, maybe you can start XY-probing towards the "real question".

    • legends2k 2 years ago

      Graphics programmer here. Many times drawing a square isn't a great option in games; particularly when there are many. The usual approach is blitting them squares from raster/image data which is a mere copy of texture data into frame buffer. If you're experimenting with Bresenham's line drawing or writing a game is the right probing question here.

      • Dylan16807 2 years ago

        If you don't know how to draw a square then it's probably not the time to worry about that level of efficiency. Figure out the method that keeps your development and learning pace as high as possible.

  • zamadatix 2 years ago

    We need to know why to optimize or refine the suggestion but nothing really says we need to halt any suggestion until that point.

    For almost all real world questions a more neutral mix of "Well, you could try ${x} by doing ${xthings} but it might also make sense to do ${y} or other things depending on the ultimate goal" actually gets better results faster than a pure XY or YX approach.

  • dap 2 years ago

    There are always a million problems people are trying to solve.

    I'm trying to draw a square because I need to draw a button. I'm trying to draw a button because I need the user to be able to click it. I'm trying to make something the user can click so they can use this feature. I'm trying to make this feature so the user can do ... I'm trying to enable the user to do ... so my product can be successful. I'm trying to make the product successful so my company can survive. I'm trying to help my company survive so I can keep getting paid. I'm trying to get paid so I can feed my family. ... It goes on.

    The XY problem, at least as I usually see it phrased, implies that there's exactly one problem up the stack that the asker should have asked about. There's not. It's impossible to know how much context would be useful and it depends on how much help the asker wants. Sometimes, I just want to draw a square and don't want help redesigning the feature. Maybe sometimes I _could_ use that kind of feedback. I think what's important is to meet people at the level they've asked the question, and _maybe_ suggest that it might be the wrong level. But so often respondents just obnoxiously insist on redesigning the feature when I just need to draw a square.

  • Pannoniae 2 years ago

    It can be counterproductive though.... reminds me of quite a few OSS projects where the user asks "how do I do X?" only to be met with "you shouldn't do X, <insult>"

retrocryptid 2 years ago

"if all you have is a nail, anything can be a hammer."

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection