XY Problem


What is it?

The XY problem is asking about your attempted solution rather than your actual 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.

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

The problem occurs when people get stuck on what they believe is the solution and are unable to step back and explain the issue in full.

What to do about it?

  • Always include information about a broader picture along with a ny attempted solution.
  • If someone asks for more information, be sure to provide details.
  • If there are other solutions you’ve already ruled out, share why you’ve ruled them out. This gives more information about your requirements.

Remember that if your diagnostic theories were accurate, you wouldn’t be asking for help, right?

Examples

We have created fictional examples of the XY problem within the context of a support request on the Inventor Discord server.

NOTE

The individuals shown in these examples are fictional and any resemblance to real persons is purely coincidental. These scenarios are not based on any actual events.

Example 1

The Discord User doesn’t actually want to store multiple values in a global variable, they want a table, so why ask about a global variable

Discord User
Discord User
How can I store multiple values in a global variable?
Awesome Inventor Support
Awesome Inventor Support
You could store them in a comma separated format or store them as a JSON object
Awesome Inventor Support
Awesome Inventor Support
Why do you need to store multiple values? What do you really want?
Awesome Inventor Support
Awesome Inventor Support
Do you want a table?
Discord User
Discord User
Yes.
Awesome Inventor Support
Awesome Inventor Support
Global variables aren’t designed for that.
Awesome Inventor Support
Awesome Inventor Support
Use a database instead, it’s exactly what you’re looking for

Example 2

If the Discord User had just started by explaining they want to match a phrase this could have been a much shorter and more productive discussion.

Discord User
Discord User
Can someone help me write some regex?
Awesome Inventor Support
Awesome Inventor Support
Sure what’s it for?
Discord User
Discord User
I’m trying to match the phrase “Hello World” - Do you have any idea what the regex for that would look like?
Awesome Inventor Support
Awesome Inventor Support
You don’t actually need to use regex for that! The if statement contains the option to check if a value “Contains” another value. This will do exactly what you want it to.
Inspired by https://xyproblem.info/