Destructive Actions and User Interfaces
I think recognizing when you make a mistake and being able to learn from it is an essential part of being a professional in any field.
I had an incident occur a few weeks ago on a web application I had built a couple of years ago. The web app in question was a document repository that was a part of a larger site that I had built for a campus club at Wilfrid Laurier University. The chain of events was that a user logged in using Internet Explorer (which was not supported), wanted to delete a folder that was within another folder, clicked delete, IE crashed, and then when the user realized that the parent folder was deleted instead of the folder they wanted to delete.
The fix that I had to perform involved contacting our web hosting provider to restore a filesystem backup from a day earlier and then downloading and clearing the restored files from the server filesystem to get the document repository filesystem and database back into sync. Finally I re-uploaded the files through the web interface and changed the ownerships and permissions to match up with the files’ states prior to the deletion.
Ultimately, these were simple mistakes. Taking a user interface to the next level requires recognizing what actions could be destructive mistakes, warning the user about the destructive nature of the action, and finally providing a way to reverse those potential mistakes. Failure to perform this analysis or performing it incorrectly will probably lead to at least one upset user.