“As a user I don’t want to fix problems that could be fixed by the program itself.” – might be a user story that should be applied to almost every software out there.
If you want your software to succeed, you should think about some tasks you could take off of your users responsibilities. I use LINQPad as a code scratchpad during my daily work. Sometimes I want to test a simple statement with the ‘C# Expression’ feature.
In this case, as a programmer, you are familiar with ending each statement with a semicolon. LINQPad does not allow that when using single expressions. Why should the software raise an exception in this case, when it is possible to easily remove the semicolon at the end of line.
It might sound stupid, but think of your users as they would behave like the most stupid user you might imagine.
Try to guide them through your application, but do not ask to much of them.
Today, during my work with Visual Paradigm, a dialog appeared in the upper right corner. My focus went up, away from what I was currently doing, I read the story it was telling me and my thirst thought running through my mind was: “So what?”.
I was trying to bring a control to front, but it was already there. If you don’t mind my saying, that’s a dialog I didn’t expect to see. It is telling me, that an operation that I tried to execute couldn’t be executed, because it wouldn’t change anything. Inexperienced users might think they would have done something wrong, while scratching their head.
That reminds me of my colleague tapping Ctrl + C for copying something four, maybe five, times repeatedly popping up an message for every tap: “Cannot copy content because it is in your clipboard already”
Now to one aspect the guys from Visual Paradigm solved perfectly. The message doesn’t need acknowledge, like a message box would, the user can continue work and the dialog will fade out after 10 seconds without any further action needed. That’s the behavior I’d expect when displaying a message of that severity.