Problems before solutions
Most work arrives as a solution: "add an export button", "make it like that other app". This lesson gives you a repeatable way to find the problem behind any request, describe it so a team can act on it, and decide what to do before anyone writes code.
By the end you can
- Split any request into a goal, a pain and a proposed fix
- Write a problem statement with a specific user, a measurable cost and evidence
- Run five whys with evidence, branch where there is more than one cause, and know when to stop
- Describe what users are trying to get done as a job story
- Turn a feature request into a one-page request-to-problem brief and a decision
The everyday picture
A patient walks into a clinic and says, "I need antibiotics." A careless doctor writes the prescription. A good doctor asks questions first. What are the symptoms? Since when? What have you tried? Is anyone at home sick too? Often the answer is a virus, and antibiotics won't help at all. The patient wasn't wrong to ask. They named the cure they had heard of.
Feature requests work the same way. A store manager, a shop owner or a department head feels a real pain and describes the fix they can picture. Your job is diagnosis before prescription: understand the symptoms, find the cause, and only then choose the treatment. Sometimes the treatment is exactly what they asked for. Often it is something cheaper that works better.
Why requests arrive as solutions
People are good at noticing pain and bad at designing fixes for it. That isn't a criticism. They know their own work deeply but don't know what the software could do, what it costs to build or what other users need. So a request usually packs three things together:
- A goal: what they are ultimately trying to achieve.
- A pain: what gets in the way today.
- A proposed fix: their guess at a solution, often copied from another tool.
The goal and the pain are usually accurate. The proposed fix is the weakest part, because it is the part furthest from the requester's expertise. Programmers have a name for this pattern, the XY problem: someone asks how to do X, their attempted fix, when what they need is Y.
Building the fix without the other two parts has three costs. The pain may stay. You now maintain a feature forever. And the requester learns that the way to get help is to specify screens, so the next request is even more of a solution. On internal tools, where department heads can push requests through, this is how products fill up with buttons nobody uses.
The tool for unpacking a request is a ladder. Asking "why?" moves you up from the proposed fix toward the goal. Asking "how else could we get there?" moves you across to other solutions. You stop climbing when you reach a goal that is clear and worth solving, and that the requester agrees with.
Quick check
Ravi, a partner shop owner, asks for "a button in the Partner app to call my sales rep". Which question moves you up the ladder?
Asking what he was trying to find out moves from the fix (a call button) toward the goal, which might be "know when my delivery will arrive". The other questions all accept the fix and refine it, so they keep you on the bottom rung.
Writing a problem statement
A problem statement is a few sentences that a whole team can agree on before discussing solutions. A useful one has five parts:
[Specific user] needs to [do something] but [obstacle],
which causes [measurable cost].
We know because [evidence].Each part has a job. The specific user stops you designing for everyone. The need is written as something the user does, not something the software does. The obstacle is what gets in the way today. The cost needs a number, even a rough one, so you can compare this problem with others. The evidence says whether this is something you saw, measured or only heard.
| Weak | What's wrong | Stronger |
|---|---|---|
| "We don't have a write-off dashboard." | A solution in disguise. Nobody suffers from a missing dashboard. | "The loss-prevention lead needs to see which stores lose the most stock and why, but 40% of write-offs have no reason recorded, so she spends about 3 hours every Monday cleaning exports and still can't explain the top losses." |
| "Users find the Partner app slow." | Which users, doing what? How slow? How do we know? | "Shop owners who reorder the same 20 items every week need to place that order quickly, but must search for each item one by one. A typical reorder takes about 12 minutes, and 9 of the 11 owners we interviewed raised it unprompted." |
| "Riders need a better app." | No user situation, no obstacle, no cost. | "Riders arriving at large apartment blocks need to find the customer's door quickly, but the app shows only the street address. Deliveries to these blocks take about 6 minutes longer and are late twice as often." |
Two rules keep problem statements honest. First, no solution words: if your statement contains "button", "dashboard", "app" or "AI", rewrite it. Second, mark the evidence level. "Measured from 6 weeks of data" and "one manager told us" are both useful, but they deserve different amounts of investment.
Quick check
Which is the best problem statement?
The first names a specific user, a need, the obstacle, a cost and the evidence. The second is a list of solutions. The third gives no user, obstacle or cost. The fourth hints at a problem but has no detail a team could act on.
Five whys, done properly
The five whys comes from Toyota. Sakichi Toyoda developed it, and Taiichi Ohno, the architect of the Toyota Production System, described repeating "why" five times as the basis of Toyota's scientific approach. The idea is simple: when something goes wrong, ask why it happened, then why that happened, until you reach a cause you can fix so the problem doesn't come back.
Done badly, it is a guessing game. Done well, it follows five rules:
- Start from a fact with a number. "1 in 12 goods received notes needs a correction" is a starting point. "Receiving is a mess" is not.
- Answer each why with evidence. Data, an observation or the people who do the work. If you don't know, the next step is to find out, not to guess.
- Branch when there is more than one cause. Real problems usually have several. A single neat chain often means someone ignored the others.
- Never stop at "human error". Ask why the system made the mistake easy to make. Tired people at a busy dock will always make some mistakes. The question is why the design lets them through.
- Stop at a cause you can act on. Five is a guide, not a rule. Stop when fixing this cause would prevent the problem and someone can own the fix.
The method has known weaknesses. Different people reach different causes from the same problem, and you can't find a cause you don't know exists. Both are reasons to run it with the people who do the work, at the place where the work happens, and to check each answer against data.
Quick check
Your five whys on rider late deliveries reaches "the rider took a wrong turn". What should you do next?
"Rider error" is a symptom of the system. Asking why it was easy to get wrong leads to causes you can fix, such as bad map pins or missing building entrances. Retraining one rider changes nothing for the other 599.
Jobs to be done
Five whys looks backwards at causes. Jobs to be done looks at what people are trying to achieve. The idea, made popular by Clayton Christensen, is that people "hire" a product to make progress in a particular situation, and "fire" it when something does the job better.
Christensen's best-known story is about milkshakes. A fast-food chain wanted to sell more of them. It asked customers who matched its milkshake-buyer profile how to improve the shake, made the changes, and sales didn't move. A researcher then spent a day in a restaurant watching who bought milkshakes and when. About 40 percent were bought first thing in the morning, by commuters taking them to go. Interviews showed the job: make a long, boring commute more interesting, with one free hand, and stay full until noon. The milkshake's real competitors were bagels and doughnuts, not other milkshakes. Once you know the job, the improvements are obvious: a thicker morning shake that lasts the whole drive.
Marketers have repeated a similar line since at least the 1940s, made famous by Theodore Levitt: people don't want a quarter-inch drill, they want a quarter-inch hole. A job has three sides. The functional side is the task itself. The emotional side is how people want to feel, such as not worried about a festival order. The social side is how they want to be seen, such as a store manager who doesn't look careless to head office.
A practical way to write a job is the job story format that Paul Adams described at Intercom:
When [situation], I want to [motivation], so I can [expected outcome].The situation is the important part, because it explains why the need arises now. Three examples from different kinds of product:
- Consumer (Mangrove app): "When I'm halfway through cooking and find I'm out of one ingredient, I want it at my door in under 30 minutes, so I can still serve dinner on time." This job competes with walking to a corner shop and with asking a neighbour, not only with other grocery apps.
- B2B (Partner app): "When I've placed a big order before a festival weekend, I want to know it will arrive by Friday, so I can promise my regular customers and avoid buying from another wholesaler." This is what was behind Ravi's request for a call button.
- Internal (Store app): "When the truck driver is waiting to leave, I want to confirm the delivery matches the order in a few minutes, so I can sign without creating a wrong stock count."
Notice that none of them mentions a feature. Many solutions could do each job, and that is the point: a job story keeps the door open until you know which solution works best.
Quick check
Which of these is a job story, written the way this lesson recommends?
The second has a situation, a motivation and an outcome, and names no feature. The first is a request in user-story form with a solution baked in. The third is a demographic description. The fourth is too vague to act on.
Finding the problem behind a feature request
Here is the method that ties the pieces together. It works for a one-line message from a department head and for a long list of asks from a vendor workshop.
1. Get the last real story. Opinions about the future are unreliable; stories about the past are not. Ask five questions, in this order:
- "Tell me about the last time you needed this."
- "What did you do instead?"
- "What did that cost you: time, money, a complaint?"
- "How often does it happen, and to whom else?"
- "If this were solved perfectly, what would be different next month?"
Question 2 matters most. What people already do instead, their workaround, shows you the real job and how much they care. Someone who keeps a careful spreadsheet every week has a real problem. Someone who does nothing probably has a small one.
2. Size it. Rough size = how often × how many people × cost each time. "About 100 corrections a day × 25 minutes each" is about 40 staff-hours a day. That number lets you compare this request with everything else on your list.
3. Find the cause. Run five whys with data and the people who do the work.
4. Write it down. A problem statement and a job story. Share them with the requester and ask, "Did I get this right?" People who see their problem described accurately become your allies, even when you don't build what they asked for.
5. Decide. Four outcomes are possible: solve now (often what they asked, when the fix is cheap and obvious), solve differently (a better fix for the same problem), park with a reason and a date to revisit, or decline because it doesn't serve the outcome. Always reply to the requester with what you heard and what happens next.
Keep every request in a log, even the ones you decline. Five different requests often point at one underlying problem, and the log is how you notice. From research to opportunities turns logs like this into an opportunity map, and Product management for internal tools covers running request intake for a whole company.
Think first: should you ever build exactly what was asked, without all this?
Yes, often. When the request is cheap, the problem is obvious and frequent, and the asked fix is clearly right, the method is overkill: a missing field, a wrong label, a confusing error message. The method earns its time when the fix is expensive, when the requester is far from the work, or when the request would change how many people work. A useful test: if you'd be embarrassed to build it and find nobody uses it, ask the five questions first.
Do it
Turn one real request into a one-page request-to-problem brief.
Copy the request word for word
Note who asked and when. Don't tidy the wording; the original phrasing tells you what they think the fix is.
Split it into goal, pain and proposed fix
If you can't fill in the goal, that is your first question for the requester.
Get the last real story
Use the five questions. Write down times, numbers and what they did instead.
Size it
How often × how many people × cost each time. Ask an analyst for data when you can; estimate and label it when you can't.
Run five whys with evidence
Branch where there is more than one cause. Stop at causes someone can own.
Write the problem statement and a job story
Check them against the rules: specific user, no solution words, a cost with a number, evidence level marked.
Decide and reply
Solve now, solve differently, park or decline. Send the requester the problem statement and your decision.
Markdown# Request-to-problem brief ## The request (word for word) "Let us edit a GRN after it is submitted." Ama, store manager, 3 October ## Split - Goal: stock records that match what actually arrived - Pain: fixing a wrong GRN takes calls to the DC and finance - Proposed fix: an edit button on submitted GRNs ## Last real story - 2 Oct, 7:40 am: 31 cartons from the DC, driver waiting to leave. Staff recorded 30 cartons of rice; it was 24 rice and 6 flour. Found at shelf fill. Took about 40 minutes and two calls to fix. ## Size (measured, last 6 weeks) - About 1 in 12 GRNs needs a correction: about 100 a day across 320 stores - About 25 minutes of store and finance time each: about 40 staff-hours a day ## Five whys 1. Why corrections? Wrong counts (70%), wrong pack sizes (30%) 2. Counts: staff rush while the driver waits (seen twice) 3. Stop is planned for 20 minutes; receiving median is 24 4. Every carton is scanned one by one; Wi-Fi drops force re-scans Branch: pack sizes. Supplier moved from 12-packs to 24-packs; article data was not updated ## Problem statement Receiving staff at busy stores need to check a delivery against its order before the truck leaves, but carton-by-carton scanning takes a median 24 minutes against a 20-minute stop, so about 1 in 12 GRNs is wrong and takes about 25 minutes to correct. Evidence: 6 weeks of correction data, 2 observed deliveries. ## Job story When the driver is waiting to leave, I want to confirm the delivery matches the order in a few minutes, so I can sign without creating a wrong stock count. ## Decision - Solve differently: pilot case-level scanning in Ama's store for 2 weeks; ask IT to check dock Wi-Fi in the 40 slowest stores - Route pack-size errors to the master data team with examples - Park the edit button; revisit after the pilot - Reply sent to Ama on 6 Oct with this page
Bring it to your team
Use these when a request lands on the backlog, especially a big one.
- What problem does this solve, and who has it? Can you show me the last time it happened?
- What do people do today instead, and what does that cost?
- How often does it happen and to how many people, roughly?
- Is our problem statement free of solution words, and does the requester agree with it?
- Did we look at more than one cause, and at more than one way to solve it?
Red flags
- The backlog item's title is a screen or a button, and its description repeats the title.
- The only evidence is "the head of department wants it".
- Five whys ended at "staff error" or "user didn't read the message".
- Nobody has asked what the requester does today instead.
- Requests are declined or built without the requester ever hearing back.
Practice
Find the problem behind a live-map request
Mangrove's head of customer support writes: "We need a live map of all riders on the back-office dashboard, like the big ride apps have. Please add it before the festival rush." You ask the five questions. Her answers:
- Last time: "Yesterday at 8 pm. A customer said her order showed Picked up for 30 minutes. My agent phoned the rider, who was driving and didn't answer, so we told her we didn't know."
- Instead: "We phone the rider. If he doesn't answer, we phone the store."
- Cost: "About 300 where-is-my-order calls a day at dinner time, 3 to 4 minutes each. Riders also get calls while riding."
- Who else: "Most calls come when the order has shown Picked up for more than 25 minutes."
- Perfect world: "Customers wouldn't need to call."
Write the goal, pain and proposed fix, a problem statement, a job story, and two other ways to solve it.
- The goal is about customers knowing where their order is, not about the support team seeing a map
- The problem statement has a specific user, an obstacle, a cost with a number and the evidence
- The cost includes agent time (roughly 15 to 20 hours a day) and rider safety
- The job story is written from the customer's situation and names no feature
- At least one alternative works without the support team, for example in the customer app
Show a model answer
Goal: customers know when their order will arrive without calling. Pain: after pickup the app shows no progress, so customers call and agents can't answer. Proposed fix: a live rider map for agents.
Problem statement: Customers waiting for a "Now" order need to know when it will arrive, but after pickup the app shows only "Picked up", so about 300 customers a day call support at dinner time. Each call takes 3 to 4 minutes (about 15 to 20 agent-hours a day), and agents often phone riders who are driving. Evidence: support call logs and yesterday's example; we should confirm the 25-minute pattern with data.
Job story: When my order has left the store and dinner time is getting close, I want to see how far away it is, so I can decide whether to wait or make something else.
Alternatives: show the rider's progress and an updated arrival time in the customer app after pickup; send an automatic message with a new time when an order runs late. Either removes most calls at the source, which a support-only map does not.
Fix four problem statements
Say what is wrong with each, then rewrite the one you think matters most. Invent reasonable numbers if you need them, and label them as estimates.
- "The problem is that the Partner app has no chat feature."
- "Store managers are unhappy."
- "Shop owners who reorder the same items weekly need to place the order quickly, but must search item by item, so a reorder takes about 12 minutes. 9 of 11 owners interviewed raised it."
- "We need AI to predict stock-outs."
- You spot that 1 and 4 are solutions in disguise
- You spot that 2 has no specific user situation, obstacle, cost or evidence
- You recognise 3 as already strong
- Your rewrite names a user, an obstacle, a cost with a number and an evidence level
Show a model answer
1 is a solution; the problem might be that owners can't get quick answers about orders. 2 is a feeling with no user situation, cost or evidence. 3 is good as it stands. 4 is a technology looking for a problem. Rewrite of 4: "Store managers need to reorder fast-selling items before shelves go empty, but they only see stock levels after the evening sync, so about 1 in 20 top items is out of stock by the next afternoon (estimate from two weeks of shelf checks in 5 stores)." Whether AI, a rule or a better sync is the fix comes later.
Check yourself
Finance asks for "a button to download Partner app invoices as PDF". What is the most useful first question?
Asking about the last real time uncovers the job: maybe auditors need a signed copy, or shops dispute amounts. The layout question accepts the fix. "Would you use it?" invites a polite yes. Asking about timing is a negotiation before you know the size of the problem.
Five whys on wrong prices at the till ends with "a store clerk forgot to change the shelf label". What is the best next step?
A person forgetting is where the useful analysis starts. Asking why the process made forgetting easy leads to fixes that work in every store. Blaming one clerk fixes nothing, five is a guide rather than a limit, and hunting for a software cause is bias in a different direction.
Every weekday at 7:30 am, many Mangrove app customers near offices order coffee, yoghurt and fruit for delivery to work. Using jobs to be done, what mainly competes with this order?
The job is "get a quick breakfast at work without losing time". Anything that does that job competes, including options that aren't apps at all. This is the milkshake lesson: competition is defined by the job, not by the product category.
Flashcards
Key takeaways
- Requests mix a goal, a pain and a proposed fix. Keep the first two and question the third.
- A problem statement names a specific user, the obstacle, a cost with a number and the evidence, with no solution words.
- Five whys works when every answer has evidence, branches are allowed, and you never stop at "human error".
- Jobs to be done describes the progress people want in a situation. Write it as a job story and you will see competitors and solutions you missed.
- For any big request: get the last real story, size it, find the cause, write it down, decide, and reply.
Sources and further reading
- Clay Christensen's Milkshake Marketing, Carmen Nobel, Harvard Business School Working Knowledge, 2011
- Know Your Customers' "Jobs to Be Done", Clayton Christensen, Taddy Hall, Karen Dillon and David Duncan, Harvard Business Review, 2016
- How we accidentally invented Job Stories, Paul Adams, Intercom, 2016
- Five whys, Wikipedia (origin at Toyota and known criticisms)
- No one wants a drill. What they want is the hole, Quote Investigator, 2019
- Competing Against Luck, Clayton Christensen, Taddy Hall, Karen Dillon and David Duncan, HarperBusiness, 2016 (book)