Case study 1
Scenarios instead of menus
Collapsing a deep, branching diagnostic workflow into a single scenario-led entry point.
Before: every content type behind its own menu path
- Functional tests
- Special tests
- Live data lists
- Guided component tests
- Documented real fixes
- Reset procedures
- Technical bulletins
- Troubleshooting tips
After: one scenario-led entry point
Results page, one container per type
The problem
A technician working on a vehicle knows what they want: a brake caliper retraction procedure, the misfire data parameters, whether there's a service bulletin on this symptom. What they don't reliably know is which branch of the tool holds it.
Diagnostic software accumulates content over years — functional tests, special tests, live data lists, guided component tests, documented real fixes, reset procedures, technical bulletins, troubleshooting tips — and each type lives behind its own menu path. The tool knows the answer. The technician has to know the tool to reach it.
The hard problem was never looking up a repair scenario. It was deciding what the system should surface.
Constraints
- Scope had to come back small-to-medium or the project stayed on the backlog. That single constraint is why phasing mattered more than feature completeness.
- Platform engineering capacity was already committed to other releases, so any design had to survive a long wait without going stale.
- The content database is uneven. Not every vehicle variant supports every test. A results page that promises content it cannot deliver is worse than no search at all.
- No dedicated research budget. Validation came from existing focus-group findings, conversations with field-facing colleagues, and a demo build.
Process
I started by mapping the machinery rather than sketching screens. Working with the data and content leads, I diagrammed how the ontology and taxonomy, the web services, the content stores and the platform UI related to one another. That diagram went through several revisions and was reviewed before any mockup existed. It is the reason later feasibility conversations were short — everyone was arguing from the same picture.
For a content baseline I used a real vehicle on a real software load rather than placeholder test names. That exposed problems early, particularly how much content a single scenario actually returns.
I explored three entry points. A button on the vehicle confirmation screen stranded users, because returning them there to refine the scenario broke the vehicle-identification workflow. A modified main menu added a layer to the exact structure the feature was meant to flatten. A selector on the home screen won: it sits where users already start, and it puts repair scenarios alongside rather than behind the existing scan workflow.
Three entry points explored
The argument that shaped the product
Midway through concept, a senior stakeholder proposed a cheaper first pass: rather than returning the content, tell the user where to find it — a trouble tree-style experience handing over navigation instructions. It was a serious proposal with a serious rationale. It mirrored a support trouble tree that had shipped quickly, and it appeared to sidestep the database-coverage problem entirely.
I mocked the implications rather than arguing from preference. The counter-case was concrete: a navigation instruction still has to know whether the content exists for that specific vehicle variant, or it sends the technician down a dead end. It doesn't avoid the hard problem — it hides it behind a layer of text. And the value to someone standing at a vehicle is the answer, not a lesson in menu structure.
Decision record
Tell the user where to find it
Trouble tree-style navigation instructionsSurface content directly
Documented with its reasoning attachedThe decision landed on surfacing content directly. I documented it as a decision with its reasoning attached, which matters more than the outcome: a future team that wants to revisit it can see what was weighed.
The design
Related: symptom-driven filtering patentsA technician looks up a component name from the home screen. If no vehicle is identified, the system prompts for identification first — the lookup runs only once the vehicle is known, which is what keeps the results honest. The results page then organizes everything the tool holds about that component into distinct containers: bulletins, live data, guided tests, and documented fixes.
Refinements that came out of review:
- A global system switch, because tests and data correlate to a selected vehicle system and early mocks made moving between them clumsy. Systems with no results are excluded from the UI entirely rather than shown as empty states.
- Lists rather than cards for dense result types, with tabs for parts-oriented scenarios. Documented fixes for a component can be numerous and read better as a list.
- Animated data visualizers make a static page feel live.
- Progressive disclosure — overflow for additional fixes, and an accordion for long content — so a component with a lot of complexity doesn't produce a page you scroll past to work.
One early constraint was to return content from only the top three vehicle systems. Reviewed against real scenarios, the cap proved arbitrary — some scenarios legitimately span more, others fewer. We removed it and let the platform interrogate each relevant system to confirm content exists before rendering them.
Outcome
- Concept approved at ideation checkpoints and carried into detailed engineering estimation, with the concept mocks as the reference artifact.
- A written use case covering alternate and exception flows: prompts for additional qualifiers, partial data availability, vague related terms, and fallback when connectivity drops.
- A phased scope recommendation, with the counter-argument recorded alongside it — that launching without code and symptom scenarios would hurt the experience, since technicians will expect to diagnose these component-related scenarios before identifying if a component is suspect.
Reflection
I would have validated assumptions regarding component-related scenarios earlier. The design was built around components, and it was well into estimation before it surfaced that technicians often want a shortcut to a specific test or data parameter directly. That is a different information architecture, not a different feature — finding it sooner would have shaped the results page rather than amended it.
I also underestimated how much of this project was scope negotiation rather than design. The most valuable artifact turned out to be the ingredients diagram, not a screen. I'd now build that kind of shared-understanding artifact deliberately and early, rather than arriving at it.