If Your Website Or Search Isn't As Fast As Google, It's Too SlowJanuary 21, 2013
40 years ago there was no Fedex, no email, no Twitter, and everything moved at a slow pace. You could send paper via a fax machine or call someone on the phone, but if you didn't get them immediately, there was always tomorrow.
Today no one wants to wait for anything. Not only do people have high speed internet connections and computers that are ridiculously fast, they have expectations that everything should just appear on demand. Waiting for Godot is yesterday's story.
If I click on a link to read a story and it doesn't appear within a few seconds I leave. If I search for something on an ecommerce site and I get no response quickly again I'm likely to go elsewhere. Sure I understand how the internet works and that packets can get stuck in so many ways (especially in my Time Warner cable head) but I have been taught like everyone else that stuff should appear in 0.20 seconds, as Google proudly puts in its search results.
Now my employer's industry is built on search, without search you can't get anyone to part with money. Our's is pretty slow and most of our competitors are a bit faster, but no where near Google speed, and that bothers me. Now take a slow search on the web and run it via webservice in an app and now everyone thinks the app is slow. Slow affects everything. If people lose patience and leave your site or app and go to a competitor you've probably lost a current and future customer. If you can't return results fast enough to satisfy the Googlespeed user it will cost money.
Of course Google is fast at virtually everything because they have spent enormous effort at designing systems to do everything fast, as getting you what you want fast gets you to their ads faster and they make money faster. Fast however takes more than just tweaking a few parameters; it's a base design philosophy that has to be there from day one.
I've been in situations where things were really slow from the start, and I had to come up with some way to speed them up, in both client-side situations (MMO game) and server side (both web and batch processing). It takes a lot of imagination, first to discover ways to track and measure what you have to start with, then to find some way to get the speed despite the sluggish existing system. It's not easy to do and often conventional thinking gets you nowhere. Google's founders had some unique and original ideas to start with that did not fit in any conventional design. From practical experience it's much easier to start thinking rabbit than to try to speed up a turtle later.
The longer a slow system exists the more unlikely you could ever make it faster, much less Googlespeed. I've heard people say "we'll just add some more caching", but my rule is "if you try to fix slow with caching, now you have two problems". Caching itself can be problematic, both in keeping the caches warm and in avoiding the issue of staleness. In my employer's industry caching is often necessary since we interact with external customer systems we have no control over, but staleness results in mis-pricing and customer irritation. Yet even with extensive caching of the data we do manage ourselves the speed is still an order of magnitude slower than a Google.
As Amazon tries to support same-day shipping so we can our goodies even faster all it does is teach people that waiting is unacceptable. This in turn puts pressure on the software world to keep up. With Google now providing Gigabit network connections (oh to live in Kansas City) the network is now so fast I think people will expect data to appear before you request it. At those speeds waiting more than a couple seconds to get anything will be painful.
Sure it's easy to say "Google is too fast for us to do" but this attitude is not going to be acceptable for much longer. If Amazon can make dozens of webservice calls for every page and still deliver within a second or two then it should be possible for you to do it in at most four. Face it, Google and Amazon and even Facebook are the sites people visit a lot and now they assume we can all do that fast too.
So if you have a slow site or search, better make it fast or watch your customers leave even faster.