DEV Community

Jonathan Hall
Jonathan Hall

Posted on • Originally published at jhall.io on

XY Problems in User Stories

If you spend any significant time on StackOverflow, you’ve probably heard people complain about XY Problems.

How do I download the Internet?

Is probably an XY Problem. That is to say, it’s asking how to accomplish something that the asker imagines would solve their real problem, rather than focusing on their real problem.

Many XY Problems ask to do the impossible, as the above example. But many are far more subtle and harder to detect.

What should I feed my horse so it goes faster?

Might be an example. How do we know if the horse’s diet is the right solution? Or indeed if even your horse going faster is the solution? You need to understand the problem to be solved first.

Henry Ford famously pointed out that the automobile answered a question many people didn’t even know to ask.

If I had asked people what they wanted, they would have said faster horses.

Until we step back and ask about the larger goal (such as “how can we travel a longer distance in a reasonable timeframe?"), it’s not obvious that the question is posed as an XY Problem.

Many user stories are XY Problems in disguise. These are often even harder to detect, because a “properly” worded user story includes the goal. But often it’s a faux goal, or the change requested isn’t the optimal solution for the goal. This is where it’s important to be a critical thinker.

As a daily commuter, I want a dietary suppliment for my horse that will allow him to gallop faster, so that I an get to work in less than 3 hours.

An astute critic will read the “so that I can …” phrase first, and imagine solutions that are not even mentioned, and challenge the PO (or whomever wrote the user story) about whether the requested change is the correct one.


If you enjoyed this message, subscribe to The Daily Commit to get future messages to your inbox.

Top comments (1)

Collapse
 
dvddpl profile image
Davide de Paolis

Hi, was searching on Dev.to my recent article about XYProblem and found yours. very interesting.
I'd like to stress your last point:

An astute critic will read the “so that I can …” phrase first

this to me is what really makes the difference in productivity and success between two people with apparently same skillset and intelligence.

what is the point of a user story? describing a need
what is the purpose of us writing code? solving a problem.

the avarage developer will dive immediatly in the implementation of whatever was asked in the ticket, the mythical 10X developer would probably read the so that i can part and start questioning the requested implementation, ask further questions and propose alternative solutions.