On the face of it, the case for “undo” is pretty well unassailable. If your application has a feature that allows the user to delete something (particularly something they created), then 99% of those that hit the delete button mean it. They want it gone. End of story. For those 1% that didn’t mean it (accidental click, didn’t understand what delete really meant, etc.), being able to undo the action is very nice. It might even make the difference between a good application and a great one. After all, user input is (or should be!) sacred. Throwing input away without the user being completely happy with that is very, very bad.
So it’s interesting that the reaction from the technical side of the room is, shall we say, luke warm. Here we see a bunch of developers getting dangerously close to saying that because implementing undo is hard, it shouldn’t be done. One commenter even hints darkly about “…the inconsistency between [users’] mental model and the actual state of the persistent data on the server”.
This, if I may say so, is bollocks. This idea that a bit of technical inconvenience trumps the delivery a great user experience is straight out of 1985. It reminds me of all the forms I’ve filled out that tell me my address is “too long” or that I have spaces in my telephone number. Pure, experience-wrecking bollocks.