Thursday, November 7, 2013

Programmer's Diary: Usability Failure

This is a repost from my old blog. Original post date June 9, 2013.

My wife suggested to try and buy eggs from an egg dispenser (vending machine). Not exactly the model on the right, but something similar.

Even though we finally managed to buy the eggs, it was quite an interesting experience. First of all you start by pressing a button to rotate the internal shelfs so that what you want lines up with a sliding door. Each shelf has it's own door.

Than you have to put in the money. We first tried with a 10RON bill for a 3.5RON package. It just refused to take the bill. I can only presume that it had no way to give me the change and this was the reason for the refuse. However there was no indication of such a logic. And yes, I tried a couple different 10RON bills.

Then we went on and found 4 pieces of 1RON bills. After some trial and error it accepted all 4 of them. However I was required to try at least 10 times to insert them. Again, there was no feedback from the machine about the reason why it refused my bills.

Another problem was that there was no way to cancel the operation. So if I inserted 2 bills with success and then if it refused the other 2, I would have no way to get my money back.

Finally I had all my money inserted, a total of 4RON for a 3.5RON package. Now, there were about 10 shelfs with 10 doors. Only 1 or 2 doors actually had any products on them. The trick was that the machine had no idea about which shelfs are full and which one are empty. You had to open the proper door and only that. If you, by mistake, opened a door to an empty shelf, bye-bye money... At least there was a red text with an attention sign telling me this. But I totally think that the decision should be the machine's and not mine. If there is no product on a shelf, just don't let me open the door by mistake and loose my money.

I am wondering how many people can actually use this vending machine without falling in any of the above described usability traps? If you are a software developer or some kind of user interface designer, being it physical UI like a vending machine or a purely virtual one like an interactive web-page, keep in mind that we, the users, just want things to be done quickly and as painlessly as possible. Don't put traps and tricks in our way because we will not use your product the second time.