into a Web-based service that brokers payments with other e-commerce sites. Faced with a confusing UI design, he tried several times to enter his card information, but the system kept rejecting it for unstated reasons (if an application knows enough to reject user entries, it should tell the user why). Finally he gave up. Soon he got a call from the credit card issuer, reporting a suspicious pattern of eight one-dollar charges.
It looked like a thief might have been gearing up for a big scam, so the issuer suspended his card. Next, my colleague's wife called to report that a store had rejected her credit card. Apparently, the Web site he was using tested user-entered credit card information by making a one-dollar purchase and then issuing a one-dollar credit. This was the strange pattern the card issuer had detected. The combination of a confusing UI design and this particular card testing method resulted in considerable inconvenience for my colleague and his family. Do you think he'll use that online service again? Do you think I will, now that he told me his story?
In the rush to get your novel application out the door or your slick Web site in front of the world, don't forget all we've already learned about software engineering, human-computer interaction, and quality management. It could make the difference between enjoying a lucrative IPO and becoming a former employee of a defunct dot-com that had clever commercials, but crummy products.






