I'm creating an editor to write requirements and I want to give suggestions to the user about what to write. How fast do I've to present the suggestion so that it feels responsive to the user. (responsive as in speed, not as in a responsive design). More in general, which speed is acceptable for users to work with?
Time is only one of the factors that affect whether an app feels responsive. However there are decent guidelines that give you a rough idea of how people perceive response.
Jakob Nielsen has written a good article on Response times that I use as a rough guide. It states that:
- 0.1 second is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.
- 1.0 second is about the limit for the user's flow of thought to stay uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.
- 10 seconds is about the limit for keeping the user's attention focused on the dialogue. For longer delays, users will want to perform other tasks while waiting for the computer to finish, so they should be given feedback indicating when the computer expects to be done. Feedback during the delay is especially important if the response time is likely to be highly variable, since users will then not know what to expect.
Responsiveness is more than loading content or list items. Make sure you give the user feedback when interacting.. This can be the button looks 'pressed', a sound, animation, vibration.
The important thing is to make sure the user knows what's going on(that it is loading) This will greatly increase their patience in waiting for your app..
As said above, it all depends on how the information is presented along with the time it takes. Sometimes just auto-completing the sentence as the user types might be effective but that also begs the question about offering selection options to the user so that they can then choose the path they want to take while blowing away what they were already presented and simply moving on.
If you're going to present the user with a selection option list then do you want to stop their workflow and present them with these options or do you want them continue and load it on the screen for them to choose?
In either case, I would give it 2 seconds at most because you want to grab a vast majority of users who type fast as well as slow. Under a second might be too fast of a time which will not give slow typists enough time to finish what they were typing thereby allowing your system the amount of time to make a valid decision on what you need to present to them.