6 ms·
The thing is that oftentimes people who want to do 'X by Y' are actually asking how to accomplish Q. They think 'X by Y' is the solution and get hit by a roadbl
by Eisenstein 3y ago
The thing is that oftentimes people who want to do 'X by Y' are actually asking how to accomplish Q. They think 'X by Y' is the solution and get hit by a roadblock, not knowing that it will not help them and they are wasting time.
This is called the XY problem and is extremely common on tech related forums and mailing lists.
* https://xyproblem.info/ https://xyproblem.info/
- cwillu 3y agoTelling people they're doing the wrong thing is extremely common. People actually wanting the wrong thing is common, but not _extremely_ common, and the mismatch is one of the more rage inducing things on the internet.
- shriek 3y agoOften the better answer is to just explain what's being asked by strongly encouraging them in the Z direction. Sometimes people just want to understand what's happening behind the scenes rather than just looking to solve for Y.
- berkes 3y agoBut that's a different question. And should be asked different. "I'm trying to learn foo.js and attemt to do so by porting Tetris to it. I know foo.js is a terrible option for a game. So. How can I write to the canvas from foo.js?" Is often answered properly, if only because to many it's a nice puzzle. "How can I write to the canvas fro foo.js?" Is different in that it will attract a lot of people explaining that foo.js deliberately did not allow writing to the canvas, because Z"
- dan-0 3y agoThis is part of the problem. You know your constraints, other people do not, but like to assume they do. So you end up having to write a defensive argument about your problem rather than just plainly asking your real question. This may help less experienced engineers not understanding their problem set, but for a more experienced engineer it's absolutely obnoxious to think of all the ways to defend my question so I don't have to deal with a rush of "oh but you should do this instead" answers getting up voted that don't actually answer my question, then asking to accept the answer. To one set of users it's possibly helpful, to another it's useless if not also condescending, often condescending to both sets. The bottom line is now, SO is so filled with these types of responses, I can't expect to get a very specific question answered, which is really the only reason I'd ask a question in the first place, so why use it? There are plenty chat groups now via Slack and discord in my field where I can get much more direct answers. People aren't worried about getting down voted for a bad question, people aren't giving low quality answers to boost their points. So for me, SO is practically dead except for the occasional obscure error message that I can query for there.
- berkes 3y ago> So you end up having to write a defensive argument about your problem rather than just plainly asking your real question. My experience is that it's not so much a defensive argument, but context. My example was poor in that it could be misread as a defensive argument, sorry about that. I meant it to show how adding some context changes the question. Because, in programming, it is all about context. AKA that "It Depends" meme.
- axblount 3y agoThe issue is that sometimes poeple just want 'X by Y'. To get a question answered, you shouldn't have to list every constraint and design descision that led you to that point. Comes up all the time when people ask how to do things in bash/sh. I know there are better tools for the job, but this is the one I have.
- Eisenstein 3y agoSince I apparently did a terrible job explaining it (the link does a much better one) -- it is when someone has a problem that they are trying to solve in a way which will not solve their problem adequately or at all -- it is not when they are using the perceived wrong tool for the job.
- lelanthran 3y agoAnd what all the replies are telling you is that the most XY problems are misdiagnosis. Explaining what the XY problem is to people who are telling you about it's high false positive identification is, itself, an XY misdiagnosis. Your reply is an example of what people are complaining about - you are addressing the issue you wished was asked, not addressing the issue you were presented with.
- xyproto 3y agoSometimes people ask questions like "how do I shoot myself in the foot and still have a working foot", though. Questions are not always reasonable. A question is not always "pure" either, but can embed incorrect assumptions.
- yarekt 3y agoI do see both of your points of view. There are some good answers on SO that capture both. They first explain why it’s infeasible, talk about a better approach, then lastly give pointers on how to achieve what is asked regardless using their best reasoning. Think it just depends on the quality
- floren 3y agoYou know what's at least as common on SO? "I don't understand the thing you're asking, so I'll pretend it's the XY problem and tell you about something I do understand"
- ideamotor 3y agoI’m not convinced anyone interacting on SO can diagnose something like this. The act of breaking down a problem to a tiny part so you can post it kinda guarantees this scenario. But I think it will always be up to the user of SO (not the poster or answerers) to make the real judgement on what is useful. Often I think SO is useful to use as a bunch of puzzles folks solved. You gotta decide if they are relevant.
- SOLAR_FIELDS 3y agoJust some random musings about Stackoverflow: SO is at its best when it’s actual error debugging IMO. When you google some specific error whoever else has the similar error it’s right there. I feel like GitHub is replacing this more and more though - I often get the GitHub ranked specific error higher than Stackoverflow these days. Usually you get better discussions on the GitHub issues too, for a multitude of reasons. Two off the top of my head: 1. all of the people working on the stuff related to the issue are very close by 2. the moderation is not nearly as heavy handed as SO. ChatGPT is also much better than SO as well if you can give it enough context and the thing you are working on wasn’t built on stuff released after 2021 I also really like Stackoverflow for current event type stuff, like black swan type events. One recent example is when google’s Paris data center was on fire and infra guys were helping each other out trying to get systems online. All of this combined means that StackOverflow the forum is probably on its way out though. They made the mistake of taking VC money and the model hasn’t really proven profitable so they have really made some poor decisions to please the vc overlords. I won’t miss Stackoverflow much other than nostalgia unfortunately - better alternatives have arrived. Seeing the decline of all of the other Stackexchange sites kind of sucks though. There aren’t better alternatives for many of those
- yarekt 3y ago
- zulban 3y agoAlternatively, people might have to use X and Y to accomplish Q because of their organization or team. If it's technically doable, there should be a solution and explanation for that X and Y problem somewhere.
- _3u10 3y agoLike how to use a database as a queue, which generally works much better than any queuing system I’ve ever used, except ones that use redis as the database engine for the queue. I’m sure if you’re twitter Kafka is actually a better solution, for everyone else, it isn’t.
- msla 3y agoThat can be infuriating. Want to host videos on a laptop (which has a big SSD) and stream them to a Pi (which is attached to a big screen) over a LAN? Hey, here's a post about how to host videos on a Pi and stream them to a laptop! Upvote and share! My point is, you don't even have to be trying to do something all that strange for people to apply the XY Problem logic and refuse to help you. (Solution: NFS mount and a patient understanding that the Pi cannot play certain kinds of video, so you'll need to transcode some of them first. See? Nothing bizarre, but surprisingly outside-the-box given what I could find online at the time.)
- casey2 3y agoEverybody is aware and have read esr etc. The point is that people who are asking X by Y want to learn Y, with accomplishing X as a side goal at best. It's funny that you call wanting to learn Y a waste of time. Is it because you believe Z is a superior way of doing X? Why do you believe that? Experience, science or mathematical proof?
- deleted 3y ago[deleted]
- tunesmith 3y agoPart of this is because problems (X) are complicated and people just as commonly demand the "simplest possible example" (Y) that demonstrates the problem. So people ask how to do Y, and then others ask why on earth they would do that. One common example I've run into lately, as I've been reading about state machines, is people asking how to implement a simple react component as a state machine, and others objecting to the premise of the question since using a state machine for a simple react component is obviously a bad idea.
- placesalt 3y agoMy assumption whenever I see that behaviour in a response is that the responder simply does not know the answer to the question asked. It’s fine, I think, to answer a question and then suggest a better method. It’s presumptuous in the extreme to dismiss a question with some pseudoacademic neologism.
- lelanthran 3y agoThe trouble with SO that I've seen is that there are more false positive identification of the XY problem than false negatives. IOW, any time you think you have spotted an XY problem, you're probably wrong. And that's the problem with SO moderators and regulars. They classify everything as an XY problem because it allows them to answer the question they know the answer to rather than answer the question that was asked.
- jason-johnson 3y agoSure, but the issue is that SO was used largely for people working in companies with arcane rules. I can’t tell you how many times I’ve gotten one of these annoying “don’t do X, do Y” when I already know this. I have to do X for some reason, I don’t know how to do X because I do Y when given a choice and now no one will answer how to do X because someone killed interest in the question by apparently answering it. I use whatever points I get to downvote these answers. The thing people don’t get is: when you answer on SO you’re not answering that poster. You’re answering anyone who will ever have this question. It’s quite arrogant to assume it will be an XY for every single person forever more. The proper way to answer is to answer the question exactly as ask and then insert your “but you probably should be doing Y instead” at the end.
- underdeserver 3y agoDisagree. Doing things the right way is BETTER. If you can't, you should add a bit to your question saying "I know the standard way is to do Y, not X, but because of reason Z I can't do it."
- jason-johnson 3y agoAgain, you’re not answering the person who asked but every person who ever will. Some of them will be asking because the “right way” is not an option in their situation.
- pasc1878 3y agoYes but the right way should be the answer unless it is explicitly stated why they can't use this. Most readers will be able to use the "right way".
- jason-johnson 3y agoNo, the best thing is not assume you know better than anyone who will ever ask this. It’s good to mention what the right way is and why but your answer should always include the answer to the question exactly as asked at a minimum.
- kerkeslager 3y agoLOL. It's not "called the XY problem" just because some Dunning-Krugerite decided to make a website on a budget TLD. Here, I'll coin a name for a problem I see much more often, which is called the XX problem: 1. User has problem X, and asks for a solution for it. 2. People viewing the question decide that the original user actually has problem Y. 3. Those people tell the original user that they actually want to solve problem Y, condescendingly flame the original user for not asking about problem Y, and if they have the power to do so, edit the original user's question to be asking about problem Y. 4. Those people use poorly-thought-out pop-social-psychology to justify their shitty behavior. 5. The original user still doesn't have a solution to problem X, and they really needed a solution to problem X all along. It is not without irony that examples of the XX problem are sometimes also examples of mansplaining.
- Eisenstein 3y agoI understand your frustration but honestly the tone and style of your comment is dismissive and condescending. It strikes me that you are complaining about people treating others high-handedly and without understanding by epitomizing that attitude in your own post.
- kerkeslager 3y ago"You're saying your problem is (X) people don't answer questions, but have you considered that your problem is actually (Y) that your tone is condescending and dismissive?" You realize that it's dismissive and condescending to ignore the problem I'm describing and respond with an assumption that I'm unaware of the tone of my post, right? Pot, meet kettle.
- Eisenstein 3y agoI'm not ignoring anything, and this conversation has gotten strangely emotional for people responding to me. I joined this thread when it had a few comments and explained what an XY problem was. I don't use stackexchange and I am a little bewildered why people are accusing me of being condescending.
- sznio 3y agowhich you can discuss in the comments below the question, instead of polluting the answers.
- rjmunro 3y agoYou can't discuss in the comments unless you have enough reputation. This is IMHO the absolute stupidest feature of Stack Overflow.
- ndriscoll 3y agoI actually finally made an account this year to leave a comment on this question[0]. I'm not familiar with what or why curricula are what they are so I can't really answer the question, but as a math teacher it'd be helpful for the OP to know that calculus and linear algebra are deeply related; the derivative of a function is the best linear map (i.e. matrix) that approximates it! For practical purposes, calculus is a toolbag to turn (intractable) nonlinear problems into (tractable) linear ones. But apparently I can't comment as a new user so I guess the discussion will just be "because calculus classes use matrices in examples". [0] https://matheducators.stackexchange.com/questions/26417/why-do-we-teach-linear-algebra-in-precalculus-classes https://matheducators.stackexchange.com/questions/26417/why-...
- barbie2023 3y ago[dead]
- PurpleRamen 3y agoIs it SO's purpose to make assumption about the intention or context of questions? I would say no, and that it's even harmful, as it prevents the quest-giver from learning the flaws in their solutions on their own.
- rerdavies 3y agoThat's unkind, and doesn't really address the nature of the problem at hand. What's the name for the "I don't want to use a sledgehammer to solve a problem that should be solvable with a screwdriver" problem? Or in this case, the "spinning up 300 lines of code to integrate an XML parser vs. a dozen lines of code based on regexes" problem. For reasons that are unclear to me, XML parser libraries tend to be painfully difficult to use (speaking from personal experience with 4 different XML parser libraries). I don't think it's a surprise to anyone involved that an XML parser is going to solve the problem.
- dspillett 3y agoIf doing X by Y is possible and will achieve Q, then the best way to respond to these questions is either of: 1. To do Q that way you would to <solution, or at least pointers to how to find the solution elsewhere> but you will likely it far more efficient/easy/whatever to do <something else> instead. 2. Q can be achieved far more efficient/easy/whatever by doing <alternative>, but if you are stuck with using Y then try <solution or pointers as above>. Of course this relies on you correctly deriving that they are trying to achieve Q, or them explicitly stating the fact. Maybe instead they are trying to get to K.