The XY Problem

February 6, 2024 5:05:00 PM (2mo ago)

Definition

the xy problem is a phenomenon when someone runs into an issue and then presents the attempted solution (y) rather than the problem itself (x).

for example; someone asks for help with building a ladder (y) when what they really want to accomplish is get a book from a high shelf (x)

it's a problem that occurs when people are fixated on what they think is the solution and in the process the lose sight of the actual issue and can't explain it properly.

this occurs a lot in software development (although still exists in other areas) and often leads to inefficient and suboptimal solutions.

Solution

  • always always speak about the the underlying issue you are trying to solve in it's entirety instead of just speaking on what you think is the solution.
  • give a good reason as to why you might have marked out other solutions as invalid and also why you think your chosen solution should work.
  • answer correctly when asked for the original problem to make sure the end goal is understood.
  • be willing to be open minded and explore different angles to the root problem while being open to take alternative solutions to the supposed problem.
  • know that it is okay to not always have the solution.

let's take some examples;

  1. there's a web app with slow load times and performances, the developer needs help optimising the performance of the frontend (y) while in fact the real issue might be poorly constructed backend/api calls (x). focusing on the api and fixing the performance of the endpoints could contribute to more tangible improvements rather than focusing solely on the frontend.
  2. a gamer complains about frequent lags on his pc (y) but the issue really is the fact that they have an outdated graphics card (x), they're looking to get a new update to the game to fix this whereas just getting a better graphics card would solve the problem.

Conclusion

the xy problem wastes a lot of time and this can be avoided by just following the solution above and being as concise as possible when communicating the issues.

more info on this can be found at: https://xyproblem.info