Hacker News new | past | comments | ask | show | jobs | submit login

This reminds me of the “XY Problem” framing [0], a concept that has been very helpful over the years when communicating with customers about feature requests.

Many people can imagine how they’d solve an immediate problem, but never pause to examine whether or not this solution is ideal, or generalizes beyond a specific situation.

Another phrase that comes to mind is “fall in love with the problem, not the solution”. If you understand the problem space deeply, either many solutions can emerge, or one solution emerges as clearly the best place to focus.

In my years as a product manager, it surprised me how many PMs don’t think this way, and just tack on feature after feature, convinced this is the best thing for the customer, when often the thing they need is not something they know how to ask for.

- [0] http://xyproblem.info/




> This reminds me of the “XY Problem” framing [0], a concept that has been very helpful over the years when communicating with customers about feature requests.

It also ruined stackoverflow, since replies which ignore the question and assume that the OP really meant something else end up being so much easier to write/vote on than an actual answer.


Many, many things are wrong with stackoverflow. Insisting that every discussion be factual and opinion-free pushes you deep into the McNamara fallacy of believing that things that cannot easily be quantified don't matter.

It's a site I sometimes use but dislike intensely.


I think the absolute hardest thing to get information on is "I have XYZ problem, I am aware of solutions A, B, and C. What is the best solution among these, what are the trade-offs between them, and what solutions am I not aware of?". Now, this is just a truly difficult question, but Stack Overflow solves that problem by forbidding such questions, which is understandable, but I think also a shame. At one point in time, I thought maybe Quora would try to fill this gap, but they went off in some other direction that I never understood. Most other "social" things (reddit, etc.) are discussion rather than Q&A. Or they are blog posts, where the focus is usually on solution A, with solutions B and C presented only for contrast, because solution A is what motivated the author to write the post.

I kind of want Wirecutter, but for technologies.


Yes, that would actually be much more useful to me than what stackoverflow is. A vast number of the questions found that can be easily answered by RTFM and/or doing some direct experimentation. The harder ones would be more useful.


Yeah. I think it's also why chatgpt (and copilot, etc.) actually did turn out to be a strong SO competitor, because it actually can do a pretty good job on these factual questions.

But unfortunately it's pretty bad at this other kind of judgment-based compare-and-contrast question. It's especially bad at the "what other solutions am I not aware of?" part, because it isn't kept up to date.


Isn't Bard kept up to date?


Good point, maybe I should try using that more.


You seem to be trying to replace a basic peer-review of an engineering design that typically involves a paid team with advice from poorly-known, pseudonymous strangers with reputation crowd-sourced from a web site's user-rating system.

Frankly, I think that's asking a bit much. If you want a high-quality peer review of design proposals to bounce ideas off of others and discuss tradeoffs, you need a team. Maybe something like a meetup group or mailing list for a specific technology, programming language, or industry sector. But it goes beyond one-off Q&A, and I can also understand why Stack Overflow, with a goal of becoming a repository of perpetually useful knowledge that is general enough to be useful for anyone into the indefinite future, does not want to host such project-specific discussions.

Why not just develop in the open and collaborate explicitly with other parties also working on the same project? What you're asking for sounds close to something like the various special interest groups and public discussion of improvement proposals you see in things like the Python programming language or Kubernetes, or discussion on LWN about specific challenges the Linux kernel team faces.


I don't think that's asking a bit much.

If it were, then there'd be no reason to prohibit such questions... people wouldn't ask them, because they would never be answered. The only reason to prohibit them is because they would get attention/answers where none was desired.

The trouble with StackOverflow, is that what the users want and need does not match what the owners want. The owners want something monetizable, something that can look elegant and beautiful (hence the PR release a couple of years ago where they were positioning it as some "encyclopedia of computer science" or whatever). They figured out that the users could be denied what they want, while still (slowly) creating what the owners themselves wanted.

> and I can also understand why Stack Overflow, with a goal of becoming a repository of perpetually useful knowledge that is general enough to be useful for anyone into the indefinite future, does not want to host such project-specific discussions.

I'm not sure I'd characterize them as wanting that, but if they did... how would that be at all useful to anyone except CS undergrads trying to get someone to do their homework for them? Literally nothing of what people ask there day to day will be generally useful into the indefinite future. What do you want to ask, that will be useful 40 years from now? Neither anything language specific, nor anything domain specific will be relevant to anyone not a historian. Even the cutting edge stuff today will have long since been wrapped up into some blackbox library that everyone will use without unerstanding it.

If you were correct, SO could never be anything more than some useless little dumpster where the same 5 people whine n about the quickest sort algorithm.


All true, to which I'd add:

It's like giving a big sales force a financial incentive: you have to be careful because they'll just game it, relentlessly, all day long. They won't care about your corporate priorities -- just getting that incentive money.

On SO, people get "reputation points." Those "same 5 people" game that system like salespeople winning that prize. You answered a question? They don't want you as a competitor, so they downvote you. You don't like their answer? Too bad, you don't have enough reputation points to downvote them.

To pick another analogy: they're like high school cheerleaders voting on who can become one of them.


> You seem to be trying to replace a basic peer-review of an engineering design that typically involves a paid team with advice from poorly-known, pseudonymous strangers with reputation crowd-sourced from a web site's user-rating system.

Yes that's a correct interpretation! In fact, I almost wrote something like "even though this is forbidden on SO, it's one of the most common kinds of conversations within and across teams in the workplace in my experience".

I also agree with pretty much everything else you said about how these discussions do happen in project-specific ways on mailing lists and such.

But I disagree that a generic version of this couldn't exist. (Maybe it can't anymore though, because everyone will try to do it solely with AI now because that's what's hot.) I think before the existence of Stack Overflow, you could have said all these same things about the kind of questions that appeared there. Prior to having a good place for getting factual answers from "poorly-known, pseudonymous strangers", it was necessary to get those answers from professors or or teammates or consultants or independent research, just like it still is for these more subjective questions.

I definitely agree that this is a more difficult genre than factual Q&A, and I don't begrudge SO their choice in what content to focus on, but I think it was a choice to go that route, not an inevitability.


This is the most techie social media site I use, and I see constant complaints about the other techie social media site, StackOverflow. Why doesn’t someone test the theory and come up with some competition?

I think this is normally an unreasonable ask (when we’re complaining about, like, cars, clearly that’s not in this site’s aggregate wheelhouse). But I mean this is a website about start-ups, full of techie web-devs complaining about a website that they all use.


I think it’s because Stack Overflow is so close. It does 80% of what you need with a bunch of major warts.

But nobody wants to duplicate the 80% just to solve the warts.


> Why doesn’t someone test the theory and come up with some competition?

ChatGPT Has entered the chat.


I don't see that as a bad thing. Stack Overflow only wants to focus on questions that have a verifiable answer. Other types of questions still matter, they just don't matter on Stack Overflow.


Like anything, it needs to be applied appropriately, and I agree that blindly redirecting every request to this framing is not helpful.

But the number of times that it is helpful has been pretty high for me over the years. This probably depends a lot on the customer’s own ability to comprehend the true nature of the problem. I worked in the enterprise/B2B space, where a significant number of requests came from people not technical enough to fully know what to ask without some deeper exploration.


Agreed. But sometimes, especially if you know about your problem domain, it feels like asking "how do a I keep water out of my basement" and all the answers are "simply rebuild your house at the top of the hill."


It's a matter of vastly different costs, in that case: the solution to the modified problem costs much more to solve than the originally stated problem. The trick is avoiding such a large gap, hopefully with a breakeven that comes in the foreseeable future, if not immediately.

For example: how do I repair water damage on my ceiling in a way that's quick enough to do it after every storm? You mean how do I repair my roof so I only have to repair the ceiling one more time? It's more upfront cost to do both now, but the breakeven is only a small handful of storms away, which is palatable enough to get serious consideration. If the breakeven was (for some reason, hypothetically) 20 years away, actually figuring out how to make quick work of repeated ceiling repairs might be more desirable.


Also when, for example, someone suggests a strategy that is useful in scenario X, but because it can be problematic in scenario Y, they get a bunch of replies warning them about that - even though they had no intention of advocating applying it in scenario Y. That’s also a kind of XYing - “oh don’t do that, it’s bad if you re trying to Y…” when we’re not, we are trying to X.

For example, when someone says they think the XY problem model is a useful framing when evaluating customer feature requests in product design, they are talking about using it in scenario X.

But inevitably they will attract a bunch of replies telling them how bad it is to apply the XY problem approach when answering questions in a technical Q&A forum. That would be scenario Y.


"You keep mentioning XY problem, but you really meant the AB problem, and that answer is ......"

That's it in a nutshell. And concur with this de-framing non-answer as one of the leading causes of bad StackOverflow solutions.


Stack overflow started out with a lot of Microsoft ecosystem people, eg. Joel Spolsky. I worked at Microsoft in 2008 and this kind of de-framing was a bit of a corporate cultural obsession there at that time. You'd report a bug internally and PMs would ask you what you were really trying to do ... It was frustrating when you wanted people to just fix their shit. Instead people would universally treat you like you didn't know what you were doing and really meant to ask something else. I saw this trait a lot on SO around the same time.


Apparently I was too subtle so let me put a lampshade on it.

The replies to the post which said that the XY problem approach is useful in product development, which are talking about XY reframing being a problem on stackoverflow are XY reframing the parent post.

They are doing exactly what they decry.

The smell of irony is apparently not as thick in the air as I thought it was.


For what it’s worth, I saw what you did there and appreciated/enjoyed it.


Even if you know that the strategy is problematic in scenario Y, other viewers of the reply may not; you are only one of the many potential consumers of the response. Isn't it useful to flag the potential gotchas of a given approach for a naive reader?

I feel like many of the complaints Stack Overflow users come down to this: in many users' minds, the site is a Q&A forum, while the SO team wants it to be an authoritative repository of technical knowledge.


Most people ask how to make some absurd hack when there is an easy and proper way to solve their problem.


Sometimes what you think is an absurd hack is still what I want to do after having thoroughly considered all other options. It's infuriating in those cases to end up on a Stack Overflow question where someone wanted to do exactly what I want to do, and the only answers are redirecting them to other solutions that I've already considered and ruled out.


The huge majority of people asking questions on SO are noobs and most likely haven't thoroughly considered all other options.

If they did, they should say so in the question.

The majority of people answering questions are also noobs, and this should be taken into account. Experts in their domain don't need SO, and so don't go there at all.

When I was writing my thesis, years ago, SO was already basically useless to me because nobody could solve any of the problems that I was encountering then.

I just use it when I can't be bothered to look up stuff in the documentation, but I see it mostly as a resource for people who are learning or are very early in their career.


This feels like you're saying "SO is and should remain useless". SO is populated mostly by inexperienced developers because the community is hostile towards experienced developers, and part of that hostility is this XY-ing. I also don't find SO to be useful, but I wish it were.

> If they did, they should say so in the question.

You're operating on the assumption that the purpose of SO is for an asker to get an answer. The extremely strict duplicates policy suggests the opposite: the goals and motives of the original asker are essentially irrelevant, because only one similarly-phrased question is allowed ever. If their question doesn't get answered this time, it will never be allowed an answer.


It is very useful for noobs.

Once you become an expert you spend much less time on SO because you just don't need it. So what are the chances that when you do need it, another expert in that specific thing (of which there are maybe 20 in the world) will also at the same time need to use SO, and stumble upon your question?

It's like using tinder in a sparsely populated area.


There’s more general concept of perception here that is worth thinking about.

Users can get awfully confused by generic, misleading or overly technical error messages. So they call/write you and confuse you even more.

“There is something wrong about X.” Where X is some misinterpreted partial of a message. This only gets cleared up if you let them walk you through what happened step by step and/or examine logs etc.

Error messages are an important part of a UI. No matter if they’re user errors or internal errors.

There are always errors that you don’t foresee and just need to display generic messages for. But even then there should be a very clear, short(!) description and a unmistakable call to action.


Ugh, not 15 minutes before this I was testing a new yet to be released version of my companies software. And while testing I get an error message like

"Cannot do X with upload"

Number one this is a behavior change and should not have been changed in the first place.

But number two, all the error had to say was "Cannot do X with upload because application is set to Y"

The first one generates a support ticket, the second one gives a legitimate reason on why the failure occurred and what they can do about it.


The XY problem:

> This 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.

This is not really true though.

The time spent to answer is not wasted. There are people searching for it via Google, e.g. how to get the last N characters from a variable, and they will find the correct answer.

The time spent by the asker is never wasted. I sometimes know that this is not directly the thing I want to solve, or how I stumbled upon this question. Still, it's a question I have because I'm curious and I just want to know. So, in any case, the person asking for help will learn something.

And all other people on the Internet who stumble upon the question are likely searching for exactly the answer to this exact question, so they get some good value out of it. Or even if not, it likely will have references to what they are interested in. Those other people are ignored here.


Unfortunately the XY problem is now mostly used by know-it-alls trying to show off. At least in my experience.

If you ever find a question that you think is an XY problem, answer X first and then say "did you want Y?".

The worst possible answer is "you should be asking Y".


"Here's the answer to what I wish you asked..."


Politicians do it all the time: "Answer the question you wish you were asked, not the question you were actually asked." And reporters are pretty bad at taking this on.


> reporters are pretty bad at taking this on.

The format of a typical press conference is designed to make it hard for a reporter to follow up when the politician dodges their question, because the politician usually moves on to the next reporter. If they ever get a chance to ask a follow-up, it's after the original context is long gone from anyone's working memory.


If reporters really wanted an answer to the question, the next reporter to be called on could just press for an answer to the previous question. But they don’t; in a press conference situation, the goal of reporters is to be seen, so their fame goes up, and to avoid antagonizing the host, since if they do, they won’t be invited to the next press conference.


Eh, that's part of it, but it's also that the next reporter already knew which question they wanted to ask. They probably didn't pay that much attention to the answer to the previous question because they were busy formulating their own question.


> And reporters are pretty bad at taking this on.

If they do, they won’t get the interview next time.


While I agree that it’s not useful if people are using this to show off, I’d prefer to deal with a few know-it-alls if it means that better product decisions are being made, and dev teams are spending less time building things that customers can’t use or didn’t even want.

The way I see it, there are failure modes with both extremes. I’d prefer the failure mode that involves some occasional annoyance over the failure mode that results in significant amounts of wasted code/effort, and a return to the XY framing anyway when things go wrong.

Ideally, people who are using this find a balance, and can recognize the difference between an obviously straight-forward request and something that needs deeper exploration.

It’s not perfect, but I think it’s a better default.


> answer X first and then say "did you want Y?".

That's a surefire way to cause your suggestion of Y to get ignored and proliferate the bad practice of X.

It's not anyone's responsibility to explain how to do things in a way that they believe is wrong.


If they don't want to explain how to do things in a way they disagree with, then the appropriate response is to not say anything at all.

The current culture on SO is to flood questions with "don't do X, do Y", then upvote those answers. The result is that questions look answered but actually aren't, so the questions stay unanswered. When I come along months or years later having already considered all options, I don't want to have my time wasted by a question that perfectly matches my goal but was never answered because it got drowned in alternative approaches that I already ruled out.


> The current culture on SO is to flood questions with "don't do X, do Y", then upvote those answers. The result is that questions look answered but actually aren't, so the questions stay unanswered.

I think this is the #1 reason why SO isn't a great resource for me.


Isn't it the question author who gets to choose when an answer is satisfactory or not on SO? If a question is full of answers that aren't marked as satisfactory, then there's still an opportunity for someone to come in and get the points by providing a different one. What more can they do, ban people from trying to provide alternative solutions? Surely that is going to create much more harm than good.


> Isn't it the question author who gets to choose when an answer is satisfactory or not on SO?

This would be a fine policy if SO didn't also make a huge stink about duplicate questions. As is, there's one canonical copy of each similarly-phrased question, and a re-ask that says "but for real, I actually want to do it this way" is going to get shut down as a duplicate.

> If a question is full of answers that aren't marked as satisfactory, then there's still an opportunity for someone to come in and get the points by providing a different one.

The system rewards being one of the first responders, not the one who actually answers the question. This is especially true now that they've updated the system to place the highest-voted answer first rather than the accepted answer.

> What more can they do, ban people from trying to provide alternative solutions? Surely that is going to create much more harm than good.

I don't know that there's anything the company can do, since it's pretty clear that they've lost control of most aspects of the culture.


Fair enough, I totally agree that SO moderators are way too overbearing when it comes to duplicates.


Okay, but I've been in plenty of conversations where I ask "I read in a book that we should be doing X, how are people doing X?"[1], and the answers I got, _from a community that included the book author_, were "first, make sure you're doing A, B and C."[2] When in fact I am doing that already. Do I have to really preface every question with "i promise i'm not the idiot you assume I am?"

1: "This book says to monitor ML systems for distribution shifts; what tools are people using to store that data and monitor for changes?" 2: "Make sure you're monitoring normal SRE statistics like request failure rate"


> Do I have to really preface every question with "i promise i'm not the idiot you assume I am?"

Yes, first of all I do think it's up to the person looking for help to fully elaborate their situation in such a way that makes it clear why the X/Y problem doesn't apply to them, since other people with similar issues who stumble upon your thread might not realize that you have that additional context, and the answer is just as much for them as it is for you (if not moreso, since you're just one person).

Secondly, even if you did fully elaborate your situation, it may be that there are people interested in trying to help who don't know the answer to X but do know the answer to Y, and by answering Y they are still providing more value than not answering at all. There's nothing about answering Y that prevents X from being answered by someone else.


> other people with similar issues who stumble upon your thread might not realize that you have that additional context, and the answer is just as much for them as it is for you

IMO, this is what books are for: advice for some form of large common denominators. And if I cite a book, I think it's fair game to assume I am familiar with its contents. And if you encounter my question and haven't read the book, I would hope you benefit just by knowing it exists and maybe even read it.

> Secondly, even if you did fully elaborate your situation, it may be that there are people interested in trying to help who don't know the answer to X but do know the answer to Y, and by answering Y they are still providing more value than not answering at all.

I mean, the longer a thread on slack is, the fewer people bother reading it all. And I have to read it as well before I know it's not actually helping me.


It's not anyone's responsibility to answer at all.


Agreed! Which is why I think it's especially disrespectful to criticize people making honest efforts to help as being "know-it-alls trying to show off" in cases where their idea of the ideal kind of help is different than what the original poster had in mind.


It's frequently NOT an honest effort to help. It's just "well that's a stupid question, let me show you how I know more..."

When you really are trying to help and you think it's an XY you can answer politely by actually answering their question and then saying "but you may want to do this instead". Try it.


Indeed, a good answer to X will make clear why Y is the better option in most cases. But its a thin line to tread between subtly implying that X is bad, and saying "only idiots do X, anyway here's how an idiot would do X".


You suggested that in your previous comment, and I explained already why I don't think that's a good idea: it's liable to cause your alternative suggestion to get ignored and proliferate bad practices.

If someone has a genuine desire to help, then they also inherently have an interest in making sure people don't continue down paths which are likely to lead to more problems in the end. Otherwise, you might end up spending more time supporting the follow-on issues created due to the misapplications of your own advice than you spent providing the support in the first place, which would not be an efficient way of helping.


> it's liable to cause your alternative suggestion to get ignored and proliferate bad practices.

I just don't think that is the case. On the rare occasion that somebody has answered like this to me I've just read their answer and thought "oh right that makes more sense I'll do that".


For all it is rightfully derided, it is this aspect of "user story phrasing" I find valuable. If you can politely ask stakeholders to state their problem in the form "As a _____ I want to _____ so that I can ______", then you can find out that why as filled in on the last blank. And then you can use that why to figure out the best actions to take, being careful that you still scratch the itch the that middle blank in that story brought up.


We detached this subthread from https://news.ycombinator.com/item?id=37212534.


@dang, I was pretty surprised to see my reply turn into such a huge subthread.

When you say you detached this subthread, isn’t this essentially removing it from the discussion entirely?

It wasn’t my intent to derail the discussion, but I’m also trying to make sure I understand what just happened here and what you mean by detached.


You wrote a reply to a comment that took the discussion off on a tangent. That's fine (usually), but the threads sometimes make more sense if the tangents start on their own top-level comment, which is what happened: your comment branched off a branch of the tree, was lopped off by Dan and grafted to the trunk.


Ahh, I didn’t realize it was now a top level comment, but I understand now. Thanks for clarifying. Wanted to make sure I’m adjusting my behavior if necessary.


I can't speak for the mods but I think you're fine in this case.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: