Nothing shows you don't value your users or online customers more than wasting their time. And one of the biggest things that wastes time is requiring them to type in something to your app that they don't need to.
All programmers are taught (or hopefully are taught) as part of database normalization techniques that you should never store something that can be computed from another piece of data. The canonical example is not to store a person's age when you also store their birth date. There are lots of reasons to normalize data in a database (and a few reasons to unnormalize it, as well). One of the primary purposes of normalization is to eliminate data redundancy.
What I am proposing is that there should be a theory of data entry normalization, aimed at eliminating data redundancy during its input. Because humans are slow. They are error prone. And most importantly, they have better things to do besides filling out fields on your web site when you could do it for them.
Here are some examples of what I am talking about:
- USE INTELLIGENT, DYNAMIC DEFAULTS! Yes, technically it is "fair" and culturally unbiased to list all countries in a drop-down alphabetically. It is also exceedingly stupid and shows how little you value your user's time. Afghanistan and Andorra may come before the United States in the dictionary, but that's no reason they should automatically be first in a drop down (unless your app is aimed primarily at Afghans or Andorrans). Use some IP geolocation service to intelligently predict the country to show on top (while this can be notoriously wrong based on various issues, it is probably correct at the country level). Or else use the data from your user base, expected or actual, to move the most popular country first. I'm not even trying to be Western-centric here - almost a quarter of all Internet users are Chinese, so if you expect equal market penetration there as elsewhere, put China first for all I care. Just try and be somewhat more intelligent about it than a completely alphabetized list.
- And while we're on the subject of location, if they must enter shipping or billing address information on your site, then ask your users for their postal code first. Don't place it last on the address form simply because that's where it lives on a snail mail envelope (how quaint). From that postal code you can figure out state or province at a minimum, and depending on the postal code's accuracy, the county or district, city and possibly even street as well.
- If the page is asking for credit card information, it should never ask for the credit card type, since that can be calculated from the credit card number.
- If you ask them to fill in a title (Mr. Mrs., Ms., Dr., etc.), they do, and the title is gender-specific, then don't ask for their gender, too.
Because I am not so naive as to think that every system doesn't need human overrides, I am not saying you shouldn't display the fields you can pre-calculate based on the above, but simply that you pre-populate them once you have enough information to do so, so that 99.999999% of the time the user only has to glance at it for accuracy before hitting submit. This also implies that certain fields (such as postal code) should come earlier than they typically do on the data entry form.
You can say you treat your customers with respect, or you can show them. Showing them is better. And more importantly, it makes the data entry process more efficient, saving them time and frustration, and increasing the likelihood of them completing the registration, transaction or whatever (how many times have you stopped in the middle of a complicated registration because it just got too frustrating, asked too much information, or simply took too long?)
Data entry normalization - I think its time has come. Perhaps we can even start talking about what the "normal forms" for it should be.
What other examples can you think of? What's your favorite pet peeve when filling out a web form?

2 comments:
Similar problem with phone trees.
- Call in: enter your account number.
- Traverse a couple choices and then: enter your account number.
- Finally get to a human, and respond to the question: say your account number. Because it might have gone stale since you initiated the call.
I forgive asking for phone number on an 800 call, because you could be calling about a different account. But please, only ask this once.
Aaron,
Yup, yup, yup. I figure whenever you have to re-enter your acct number in a phone menu system it is because you've been transferred between departments, each of which has its own system. But that's no excuse.
In each case it is an example of a company valuing the time of a few technicians over the time of their entire customer base.
I wonder how much lost productivity is caused by user data entry - online, on phone systems, etc. - not being in "normal form?" I am betting the answer is in the millions of man-hours a year.
Post a Comment