A recent article reminded me how much I loved Super Mario Brothers. We already had acomputer with a few games, but Nintendo was a whole new world. The graphics were rich, controller interaction was innovative, and the characters on the screen responded instantaneously. That last point really made the game. The animation wasn’t great, but it was super fast.
The ideal software interfaces respond immediately, but that isn’t always possible. Sometimes your UI just needs to be slow. However, how slow it feels to your users has more to do with the presentation than the responsiveness.
Software responsiveness is measured in seconds. This might not seem like a long time, but waiting 10 seconds for a file to save feels like an eternity. Make users wait too many times and they’ll stop waiting and use something else. Start making your software feel faster with testing.
The first step is to know how fast —or slow— your software is for your users. Remember that their performance is almost always worse than yours. You probably have a new computer with the latest browsers, but most of your users won’t. Decide what combinations of computers, operating systems, and browsers you support and then test them.
If you’re developing a web page don’t forget about connection speeds. Loading the page from your hard disk is as fast as it will ever be. Most users will view your page from far away over a much slower connection so don’t forget to test it from another computer.
Fast is just a state of mind
Create a list of the fastest and slowest platforms you support. Once you know the speeds you are working with you can change your design to make it feel faster.
So how do you make something slow seem faster? I had this problem with a couple of years ago. I was working on a development tool that had to commit files to a version control system. With larger projects this process took more than a minute. I didn’t know how long the process would take so I showed a spinning progress indicator. The kind that lets you know something is happening without telling you how long it will take. Almost everyone compained the software was way too slow.
I couldn’t really make things go any faster, so I changed the presentation. I created a dialog showing each file as it is loaded and transmitted to the version control server. The list of files flew by as the operation processed thousands of files. After I added the dialog dozens of users thanked me for making the process so much faster. Of course it wasn’t —the complex dialog probably made it slightly slower— it just felt faster.
The dialog wasn’t pretty, and was probably a little too complex, but it got the job done. The user experience of the feature changed and nobody complained about the speed after that.
Make it feel faster
So now you know why speed is important, and why it is just a matter of perception. Here are a few ways to make your UI feel fsster.
Set expectations. If something will take a long time let the user know. This could be explicit like a message saying Be patient this will take a while, or implicit by warning them it is a long running operation like uploading files.
Be specific. Instead of a never ending progress bar give it a percentage. If your uploading a set of files name each file as it uploads. Waiting feels faster with more information.
Add a cancel button. The more control you have the faster it feels. Give the user a chance to cancel the operation in progress.
Make it faster. Making your application behave well is a good idea, but faster is always better. If you’re creating a website you should always test it with a product like YSlow from Yahoo!
You can’t make the Internet any faster and you can’t buy all of your users new computers. Make your software run faster, and then make it feel faster. Give the user more information and your slow patches will fly by in no time at all.