Live data from Hacker News

The XY Problem (2014)

xyproblem.info

51–60 of 111 posts

Re: The XY Problem (2014)

#51
post #2

The worst XY problem is knowing you want to do Y, even if its strange or whatever, asking how to do it, and people asking you "why do Y? Do X instead". Happens all the time in Stack Overflow. Just answer the fucking question, and then give the lecture on why you think it should be done that way, or why it shouldn't be done at all...

There are a few people who frequently have this complaint, but I don't think it's a real problem. If you actually need to do Y in a situation where most people who think they need to do Y are wrong, it's not everyone else's responsibility to divine that you are the magical case. It's your responsibility to demonstrate that you actually do know what you're doing. This isn't something you do by discussing how unfair ot…

It is a real problem.

I've never asked a question on Stack Overflow, but many, many times I have entered a question into a search engine, received a Stack Overflow link with my question at the top, and been greeted with several screens full of text none of which is an attempt to answer the question.

In other contexts Stack Overflow's conventions are set up on the understanding that they're trying to produce a curated database of questions with their answers, rather than acting as a technical support forum for individuals. It's a real shame that culture doesn't extend to dealing with this case properly.

(The most common case is where the question is something like "does A provide a function for doing B?" and the correct answer is simply "No".)

Re: The XY Problem (2014)

#52
Many will refer to stackoverflow since that's the reason this website was created in the first place. But one of the most important thing in solving problems in programming is context.

Here is one real question I got in an interview: How do you efficiently sort a table containing a million record in JavaScript?

My question was "in the front end?"

And my answer was it's probably not a good idea to sort that much data in the front end since the user will most likely not be able to consume that much data. Since it was an interview, I explained how to sort the table anyway.

Sorting in the backend makes sense, but even then using a database is more efficient then doing it in JavaScript.

If this question was on SO, I'd probably answer: You shouldn't do that in the front end, explain why. And of course they will get pissed for not answering how.

Re: The XY Problem (2014)

#53
I’ve heard this cited by a couple ctos I’ve worked for. It’s a popular metaphor in the engineering department. I think it’s articulating an important message, but in an ineffective way. The name “XY Problem” is too vague and easy to forget. I prefer simpler messages like:

- What’s the root cause of the problem?

- Is this a solution looking for a problem?

As software engineers, part of our job is naming things well and the “XY Problem” isn’t a great name IMO.

Re: The XY Problem (2014)

#54
I've found that this issue crops up in situations where someone has a new app idea. They don't possess the skills to create it themselves because they're in a different domain.

They ask you about building Y, maybe even Z but they don't want to give X away in case someone steals their 'disruptive product'.

There is too little information to go forward, too little trust. Project doesn't take off.

"the world wasn't ready for X, anyway", they say. Whatever that was.

Re: The XY Problem (2014)

#55
post #2

The worst XY problem is knowing you want to do Y, even if its strange or whatever, asking how to do it, and people asking you "why do Y? Do X instead". Happens all the time in Stack Overflow. Just answer the fucking question, and then give the lecture on why you think it should be done that way, or why it shouldn't be done at all...

There are a few people who frequently have this complaint, but I don't think it's a real problem. If you actually need to do Y in a situation where most people who think they need to do Y are wrong, it's not everyone else's responsibility to divine that you are the magical case. It's your responsibility to demonstrate that you actually do know what you're doing. This isn't something you do by discussing how unfair ot…

>When you're the special case, you have to communicate that fact. It's just wasting everyone's time when you expect others to know it without communication.

I strongly disagree. The base assumption is to take it at face value, and therefore should be to answer it that way. The recommendation that comes after is always the optional part. You're wasting everyone's time if you give the Y only, and optionally the X.

Re: The XY Problem (2014)

#56
post #13

Is there a name for when person A asks B and B thinks A has fallen victim to the XY probem but A really didn't and has indeed an unusual problem at their hands?

I've always called it "The XY problem problem". It's not usually an issue in person but in async messaging it can waste a lot of time if you're not careful. And it goes on forever "The XY problem problem problem" where someone is aware what an XY problem is but thinks this is for sure an XY problem problem so they refuse to spend time thinking otherwise. Then of course "The XY problem problem problem problem"...

In those async situations it's best to provide bits of information for both directions every time, in person it's usually best to collaborate.

Re: The XY Problem (2014)

#57
The XY problem is really a collaboration problem... most discussion media are all horribly transient. When you're explaining a problem you did figure out all that context, but you're guessing as to what context the next person needs. That's necessarily going to leave out things you don't know you need to explain.

At work, I have to go from team to team for some issues, and we're special (yay) because we're an acquisition, so we're doing some very odd things by corporate standards. Even the fact that we have a customer facing application is unusual, and I've essentially renamed our API to be "BackendForFrontend" entirely because each new team assumes our API must be entirely developer facing.

What I've found is it's tremendously helpful to always link back to (and quote from) Jira issues so the necessary context is present whenever I'm asking questions. Whether it's Jira or Confluence, you want to treat problem resolution the way you do development: it's a permanent thing you're building. And I mean permanent, if you solve a problem, you do a write-up for future you.

Re: The XY Problem (2014)

#58
post #43

Earlier quoted context omitted.

There are a few people who frequently have this complaint, but I don't think it's a real problem. If you actually need to do Y in a situation where most people who think they need to do Y are wrong, it's not everyone else's responsibility to divine that you are the magical case. It's your responsibility to demonstrate that you actually do know what you're doing. This isn't something you do by discussing how unfair ot…

> There are a few people who frequently have this complaint, but I don't think it's a real problem. If you actually need to do Y in a situation where most people who think they need to do Y are wrong, it's not everyone else's responsibility to divine that you are the magical case. Well, that's strange, because what they do is still divining. They try to divine "what you actually wanted", even though you asked another…

'a lot of the time the one doing the asking has explicitly said "I know this is unorthodox" or "just answer how to do Y please, don't give me your 'better' options".'

After being burnt by a person who never wanted to do anything in a conventional, well-supported way* and kept making that explicit request, I have given up volunteering my time to appease them.

At work I get paid to say "I know a couple of ways of doing that, but if you could tell me more about your problem and the constraints, I can give a better answer."

*Problem: router and three laptops need to be networked. Conventional solution: ethernet cables or wifi. Requested solution: IP over serial (SLIP or PPP) over USB-serial connectors. Had not purchased USB-serial adapters.

Re: The XY Problem (2014)

#59
post #2

The worst XY problem is knowing you want to do Y, even if its strange or whatever, asking how to do it, and people asking you "why do Y? Do X instead". Happens all the time in Stack Overflow. Just answer the fucking question, and then give the lecture on why you think it should be done that way, or why it shouldn't be done at all...

Yeah, that drives me nuts. It would take me quite a long time to explain the combination of constraints, requirements, goals, and office politics that make Y the thing I actually have to do, yet even when I say as much in the question people still insist that they know my problem domain better than I do. It is maddening.

Don't take the actual problem and pretend it is an easier one you know how to solve just to look smart and/or helpful.

Re: The XY Problem (2014)

#60
post #58
post #43

Earlier quoted context omitted.

> There are a few people who frequently have this complaint, but I don't think it's a real problem. If you actually need to do Y in a situation where most people who think they need to do Y are wrong, it's not everyone else's responsibility to divine that you are the magical case. Well, that's strange, because what they do is still divining. They try to divine "what you actually wanted", even though you asked another…

'a lot of the time the one doing the asking has explicitly said "I know this is unorthodox" or "just answer how to do Y please, don't give me your 'better' options".' After being burnt by a person who never wanted to do anything in a conventional, well-supported way* and kept making that explicit request, I have given up volunteering my time to appease them. At work I get paid to say "I know a couple of ways of doing…

> After being burnt by a person who never wanted to do anything in a conventional, well-supported way* and kept making that explicit request, I have given up volunteering my time to appease them.

That's fine and completely fair. Just don't provide unasked for answers as an alternative.

Post reply on HN