Computing Pet Peeves?
Matthaeus asks: "I'm a 3rd-year CS student who will most likely be writing end-user applications after graduation. Naturally, I would like my apps to sell well, so I want to minimize user annoyance as much as possible. In an effort to improve my coding skills, what are Slashdot readers' biggest pet peeves when it comes to software? For example, my largest pet peeve is when a program steals the focus from another program while I'm typing. Maybe other software developers could take notice of this discussion also."
2. The Escape key should always do just that.
3. If the app is going to try to hold my hand, give me the option to turn it off.
4. If it's a Windows app, follow the darned CUA guidelines !
5. If there's an operation that's going to take a long time, give me a progress indicator.
6. But if you're going to give me a progress indicator, make it mean something--don't let it move across like the progress bar on MSIE when it can't connect to a site.
I'm sure there are about a hundred more that I can't think of this early in the morning. Good luck!
One CPU cycle wasted on digital restrictions management is ONE TOO MANY.
Contrary to what some people think, it is not clever or funny to funky new widgets and dialogs in place of standard ones. Does the standard windows file->open dialog need improving? Maybe. Are you the one to do it? No.
Other peeves include:
Not having tooltips. Tooltips are good. Use them. Everywhere.
Useless error messages. I know it's a pain but there's nothing worse than a regularly re-produceable error state that gives no information.
Useless help files. If you don't have time to create help documentation, then don't bother to do any. It's a waste of user time looking though unhelpful help files.
I'd re-iterate what others have said about progress bars. I'd also add:
* Threading. Be able to do two things at once. I don't care what the app is calculating, I should still be able to move the window and have it re-paint properly at all times.
* Interruption. I should be able to cancel anything the app is doing. I hate waiting around for an app to timeout on some operation.
-----