Every few years, I go through the tedious ritual of contacting all the companies that have my credit card number on file, and providing them with a new expiration date for the card. You see, the credit card issuers somehow think it makes everyone safer if a card is only good for say 3-5 years. To achieve this dubious benefit, both personal and business cardholders get saddled with the burden of updating their card info regularly. Since this situation probably won’t be changing any time soon, I’d like to propose some ways that businesses can make it easier on their customers.

Whether your card is stored for future purchases (like at Amazon) or used for an automatic charge every month (like at Netflix), the problem is the same. Somewhere along the way, you have to login to your account and update the credit card info. The situation is even worse when you’ve forgotten the login information for a site and have to expend extra effort to get into your account. Since customers typically have to jump through hoops to update their billing info, there’s a good chance they’ll give up or forget to do it. Once the old card stops working, you’ve just lost a customer (unless you like giving away products for free).

There’s no silver bullet to solving this, but we can do much better than the status quo. For starters, a few months before someone’s current card expires, email them about it or show an alert when they login to the site. This makes them aware that the card needs an update. Second, don’t require someone to login just to update their credit card. Instead, provide a way for customers to enter their existing credit card number and expiration date even if they don’t remember their username or other info. Then, if that card matches one that you have on file, let the customer complete the update right then and there. To allay any privacy concerns, this process would only be used to update key billing info like the credit card number, expiration date, and billing address. No other account info would be shown, nor could you edit things that aren’t critical for processing a credit card charge.

Think about it: Do you remember every website login that you created since your credit card was issued? I certainly don’t. By adopting the approach I described, you can help customers give you the info you need, and reduce attrition due to expiring credit cards.


Once in a while, I attend an online meeting using tools like WebEx or GoToMeeting. What always surprises me is how little thought the presenter or moderator puts into what other people can see on their screen. Instead of just sharing the window where the presentation or demo is taking place, they usually have their whole desktop shared. Thus, you can see other websites they have open, documents on their desktop, etc. But it got me thinking: How far should the software provider go to protect users from this sort of common mistake?

Generally speaking, it’s impossible to control every factor that might affect how people use your software. But assuming that you keep a record of frequently asked questions and common support tickets, you should be able to identify the top five or ten steps that customers can take to prevent problems and mishaps. In the online meeting example, the list might include something like this: “Select the window where your presentation will appear and click ‘Share this window’. Unless you want other people to see your desktop and other programs, don’t use the ‘Share my desktop’ option.”

Many vendors already do this, but they bury the most important info in the instruction manual or online help. People rarely use those tools unless they’re stuck. And the sort of issues I’m referring to are the ones that people don’t even know they have, since the program seems to be working fine. To fight this trend, you really need to build the functionality into the program itself. This might mean showing warning messages if they choose an option that shows too much data, or a diagnostic routine that runs before each session and tells them about possible trouble spots with the options they chose. Either way, when customers feel like you’re looking out for them, they’ll trust you more and reward you with greater usage of your product.


Let’s assume for a moment that you’re working on a product that has some bad design elements. Say, for instance, that the original developers forgot to add a few features, like a way for the user to rename or delete pages they’ve made. You know the right solution is to add these buttons where people expect to find them, but it’s too complex and costly to get that done right now. So, what should you do?

In this case, I would place a short piece of instructional text on the screen, precisely where the user would expect to find the buttons if they existed. Let’s take a missing Delete button, for example. Figure out where people tend to look for that button, maybe right next to Edit. Then, insert a little piece of text that says something like this: “Need to delete this page?” That text would link to a popup window, online help area, etc. that shows you how to do it. Even if the process is cumbersome, at least users can see how it’s done without hunting for a button that isn’t there.

Of course, you shouldn’t use this as a crutch and cram the screen full of extra text for every feature that’s hard to find. In the long run, you should fix the design so that users have easy access to the tools they need. But in the meantime, this approach can help reduce user frustration and lower the number of calls or emails where people ask “How do I delete a page?” and other basic questions. Plus, it shows users that you’re working towards a solution, even if that fix may be a long way off.


While trying to schedule an event online, I noticed something funny. There’s an optional feature to have the website remind you before the event, which I sometimes use for a 5 or 10 minute heads-up. But as I was scrolling through the choices, I noticed they switch arbitrarily between measures. After “9 hours,” “10 hours,” “11 hours,” it switches to “0.5 days,” which is just plain ugly.

Obviously, I know that 0.5 days equals 12 hours. Since 12 comes after 11, the menu is mathematically correct. But the inconsistent design is distracting to the user, requiring more mental cycles to browse through the list. Worse, if you’re looking for 12 hours, you might miss it entirely.

It’s no secret that variances in color, text size, and even writing style can be an effective way to highlight important points. But as this example shows, the same principle applies when you accidentally interrupt a clean design with something that doesn’t match up. It draws attention for the wrong reasons, and makes the product harder to use.


I’ve been using a particular bill payment site for over a year, but something has always bothered me about the confirmation screen. I finally figured out the problem: the graphics don’t make sense. In particular, they’re using a diamond-shaped image to indicate a successful payment. But people are trained to associate this with a warning or error message, rather than business as usual.

The takeaway here is pretty obvious. When picking graphics for your site, make sure they match up with what your text is saying. In other words, don’t put an image that is commonly used to indicate something went wrong (like a stop sign or the warning diamond from my example) on a page that says a transaction was successful.

With the web becoming so pervasive in our daily lives, I would argue that the attributes we associate with certain images are the same whether we see them online or offline. A stop sign on a website can be expected to make us pause just like it does when spotted ahead on the roadway. So, if you’re not sure what connotations a particular graphic might have, think about what it would mean if you saw it on a road sign or billboard. And if you still don’t know how to interpret it, perhaps it’s time to pick another graphic.


If customers have to register for your site before they can complete certain transactions, asking for less information is usually a good thing. So when I signed up for a new account on an e-commerce site a few days ago, I was pleased to see that all they asked for was my email address and a password of my choice. After I logged in, however, I was surprised that they had my name, phone number, and other info pre-filled.

Where did they get this data? It turns out that I requested info from the site earlier, and even though I never made an account, they associated the info with my email address in their database. Overall, I think this is a very smart move. The customer doesn’t have to register until they’re ready, but the site remembers what they put in earlier to save time.

The only thing that I’d recommend in this case is a little more disclosure of what’s going on. In particular, after filling out an info request form, it should say that the info you’ve provided will be saved with your email address in case you want to make an account later. Then, when you do register, it should advise you that the account has been populated with the info from earlier, and tell you how to edit that info if desired. Although I quickly realized what happened, since only a day elapsed between these steps, someone who completed them months apart would probably be a lot more confused.


I know I complain about salesforce.com a lot. Although it’s a solid product, I really wish they would pay more attention to some of the more mundane tasks, like adding and deleting users. My latest grievance: if you create a new user and the user has started using the site, you can never delete that user. Sure, you can mark them inactive, but their account info remains in your user list forever.

I’m guessing the technical reason for this is straightforward: Once the user creates any records in the database, there’s no way to delete the user without also deleting the records. So here’s a workaround: When deleting a user, just associate the orphaned records with “Deleted User”. Of course, this “user” wouldn’t appear in the users list — it’s just a dummy entry.

What if we assume that deleting old user data is impossible because of some other technical reason? There’s still hope. One simple approach is to automatically hide the inactive users from view, with a link to view them when desired. That way, even if users can’t get rid of the old info, at least they don’t have to have it staring them in the face.


In my experience, people are pretty careless by nature. Unless the stakes are really high, we’re not very good at double-checking things or spotting mistakes. Given this harsh reality, I’m amazed at how many people fail to take advantage of possibly the best error-prevention tool around: the copy and paste feature.

Case in point: I was helping someone configure a replacement computer for one of their customers, and we sent over a copy of all the network settings. These were double-checked in advance to verify their accuracy. But when the person on the other end got a hold of them, they swapped the IP address and the gateway address. Since this info was entered wrong, the computer didn’t work properly when it arrived at the site, and it took over an hour to correct the issue later.

Preventing this would have been really easy: First, locate the reference information (in this case, it’s part of an email). Then, copy and paste it into a temporary location, like a text document. This makes it easy to rearrange the info if need be. Next, go to the place you’ll be entering it (in this case, a web-based management site). Copy and paste the info from your temporary location into each matching field. And finally, just to make sure you pasted things in the right place, copy and paste the saved settings back into the temporary document you created. Make sure they match up line-by-line.

The total time you’ll need to do it this way, including the comparison at the end, is probably less than it would take to enter the info by hand. Of course, the chances of errors during data entry are vastly reduced by using copy and paste, and you gain an additional verification step to catch any remaining errors. So while this might seem like incredibly obvious advice, I’ll repeat it again: if you want to make fewer mistakes, use copy and paste whenever you can. And if possible, encourage the users of your products to do the same: they’ll spend less time cleaning up messes, and more time being productive.


When I think about the types of communication systems that companies use, it seems like phone menus are much more error-prone than email, websites, and other channels. This really isn’t that surprising. You can easily test the functionality of email and web forms by sending an email message, or navigating to and submitting the forms in various browsers. But when it comes to phone prompts and IVR menus, it’s much harder to figure out what to test and how to verify that each scenario is working properly.

Having worked with some of the best web-based PBX systems, I can vouch that the tools for creating IVR menus have come a long way in recent years. From your web browser, you can record the voice prompts, determine what order they’re played in, assign actions to each number, etc. When you’re done, you can even view a visual tree with the various paths a caller can choose from. But things aren’t as simple as they seem. There’s no easy way to see what happens if someone enters an invalid option on a menu, or just holds the line without choosing anything. Sure, there are controls in the PBX software for this, but no easy way to test them.

Thus, creating a phone menu system where customers can’t get confused or stuck requires a lot of manual testing. You have to make up your own test procedures and update them every time the menu structure changes. Here’s how I would fix the problem: The PBX software already knows all the possible options, delays, and paths that a caller can use. Based on this, it could generate a testing checklist that includes each sequence of caller behaviors, and the expected result.

With this information, the user could print out the testing procedure, try each combination on the phone system, and make sure it checks out. Plus, since the testing list is generated dynamically, it’s easy to re-test the new cases after changes have been made. Even better, the test cases could be numbered and the results stored online for ease of reference. Granted, this isn’t a silver bullet, as someone still has to try the test cases (after all, there’s no other way to know if the right sound is playing or a message gets cut off). But this approach would certainly make it easier for PBX administrators to deliver error-free phone menus with less time and stress. Of course, that’s a great thing for the customers using those menus. They’ll run into fewer confusing options and dead ends, which means a greater chance of actually getting the info they need.


No matter how easy it might be to get a product out of the box, it’s usually a nightmare to get it back in there later. For products that are designed to be carried around, like mobile phones, this probably doesn’t matter: you just stash them in a bag or your pocket and off you go. But non-portable items may require special packaging or transportation procedures to keep them safe. Some companies even warn you that improper transit may void your warranty. With this in mind, I would like to see more companies include repacking instructions with their products, or perhaps provide this info online.

For products that come in a traditional cardboard box, this might take the form of a laminated reference card, or could be printed on the inside of the box itself (like on the flaps). But for items that come in those horrible plastic containers (the ones you have to rip to shreds to get open in the first place), these instructions aren’t enough. You also need to find suitable packaging to put the product in, since there’s nothing left of the original container. In this scenario, the repacking instructions could tell the customer to pick up a standard box at the post office or other places, referencing the exact box size and amount of packing materials needed.

Besides helping reduce shipping damage when people need to transport a product, repacking instructions provide a marketing and sales opportunity. For instance, the instruction sheet could remind customers about regular maintenance and supply needs, e.g. providing a way to easily order cleaning kits and extra toner for a laser printer. It can also remind them about related products and services that might be of interest, like high-quality paper stock. I’m sure there are other clever variations, too. Given the low cost of providing this information to customers, and its potential to prevent product damage while promoting accessory sales, it’s probably only a matter of time before some smart manufacturers give it a try.