The real value of undo
The true value of undo lies not only in the ability to correct mistakes but also in encouraging exploration and learning which affects confidence in work. It is especially important that Web interfaces be forgiving and allow the users to get confidence since they mostly don’t have it.
Although this topic was discussed earlier, a recent debate with colleagues lead me to once again, briefly, point out the importance of undo feature. Back in 2007, A List Apart published Never Use a Warning When you Mean Undo, and we are still not there yet. It is a shame that in 2010 this feature is almost ignored on the Web. The problem is that designers overlook the possibility to undo things on Web. Except for a few examples, all you can have are confirmation dialogs. Forgiving, but not enough.
Users make easy decisions and perform fast actions when they know they are correctable. They are confident in using such systems. For instance, they easily add a product to shopping cart but they are not even closely confident when placing the order.
In his book The Laws of Simplicity, John Maeda writes about undoable purchases:
Knowing that a purchase is correctable later makes the shopping process simpler because you know that any decision made is not final. Indeed, today’s customers don’t expect to be held accountable for their purchase. Eager to build consumer trust in their brands, companies are willing to assume the extra risk inherent in a returnable purchase. The losses incurred by the cost of returned goods are outweighed by the gains in customer trust. That is the power of undo.
So let’s not forget that undo (and forgiveness in general) is much more than possibility to correct an error. It’s much more than Ctrl-Z.
* * *
Remember RSS? You can subscribe to my blog here.
35 Comments
A great point you raise and something that I do agree is almost completely ignored on the web.
When we stumble over a function that is so widely used in desktop applications, you’d only think everyone would want to adopt that functionality and bring it to the web. Its crazy how Undo seems to have been forgotten in this instance.
I think I’ll have to ensure I have some undo functionality in my next app. At least I know you’ll have my back if I do! :)
JB
Great Post. I only wish there was Ctrl + z in life.
Exactly. Can you imagine any desktop tool (Photoshop for instance) without undo feature? We’ll never be here without it.
Undo is a priceless tool ensuring safe exploration, without a doubt. The problem is that often it is darn hard to convince the board to spend extra effort on this feature…
I am glad that you mentioned it. We are not aware of how much tecnology changed our lives. When I break something (a glass for example) I instantly wish to undo it (well not all the time, but it happens).
The point it that we are so used to it that we expect it to be everywhere around us.
Yes, it is a real problem. If they do not consider it common sense it is highly likely they won’t spend any effort :(
I love that you mentioned John’s book. I read it, and then like a month later he became the president of my school, and got to know him quite well.
I agree completely. Undo is something that I really wish I could implement easier, because it really is needed.
Allan Cooper in "About Face 3" really hashes over the importance of undo. As well as save and other things we dont think enough about. Great book all around.
great point, good UX is always harder to implement
Haha I hear you there. There have actually been times in the day where I’ve thought Ctrl + z and for a split second thought it was going to work.
Janko, thanks for the reminder/insight. Now that it’s back on my radar I’ll be bringing this up again. Funny how things like this just sort of float away with everything else that is going on in the web world.
Im still newbie about UI, thanks for your great tips! I learn a lot from your previous post.
Forgiveness in general definitely helps with our confidence. Great post.
Not trying to promote the idea – but, many times "Undo" is sacrificed to save extra coding (thus development cost).
But you are absolutely correct "Undo is priceless". You may need to explain the real value of "Undo" to different clients / project owners differently.
For Example:
Undo = 100% Money Back Guarantee
Undo = More User Confidence
Undo = More Response To Call to Action
Hi Janko,
You have discussed a good point although, many developers and coders don’t take it much seriously. There must be an undo feature rather a warning dialog box. It is correct that common user may want to undo some changes after some time. Hopefully this feature will be considered in new applications made, in coming days.
And forgot to say that Your blog is good :-)
Another great post Janko.
Got to agree, everytime im on some sort of software i immediatley try to undo something as i always mess up, lol.
Its something you must have in any software package, people are after all only human, and do make mistakes.
When i was younger after playing a lot games like Doom, Quake and similar, i found myself trying to do Save in mind before crossing the street :) Scary experience need to say.
Back to the topic, web experience should not be different from the desktop in UI and not different in real life in terms of being confident you can "undo" your action. Things should become more and more easy to do and convenient for customers at the first place, companies should ensure protection FOR customers not FROM customers.
Thanks for a link from A List Apart! Enjoyed it!
Yeah such things used to happen to me as well :D The article on A List Apart is really great read even though it is 3 years old.
:) :)
thank you dear Janko for this great post .
Yeah, John’s book is truly amazing. Allan’s is waiting to be read :)
It is important for designers to understand it seriously, and explain its value to clients (and developers). It’s the same as with usability testing.
Good point but, I do think a lot of webshops do have undo functionalities. When I buy something on a website like http://www.lafraise.com, I can return the items when, for example, I don’t like the shirt. You can’t really undo the placement of the order but you can return the items. It’s like in real life shopping, when I buy a pair of socks for example. After 3 minutes I can’t say something like "please undo the transaction", but usually I’m able to return the item and get some kind of coupon.
I do wish I had a cmd + z function in real life though.. Just yesterday I dropped a tray full of glasses, before the whole thing hit the floor I was thinking "cmd + z!"
Funny thing though, I expected a whole different kind of article. More about the (non-)value when using it in applications like Photoshop and Illustrator! Good short article though (:
That is true, there are places where you can "undo" purchases by returning items. Shopping process is a good example of how undo can be supported, but there are a lot (and I mean a LOT) of web applications that doesn’t support undo even for simpler action than shopping.
Seems as if there is no common sense among many designers nor businesses.
Yes, good point, but something that comes to my mind talking about this topic, why has not been adopted as a practice? it is no common to find this kind of functionality on web apps, if the people who build software and web applications are not adding the undo function as a "required" (like validations for example) it is because people (users) are not using it or they don´t need it at all, so if you build software who can guide a user for the correct way of doing certain operations, we can avoid spending efforts on coding something that it is not going to be used…..
Good article
Hmm, I’m wondering which web applications you are refereeing to. Do you mean things like twitter? You can’t undo tweeting but you can remove them, which in my opinion is undo’ing.
I can’t find a undo button anywhere on your site when I submitted a comment (;
I am here talking about web apps I had a chance to see during development phase and watch people using them, and about projects I was involved in earlier, but I don’t want to compromise any of them :)
But I am also referring to general attitude that it is something irrelevant. I am glad to see positive comments here, but I know that situation is a bit different when it comes to design and implementation.
My blog is a good example – it should have undo feature (actually allowing editing comments for a couple of minutes after submission). The blog engine I use doesn’t have such feature so I would have to develop it from scratch, I guess.
About your blog – I don’t think it needs an undo feature. People need to think before commenting, when they did there’s no need to edit it. When people don’t think about there comment, there’s not worthy to read or invest a lot of time in develop such a feature. I always re-read my post before submitting, mainly because I want to check if there aren’t any weird sentences or huge spelling mistakes. Another reason why I re-read my comments is to check if I’m really commenting what I want to say. When I know I’ll be able to edit my comment I tend to be less thoughtful about what I’m writing.
That is a good point and I agree that it would be nice if everyone think about what they write. But many readers submit comments without double checking it, so typos and errors are not that rare.
I’ve tried to pitch this idea to my company a few times too, but the reason that many RIA’s don’t have an undo option seems to be of strong technical reasons. Think about facebook for example, if I would be able to undo friend-request, what should they do with the email that has been sent out. Or if I’m able to undo a blogpost how do I undo the rss feed that is published and ended up at some-ones rss feed.
It creates a situation where many but not all actions can be undone, I’m not sure what is better, having a system where the user knows that nothing can be undone, or having a system where something can be undone, but other can.
But I agree with you, from a designer and user point of view, I would totally favour undo, but I think it’s not because designers are dumb that we hardly see this functionality
Sjors, I don’t think that designers are dumb, and I didn’t intend to sound like that.
Of course, some actions can’t be undone – no question about it. But many can be: deletions, transfers, imports and so on. There are infinite number of business rules implemented in web apps and each require consideration.
Gmail actually has an option to undo the sending of an email. They delay the sending of the email by X seconds; you have X seconds to click on the undo button before it disappears.
We’ve experimented around with the undo option in our shopping cart, and had mixed success. Asrar…I wasn’t aware you could get out of sending a gmail, good to know!
Very true. I completely agree with you. Even I ignore this feature most of the time :(
Absolutely true. Until now I had not really realized how important this functionality, not only in desktop tools, also on the web.
I couldn’t agree more more, ctrl-z is much more than just an undo tool and is the most helpful tool! If only you could undo things in real life!!
Hi Janko,
I am not a developer nor a designer but I feel for you. I think I belong more on the user group but I’m glad that you brought this up and the essence of Undo. Just like most people who commented, I wish life has Undo too. But maybe if we have that, people would abuse it. Perhaps some interfaces neglect or purposely do so in order to teach users the value of making final decisions with their works and not being too indecisive.
@Asrar: Sometimes undo can easily be done (such as you mentioned in the GMail example). But other times it is not worth the effort. Sometimes “delete” is really the only practical option.