Ship, Drive, Fly, Chug, Iterate

Last night I showed one of my sons that visualization of the growth of subways, and how sad it is that they have slowed down. We then got to discuss transportation in the bay area across cars, buses, trains, planes, ships, etc, and I realized that I was talking about the pillars of user experience: performance, resilience, security, access, and delight.


Different types of transportation, and specific models within a type, have performance characteristics. On the one hand the raw performance of a vehicle is important, it is also equally unimportant at times. It doesn’t matter if your car is fast if the highway is backed up. It doesn’t matter if the airplane is fast if weather doesn’t allow it fly. And, it doesn’t matter if a train is fast if a leaf is on the line in the UK.

The details really matter here. The fact that Bob lives closer to work than Wendy based on how the crow flies doesn’t help if the road layout delivers the fact that Wendy has less mileage.

The notion of perception is also at play, just as it is with applications. I don’t know about you, but I much prefer it when my car is moving vs. stuck in traffic. I would be willing to bet that I would probably feel better about moving quickly for 15 minutes vs. being in stop and go traffic for 13.

This is why it is vital that you apply every trick in the book to keep your users feeling like they are moving along vs. stuck in traffic. Fortunately, we have plenty of tricks these days thanks to prerendering and friends.


One measurement doesn’t make performance. I was talking to a friend who lives in the island of Alameda, and he much preferred his commute on a ferry. Beyond feeling nice to be on the water, and not having to drive, he also talked about how reliable it was, because the variability of traffic wasn’t an issue.

Just as If you manage a transportation system, you need to be thinking about the reliability and resiliency of said system, it is vital that you do the same with your software Fortunately, with service workers, we have new capabilities that can really enable a reliably great experience.


The accessibility of various transportation, and the effect of its cost structure are also important. A great ecosystem grants access to the entire population.

This access comes in different styles. Some are very egalitarian. If am I on the same train as a billionaire our experience is the same. If I share the same road in a car, the experience may differ in that my car is quite different, but we by and large have the same practicalities. The other end of the spectrum lies the helicopter and personal jet

It has been fantastic to see availability for more of the worlds population over time. You have often heard people say things like “That billionaire has the same iPhone as me. He can’t get anything better.” But once you look across the worlds population you remember that we are very far from being done, and it is important to still keep pushing to maximize the access to information. This is one of many reasons why I am proud of the Web.


That fancy car may look and feel much nicer than my clunker. Cars are a great example of how art and engineering come together and blend. We see the same with computing experiences, with visual design and interaction design. The best experiences maximize the resources they have to deliver something that feels great, and hopefully looks good too. Fashion plays an important story with cars, as it does with our digital products.

Every now and then something is so great that it takes on its own style and becomes timeless. What would you consider the Porsche of web applications I wonder?

Cars are really catching up when it comes to the integration of software into their experience. One of my cars says “VOL_01” for gods sake! It makes me feel like there is a localization file somewhere that wasn’t filled out.


You want to be safe when you travel. Perception and risk come into play here too, as many more people are afraid of flying due to its novelty and “well if something goes wrong and I fall from the sky….” reactions.

Securing platforms is vitally important. The Web sandbox has always put this as a high priority and signals security to users in a very different manner (e.g. locks in the URL bar).

Browsers have also learned new tricks. You have seen browser warn you about certain sites. What if your car warned you when it went down a certain street? Or told you not to park in a certain area due to break ins?

From Analogy to Abstractions

I enjoy thinking about abstractions in engineering, and Cheng Lou’s talk gave me more to think about here.

Within travel, a powerful abstraction would be to have an API that let you say:


The system can take care of the form of transport based on the context that it has. Maybe it sees that traffic is meant to be bad that day? Or prices for flights are very cheap? This powerful level of abstraction allow it the ability to do a lot.

However, you may want to get more specific, and to work one level down in the node, to ask the train service to book you a ticket through the chunnel. This is a much simpler problem and you have done the work of narrowing down the options, with the benefit of knowing that you want the train, and the cost of not being offered the cheap flights.

We often bemoan the fact that the Web has so many options. We get fatigued. However, if you take away the options, and the systems change enough, then you are stuck with one opinion on the “right” level of abstraction for all of your problems.

Computing is changing rapidly, and the Web platform itself is also getting large changes that require you to re-think your assumptions. Marry these all together with the very different environment in the world and you may end up choosing very different nodes in the “abstraction tree”.

Sometimes choice can drive you up the wall, but at others it can enable you to build the right vehicle for the job.

With all of this, the key is to keep investing and grooming so the next generation is given a foundational gift rather than a garden full of weeds.

Leave a comment

Your email address will not be published. Required fields are marked *