I’m sitting in a restaurant. I pick up the menu and my choice is made: Eggs Benedict it is. The waiter approaches – he’s called Dave – and I place my order. Dave dutifully records my choice, smiles and retreats to the kitchen.
With little more than a grunt, Hans (the chef) takes the order from Dave and sets to work on my breakfast. He’s done this a million times.
After just a few minutes, Hans has finished; “Service”. Dave returns and in one swift motion the eggs benedict pass from hot plate to waiter’s arm and begin their journey back to my table.
I pretend I don’t notice him re-entering the dining room but secretly I’m thrilled. As Dave approaches the table, my silent mental preparation gives way to the physical. Knife, fork: armed. Dish placed. “Thanks. This looks lovely.” And it is.
Restaurant service reminds of the web. And by the web I mean the original sir-tim-at-cern-web-as-pages-connected-by-hyperlinks version. Substitute me for the user, Dave for the browser & Hans for the server and you have a stupidly tenuous analogy for the experience of loading a web page.
Tenuous it may be but both processes – ordering food in a restaurant, requesting a page from a web server – have one thing in common. They are asynchronous. Each step of the process has to wait until the preceding one has finished before it can start.
In a restaurant the ‘wait’ is part of the experience. I’d go as far as to say I enjoy this. There’s an element of theatre to the whole thing wouldn’t you say?
Of course on the web, the wait is over in split seconds. But it is undeniably part of the experience. Rendering engines get faster, bandwidth gets wider, but there remains a momentary pause between clicking that submit button and the confirmation page loading. Watch closely. It’s surprising how often you see a blank screen between pages, albeit for a millisecond or two. It may not be ‘by design’, but I’d speculate that this is still the most common form of feedback on the web. We’ve become accustomed to it and in a fairly crass way, it works.
Fast forward to the ‘realtime’ web and things have subtly changed. Pages load and the lack of an obvious page refresh means I don’t even notice it. Pretty snazzy I guess. But you know what, I don’t mind the gaps. It gives the web rhythm.
Still, there’s lots of interaction design to be explored. If the native feedback mechanisms of the browser (blank page, loading animation) aren’t enough, we’re going to have to design these ourselves. Something we seem to be pretty bad at so far. iOS has helped demonstrate the gaps between pages (or states) are important to the experience. The transitions are subtle, tasteful and have an element of physicality, but only designers pay attention to them. For everyone else they’re just the seams, the edges of the experience and unbeknown to them, feedback.
Things are changing. Back to my eggs…