A customer problem is a desired outcome or capability that a product or interface must satisfy. In API design, the useful question is what users need to achieve—not which internal mechanism they must operate. A clear focus on user needs helps consumers, end users, and providers avoid complex or unusable APIs. section 1.2.1 section 2.0
Turn customer problems into capabilities by following a practical analysis:
- Start with the Define-stage needs and clarify what users need to achieve. section 2.1
- Describe use cases and generic operations in plain language, such as “Sharing a status,” “Upload a photo,” or “Send a message.” section 1.6.1
- Ask “Why?” repeatedly to distinguish the user’s problem from provider-owned implementation details. section 2.6.3 section 2.6.2
- Filter out unrelated or useless steps, confirm uncertain scope with stakeholders, and avoid consumer-specific designs that reduce reuse. section 2.6.1 section 2.6.2
- Choose programming representations only after the problem and capabilities are clear. section 2.0
From operating a magnetron to heating food
The Kitchen Radar exposes a cryptic MAG. button and requires users to hold and release it for timed intervals. Its manual reveals that the appliance operates a magnetron, but users actually need to heat food. The API equivalent exposes provider internals instead of a clear consumer capability. A better design names the outcome and operation around the user’s task, such as “Rent a car” rather than “Implement a new deal.” section 1.2.1 section 9.1.1
Figure 1.5 The cryptically named Kitchen Radar has an unclear purpose and a complicated user interface that is cumbersome to use.
Use the Kitchen Radar figure to contrast an unclear interface with a product whose purpose and operation should be immediately understandable. section 1.2.1






