Second tab was invisible habit
Every operator had a legacy GPS tab permanently open. Nobody had flagged it as a problem.
Bringing live location context into operations so teams could understand delivery reality at a glance and act faster, without leaving the product.
MaxOptra had timestamps, status flags, arrival times. What it lacked was location. When a stop flipped to “at risk”, operators opened a second browser tab, cross-referenced GPS data, and called there drivers.
The product already did a good job of showing delivery data in a table. But operators were jumping between the status table, raw timestamps, and external tools. Sometimes a separate GPS platform, sometimes just picking up the phone. All to piece together what was happening on the road. That context-switching was slow, error-prone, and introduced uncertainty at the exact moment when confidence mattered most.
That sequence took four minutes; it needed to take less.
“I’ve got the timestamps, but I don’t know if they’re moving or sat in traffic. I end up calling the driver just to know where they are.” Operator, stakeholder session
Before touching wireframes, I ran a structured discovery phase across three weeks. The goal was to understand the actual mental model of a dispatcher during a live run. Not just what they wanted to see, but when, why, and what decisions the information needed to support.
I facilitated two stakeholder walkthroughs with the product manager and two customer-facing team members. I asked participants to walk me through a real exception scenario, a late delivery, and narrate exactly what they did step by step. This surfaced five recurring pain points that weren’t in the backlog:
Every operator had a legacy GPS tab permanently open. Nobody had flagged it as a problem.
No location data meant calling the driver. Four minutes per exception, multiple times per shift.
“Late” and “stationary for 20 mins” look identical in the table. They demand completely different responses.
Switching between runs meant navigating back to the full list each time. Constant context loss.
I watched one dispatcher work through a live morning run. Seeing the tool in action, not just hearing about it, made the friction tangible. The moment a stop flipped to “at risk”, they opened the external GPS tab, cross-referenced the timestamp, and called the driver. Four minutes twelve seconds to answer a question the product should answer in one click.
From discovery, every decision ran through three clear design principles, that shaped every subsequent decision:
The output of discovery shaped a focused brief: a Map view embedded inside Track & Trace that shows the vehicle’s current position in near real-time, alongside the full route and stop context from the existing table view.
The original concept from the product team was a “Map” button on each individual run row. Clicking it would open a modal overlay. I pushed back on this after the stakeholder walkthroughs for two reasons: the modal treated the map as an occasional pop-up rather than a peer view, and it made it impossible to reference map and list data simultaneously.
I proposed moving the map to a page-level tab, “List” and “Map” sitting side by side, giving the map view equal status with the table. This also enabled a run-selector sidebar in the map view, directly addressing the multi-vehicle pain point: dispatchers can now see all active runs at a glance and click to switch between them without returning to the list.
Three approaches were explored before settling on tabs:
Open a second tab. Cross-reference GPS coordinates. Call the driver. Wait. Update the customer. Four minutes minimum, multiple times every shift.
Open the Map tab. See live vehicle position against the route plan. Click the at-risk pin. Call the customer with an accurate update. Ten seconds.
Edge cases weren’t brainstormed in isolation. Each one was surfaced in the stakeholder walkthroughs, the observation session, or a structured review I ran with the dev team midway through the design phase. The dev team brought three cases we hadn’t considered (slow GPS updates, off-route behaviour, urban clustering) based on known issues from the existing GPS integration.
Because the project involved NDAs and live operational data, I cannot share production metrics. The following success criteria were agreed with the product manager before development began, and a measurement plan was in place for the first four weeks post-launch:
Reduced time to answer, “where is the driver?” in internal testing and user sessions.
Fewer escalations related to vehicle whereabouts during live ops windows.
Higher success rate for exception triage: “identify why stop X is late.”
Map tab used during live ops hours by >60% of dispatchers in first month.
Specific UI details and client data are anonymised or altered due to NDA. The design process, decisions, and rationale are my own.
Currently taking on new briefs for design, UX, or motion.