XY problem

From HandWiki
Revision as of 16:23, 6 February 2024 by Scavis2 (talk | contribs) (add)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Problem of communication when asking for help


The XY problem is a communication problem encountered in help desk, technical support, software engineering, or customer service situations where the question is about an end user's attempted solution (X) rather than the root problem itself (Y or Why?).[1]

The XY problem obscures the real issues and may even introduce secondary problems that lead to miscommunication, resource mismanagement, and sub-par solutions. The solution for the support personnel is to ask probing questions as to why the information is needed in order to identify the root problem Y and redirect the end user away from an unproductive path of inquiry.[2][3]

Terminology

The term XY problem was implicitly coined by Eric S. Raymond in How To Ask Questions The Smart Way when he wrote "How can I use X to do Y?" in the "Questions Not To Ask" section:[4]

Q: How can I use X to do Y?
A: If what you want is to do Y, you should ask that question without pre-supposing the use of a method that may not be appropriate. Questions of this form often indicate a person who is not merely ignorant about X, but confused about what problem Y they are solving and too fixated on the details of their particular situation.

Examples

Often, end users end up in XY problems when posing a question that does not directly address the desired outcome that originally motivated the question. Examples from software engineering include:

  • Asking about how to grab the last three characters in a filename (X) instead of how to get the file extension (Y), which may not consist of three characters[2]
  • Asking about how to change Nmap output (X) rather than how to prevent untrusted remote machines from detecting the operating system (Y)[5]
  • Asking about how to get a string between two delimiters (X) rather than how to parse JSON (Y)[1]
  • Asking how to construct a regular expression to extract values from XML (X) instead of how to parse XML (Y).

See also

References