More and more often, I’m using applications that make me think “gee, this could need some improvement”. I am therefore starting to collect RBUs. RBU stands for “request by user” and will collect ideas that should be considered when writing software and is aimed at improving user experience.
RBU 001 is about making people wait. It happens all the time: you click somewhere in an application, and without knowing it, you’ve kicked off a time consuming task that leaves you watching sand run through an hourglass.
Don’t make me wait in the dark. When writing code that may potentially take some time before it ends (like walking through a directory of files, where processing 100000 files may take a while, even if some people only have 5 files there), provide
a) visual feedback of the process
b) an option to cancel
It is no good idea to “just do it”, as the user may think the program has crashed, kill it via task manager, and make matters worse. The event that made me think about that was a program trying to generate preview images for more than a hundred movie files, which took about an hour. If I had had the chance, I would have cancelled it immediately. It would have been even better to ask “this may take some time. Do you want me to generate thumbnails now or skip it until later?”.
I guess this applies to a lot of file system related stuff, but also to network operations, which take far too long to complete when there’s something wrong with the network. Use timers, for god’s sake…