A departure from the usual games-related posts. This is a extremely tactical post (and frankly, quite crudely refined notes) about a bunch of product thoughts I had.
I live in the west Los Angeles metro area and have roughly a 10-mile daily commute. My work hours are quite flexible (thanks Riot Games!), which means I can side-step some of the notorious LA traffic, but not all of it. In practice this means I have a 30-min commute in the mornings, and in the evenings it’s usually 40 minutes, but can easily go to an hour. In the rare instances where I had to stay late (say, 9pm), it’s a 15-20 minute breeze on the freeway home, which makes it tempting to stay late, but usually I’m out of the office between 6-7:30pm.
That’s a long-winded context to say I do quite a bit of driving, and I have tried various navigation apps and do somewhat care about the user experience.
The TL;DR of my current ranking of the apps / services I could use:
- Google Maps
- Waze
- Apple Maps
- My car’s built-in navigation
Having said that, I’m not satisfied with any of them, for various reasons, and it was the thought exercise I did (while driving) about their various flaws that I’d like to explore a bit in writing. 1
The primary reason I say “navigation apps suck,” is that they have clear areas of improvement on a number of dimensions, which I’ll talk about one by one.
The suggested routes are good, but are often perceived to be not the best, especially in shorter, local commutes, such as my daily commute.
I originally worded this as “objectively not the best routes,” but upon reflection felt that is not knowable. But anyhow: what I mean by this point is as a frequent user I have a strong perception that the default route recommendation I get is solid, but there are better options not discovered.
The reason I have this perception is as an experienced driver of my own commute route, I’ve explored various routing options and have established a baseline ranking of my options. Thus nowadays when I do a navigation, more often than not it’s just to gauge the general road conditions, and I will self-navigate using my baseline route (and ignore the recommended route). Then at the end of my trip, I’ll compare my result (arrival time) vs the original estimate with the recommended route. My not-so-rigorous comparisons have reinforced my perception that the algorithms are not ideal and my personal route is just as good or better.
As a complete outsider to how these navigation algorithms work, I do have a few hypotheses why the recommendations are “just ok” instead of “great”:
- Road conditions change very dynamically, and there is a delay between “now” and the data used to run the algos. i.e. how “real-time” is real-time traffic data. I’ve not done any digging into this, but if the lag is material enough (say 5-10 minutes) it would make a difference for the 30-min commuter like myself
- Different roads have different probabilities of disruptions, as well as how resilient they are to these disruptions. While highways have much higher throughput at optimal operations (big arteries), I feel local roads are much more resilient to single accidents, because there are lots of alternative routes (veins) that can absorb sudden fluctuations. I have a very amateur suspicion that navigation algos are over-weighting an estimated faster time via a major highway (say, 5 mins faster than local) vs the likelihood of that estimate being severely disrupted by a new accident
- Depending on the resolution/fidelity of the traffic data, the same stretch of road may have totally different travel times for 2 different travelers. I’m speaking about the difference between lanes, and I have a very specific example with the below screenshot:Going north-south on Sepulveda Blvd through the LAX airport area, the speed at which you can pass through this stretch of road is wildly different based on whether your destination is LAX (the top dotted circle is the ramp going into the airport) or the 105 freeway (the bottom dotted circle), or going through (further south on Sepulveda. You may be sitting in the top circle for 15 minutes to crawl into LAX, or you may have gone past this entire arrow in 5 minutes (if you stay on the left-most lane). Again, without knowing the resolution of the data, I suspect at least some of these navigation apps are using averages, which will degrade the recommendation a lot – Waze for example, will never recommend me this route, even though it is almost always better (measured by a faster arrival time vs. their original recommendation, and their own estimated time as I travel along this route is always higher by 5-10 minutes).
Improvement suggestions: I don’t have any, except what must be obvious ones – get better, higher resolution data; and doing probabilistic analysis as part of the recommendation (what’s the worst that could happen if the user follows this route?).
Route optimizations seem to undervalue the difficulty of the route, most egregiously routes that need lots of left turns
Again, this is first and foremost a perception, but I do have some evidence, especially with the below example that’s basically a bug IMO:
In this stretch of road in commuting hours, Google will generally recommend the green line vs the red line, however this route is actually not possible – the dotted circle is an impossible turn (you need to merge 3/4 lanes to get to the left turn lane, and you have no space to make the merge).
More generally, navigation apps seem to far too often recommend difficult maneuvers which are dangerous and also likely end up costing a lot of time: e.g. left turns in busy intersections with no traffic lights, or crossing a major street with no traffic lights. While Waze has a preference setting specifically about this (and is default ON), in practice I feel Waze still does the most crazy routes that feel like they ignore the difficulty of actual execution.
Improvement suggestions: offering preferences is a start (more on this in the next point), but probably overweighting “safety / ease / fewer maneuvers” over “raw fastest route” (vs how they are currently weighted) is a start.
This is quite touchy-feely, but routing algorithms seem to ignore the comparative pleasure of otherwise comparable options, e.g. is it more enjoyable to sit in bumper to bumper traffic on the freeway or a windy local route (with lots of lights / turns)?
The above header pretty much sums it up. Recognizing that drivers have totally different profiles, and therefore going beyond the absolute “avoid highways / toll-roads” settings, and perhaps offering them ways to tweak their experience to their style, could result in higher satisfaction.
In some ways this is just expectations management: giving an option, for example, that says “prefer local to freeways, even if it means an X-minute delay” (X could be customizable) anchors users’ expectations, and also gives them a sense of empowerment – that was an explicit trade-off they opted into.
- Another way to title this post would be, “why it’s hard to build a great navigation service – product analysis from an outsider.” ↩