There is little more frustrating when using a computer than message boxes. Technical people ignore them because we think we know they don’t mean anything, and non-technical people just use a rule of thumb (always yes or always cancel). No-one ever reads the small print.
There’s not much point asking users if they’re sure before letting them do something. They will be absolutely positively sure. Until shortly after they’ve actually done it. Instead, we should accept that users make mistakes. Rather than blame them for blindly clicking OK on our message boxes, we should embrace the human condition and strive to try and provide rollback with *all* functions in our applications.
“Are you sure you want to book 3000 items of stock in?”
“3000 items of stock booked in.” and offer CTRL+Z to simply remove those 3000 items again instantly.
This is a hard thing to get people to come round to. It’s so ingrained to rely on confirmation *before* the action. Maybe we should be more forgiving and provide a means to recover from their mistakes, rather than having them hit our call centre in a panic when something goes wrong?
Note that I’m not saying you should never use messageboxes. I’m just suggesting that the “Are you sure?” concept in particular be avoided.