Sometimes the illusion of performance is enough.
Here's an example:
I just tried to copy a DVD full of files over to my hard drive. It got part way through and then it threw an exception. Some of the files got over, some didn't. So now, I'm copying the files one by one. This is a slow (and annoying) process.
But copying them as a group seems faster.
I'm not sure that the actual time taken by the computer will be that different, more that my interaction will slow the process down.
This is a great example of how the time involved is similar, but the effort and inconvenience is higher when moving over files one by one.
This is demonstrating is that by using a "natural break" in the process, it seems easier and faster.
This is a lesson for application design. Look for
- breaks in the workflow that can be unobtrusive to the user
- ways to group actions without involving the user (could be as simple as multiselect in a list)
And this will help your application appear to be efficient.
Try to avoid:
- frequent pauses and halts to in workflows
- lack of feedback about what the computer is doing
These make your application annoying and slow.
Some simple rules:
- always give feedback to the user, especially where the delay could be more than half a second
- show them that the process is still executing
- if possible tell them exactly the progress of the task and the expected completion