XY Problems in User Stories

December 1, 2021

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.


Related Content

No, writing HTML is not programming. But watering your lawn is.

Writing HTML doesn't meet the definition of programming. But you'll be surprised at what does!

Break glass in case of emergency

Should you block "bad" behaviors, or allow them in case of emergency? Why not both?

Beware the false premise

How do you know that the work you're doing is building on a valid premise?