I click and I click but nothing happens!
I’ve been surfing the web since it arrived in the 90s. So why do I still click several times on the mouse when a page fails to load within a few seconds? I know very well that with each click I’m sending another request to the web server. I’m basically stabbing it to death with my mouse.
So why? Because I’m freakin’ frustrated, that’s why. I grew up with MTV, if nothing happens within 3 seconds I get so bored I throw a fit or fall asleep. The average user sense a delay if it takes more than one second for something to happen after they click their beloved mouse.
So what does that mean in my world? It means that when developing a new web based service, focus on speed is vital. I don’t care how many great features you cram into the product, If it doesn’t look good and load fast you’ve still got a problem. Below are some basic guidelines when developing your new website.
- Surfing your service (loading the login page, logging in and clicking on the available menu items) should on average take less than one second per click, and never more than two seconds.
- Any action that takes more than three seconds on average need some kind of visual notification. Put in a a load bar or a blinking “Please wait” to make sure the user doesn’t forget that he actually did click when he wakes up again.
- Nothing (including reports) should take more than 10 seconds to load. Ever. That’s an eternity. Most people on Facebook was born less than ten seconds ago. If your report takes more than ten seconds, pre-fetch it and store it in cache or on disk. Or you can send it to the user async via email, so that you can respond to the user immediately with “Your report will be delivered to your email shortly”.
But what about the internet itself, you ask. My server is super fast, but my site still loads slow for some customers! A study showed that on average it takes 6 seconds for a page to fully load. Only 0.6 of that time was server processing. 1.4 seconds was the actual network traffic, and 4 seconds was processing on the client computer.
So your code should be lean, just as your development process. Hopefully your service is about improving a process that creates value for your customer. That means the faster your service is, the more value (and less frustrated) your customer will get.
So the next time your customer or product manager asks for an animated duck in the background of the new administration interface, make sure he knows that it will slow down the load time of each page with several seconds. When you ask “Does the duck add value?” and your product manager says “Yes”, you can kick him in the knee and tell it’s from me.