A couple of months ago, I was explaining my need-problem-solution framework to a colleague. He listened, then asked a simple question: “Why start at need? Why not go up the hierarchy?”
I didn’t have an immediate answer. The question caught me off guard because I thought I’d already worked through this. But I hadn’t made the connection explicit, even to myself.
The Missing Layer
In my BDD: But Not the Way You Heard it Before talk, I emphasize the importance of understanding values when articulating user stories. If we understand what people value, it becomes easier to understand their needs. They may not be able to articulate their values or their needs clearly. Or maybe they can express their values but struggle to articulate the need.
When he asked his question, I realized these two pieces of content in my head were already connected. I just hadn’t consciously linked them yet.
A revised progression is: Values → Aspirations → Needs → Problems → Solutions.
You can’t truly understand someone’s needs without understanding what they value. And if you jump straight to problems or solutions without understanding needs, you’re likely building something that misses the mark.
Why People Struggle to Articulate Needs
I’ve seen this pattern repeatedly in consulting and code reviews. Someone comes with a solution in mind, or they describe a problem they want to solve. But when you ask, “What need does this address?” they struggle to answer.
It’s not because they’re unclear thinkers. It’s because they haven’t identified the underlying values or aspirations driving the need.
For example, someone might say, “We need better logging in our application.” That sounds like a need, but it’s really a solution masquerading as a need. The actual need might be “We need to understand what’s happening in production when things go wrong.” And the value underneath that? Maybe it’s reliability, or transparency, or the ability to respond quickly to customer issues.
Once you identify the value (reliability), the need becomes clearer (visibility into production behavior), and you can evaluate whether better logging is the right solution or whether there are other approaches worth considering.
The Role of Challenge
This is where his question became valuable. He challenged my framework by asking why I started at “need” rather than somewhere else. That challenge forced me to articulate something I’d been thinking about but hadn’t fully connected.
Adam Grant talks about this in Think Again. He distinguishes between your supporting network (people who encourage and validate you) and your challenging network (people who question your assumptions and push your thinking).
Both are important, but the challenging network is what helps you see connections you’ve already made but haven’t consciously recognized yet.
He wasn’t being difficult. He was genuinely curious. And that curiosity created space for me to rethink my own framework and realize it was incomplete without the values layer.
Building the Right Thing
In software development, we often jump straight to solutions. Someone has an idea for a feature, and we start building it. Or we identify a technical problem and immediately start solving it.
But if we don’t understand the underlying need for the problem, we might solve the wrong one. And if we don’t understand the values behind the need, we might address a need that doesn’t actually matter to the people we’re serving.
This applies to user stories, technical decisions, and even career choices. Before you solve a problem, understand the need. Before you understand the need, identify the values and aspirations.
Asking Better Questions
The practical takeaway is to get better at asking “why” in layers:
-
“What problem are we solving?” (Problem layer)
-
“What need does this address?” (Need layer)
-
“What do people value that creates this need?” (Values layer)
Most of the time, we stop at the problem layer. Sometimes we make it to the need layer. Rarely do we dig down to values.
But values are where clarity lives. When you understand what someone values, everything else becomes easier to articulate and evaluate.
The Value of Being Challenged
I’m grateful he asked that question. It wasn’t a criticism. It was curiosity. And that curiosity helped me connect two pieces of my own thinking that were already there but hadn’t been explicitly linked.
This is why I value having people in my network who challenge my thinking. Not to tear down ideas, but to help me see what’s already there more clearly.
If you’re building something, teaching something, or trying to understand something, find people who will ask you questions that make you pause. The discomfort of not having an immediate answer is often a sign that you’re about to make a useful connection.
What values are driving the needs you’re trying to address?






Leave a Reply