Friday, January 06, 2006

How Bad Software Impedes Good Citizenship

A New Years resolution is to do my bit for Social Capital by logging feedback on stuff I buy from Amazon - I use other user's opinions to make buying choices, so I owe them mine. But like all good resolutions, this is hard to do - Amazon's feedback mechanism forces you to spend lots of your precious time wrestling with a poorly designed GUI.

It starts well. A few weeks after you've bought something from an Amazon.co.uk Marketplace vendor, they mail you a request for feedback, complete with two links and instructions.

The instructions are incorrect, but after 5 minutes and 3 logins, it turns out all you have to do is review prior orders - those from Marketplace vendors have a helpful Feedback button.

This takes you to a feedback screen with 3 functional blocks:
:
1. The Vendor Rating (excellent to lousy), implemented with 5 radio buttons backed with explanatory text. Fine

2. A Comments section - single line text box about 50 characters wide, allowing input of up to 400 characters. If your message exceeds box width, you'll need to scroll horizontally to review it. This is awful - designers should always provide text boxes big enough for the largest possible message. This conserves their customer's precious time, since they can review at a glance what they've written and fix any errors.

3. A Submit button. Looks OK, but if you click it without filling in the horrible text box, it gives you an error message!

The correct way to deal with mandatory fields is a) to identify them as such (Amazon doesn't) and b) don't enable the Submit button until all the mandatories are completed. This provides a better user experience, and is easily coded to run locally in your PC thus saving bandwidth and needless cruelty to electrons.

So, Amazon developer readers, here's my ratings for your Marketplace Feedback GUI (I'm waiving my usual consultancy fee):

Email: Links - Good, Text - Very Poor
Order Review Screen - Excellent
Marketplace rating screen: Very Poor