The XY problem is a communication problem encountered in
help desk
A help desk is a department or person that provides assistance and information usually for electronic or computer problems. In the mid-1990s, research by Iain Middleton of Robert Gordon University studied the value of an organization's help desk ...
,
technical support
Technical support (abbreviated as tech support) is a call centre type customer service provided by companies to advise and assist registered users with issues concerning their technical products. Traditionally done on the phone, technical support ...
,
software engineering
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ' ...
, or
customer service
Customer service is the assistance and advice provided by a company to those people who buy or use its products or services. Each industry requires different levels of customer service, but in the end, the idea of a well-performed service is that ...
situations where the question is about an end user's attempted solution (''Y'') rather than the root problem itself (''X'').
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 ''X'' and redirect the end user away from an unproductive path of inquiry.
Terminology
The term ''XY problem'' was implicitly coined by
Eric S. Raymond
Eric Steven Raymond (born December 4, 1957), often referred to as ESR, is an American software developer, open-source software advocate, and author of the 1997 essay and 1999 book ''The Cathedral and the Bazaar''. He wrote a guidebook for the ...
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 (note that in this original version ''X'' and ''Y'' are swapped):
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.
The concept of the problem itself, however, was known long before it received this name. In
operations research
Operations research ( en-GB, operational research) (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a discipline that deals with the development and application of analytical methods to improve dec ...
scholar Gene Woolsey's
1980 text ''Applied Management Science: A Quick and Dirty Approach'', he described an example of the XY problem thus: When management received complaints about having to wait too long for elevators, they researched elevator protocols in order to reduce wait times, but Woolsey realized that the actual problem was that "people were complaining"—installing large mirrors in the lobby gave people something to do and complaints went down drastically.
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
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ' ...
include:
* Asking about how to grab the last three characters in a filename (''Y'') instead of how to get the
file extension
A filename extension, file name extension or file extension is a suffix to the name of a computer file (e.g., .txt, .docx, .md). The extension indicates a characteristic of the file contents or its intended use. A filename extension is typically ...
(''X''), which may not consist of three characters
* Asking about how to change
Nmap
Nmap (Network Mapper) is a network scanner created by Gordon Lyon (also known by his pseudonym ''Fyodor Vaskovich''). Nmap is used to discover hosts and services on a computer network by sending packets and analyzing the responses.
Nmap prov ...
output (''Y'') rather than how to prevent untrusted remote machines from detecting the
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
(''X'')
* Asking about how to get a string between two
delimiter
A delimiter is a sequence of one or more characters for specifying the boundary between separate, independent regions in plain text, mathematical expressions or other data streams. An example of a delimiter is the comma character, which acts as ...
s (''Y'') rather than how to parse
JavaScript
JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
data structures
In computer science, a data structure is a data organization, management, and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, a ...
(''X'')
* Asking how to construct a
regular expression
A regular expression (shortened as regex or regexp; sometimes referred to as rational expression) is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" ...
to extract values from
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
(''Y'') instead of how to use an XML
parser
Parsing, syntax analysis, or syntactic analysis is the process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar. The term ''parsing'' comes from Lati ...
(''X'').
See also
*
Attribute substitution
Attribute substitution is a psychological process thought to underlie a number of cognitive biases and perceptual illusions. It occurs when an individual has to make a judgment (of a ''target attribute'') that is computationally complex, and inste ...
*
Einstellung effect
Einstellung () is the development of a mechanized state of mind. Often called a problem solving set, Einstellung refers to a person's predisposition to solve a given problem in a specific manner even though better or more appropriate methods of so ...
*
Garbage in, garbage out
In computer science, garbage in, garbage out (GIGO) is the concept that flawed, or nonsense (garbage) input data produces nonsense output. Rubbish in, rubbish out (RIRO) is an alternate wording.
The principle applies to all logical argumentatio ...
*
Type III error
References
{{reflist
Help desk
Customer service
Problem solving