It was five minutes before my meeting with a colleague (on usability, in fact!), and I was shutting down my laptop to head over to the meeting room. Earlier in the day I’d noticed that little exclamation point on my Windows Shutdown button, indicating that updates would be installed when I shut down. However, in my rush to get to the meeting my hand went on autopilot and I clicked the Shutdown button before I remembered the updates.

18 updates this time. Of all the days. Well, I thought to myself, hopefully they’ll be fast.

They weren’t.

20 minutes later, I finally made it to my meeting. (Fortunately, my Android tablet doesn’t have these types of usability issues, so I got a message to my colleague about the delay.) Ah, the irony: poor usability got in the way of my getting to my usability meeting!

Two key usability principles were violated in this experience. The first is that good design gives the user a choice when a course of action could have negative consequences. Windows should have told me approximately how long the updates would take to install, and then let me choose whether or not to install the updates at that time.

The second is that good design is forgiving. Errors should be easy to correct. I hadn’t meant to start the update process, but once I did, there was no way to cancel or pause the updates—only the ominous warning not to shut off my machine. (I learned the hard way that the warning is valid. Once a similar update was making me late for a critical meeting where I was presenting. In desperation I shut the machine off anyway, and it was never the same afterward.)

I’m sure the person who designed the interface and process thought they were justified in not giving me a choice of when to install the updates. After all, updates are good, and people shouldn’t delay installing them. Reasonable assumptions, right?

Not for me that day.

Usable design doesn’t impose assumptions on users; instead, it gives them the ability to make choices and recover from those choices when necessary.