Archive for the 'Design' Category

Are you Building the Right Thing?

It's Usable, but are we Building the Right Thing?I saw this paper from Dr. Eric Schaffer of Human Factors International entitled “UX Strategy: Let’s Stop Building Usable Wrong Things” and it got me thinking … so often we rush to start a new project and build something wonderful, but did we take a moment to stop and think before we rushed into development? Are we building the right thing? How will this new widget make the target users’ lives better? Will they even use it?

Usability is about more than just making sure that the buttons are in the right place and the language used is understandable to users. Making sure your product follows usability guidelines is good, yes, but it is even better if you take time to research and understand your target users. What are their lives like? What motivates them? Where are their pain points? What kind(s) of technology do they use, when do they use it, and why THAT technology for that thing? What’s really important to them? It’s not much use building a cooking app for smartphones, for example, if most of the people you are building it for don’t have smartphones. You have to address your target users’ deep needs, personally, professionally, emotionally.

All of this signals a need for a User Experience Strategy: not just a usability team or expert that knows which buttons to use and where to put them on the page that is thrown in to make the thing you have decided to build usable. User Experience Strategy is inherently difficult because companies are typically segmented into different functions: you might have a group that builds the web site and another that builds mobile apps and everyone is very protective of their own domain. It has to be driven from the very top level of the organization.

I found Eric’s paper very insightful and useful. I highly recommend it.

Download UX Strategy: Let’s Stop Building Usable Wrong Things from Human Factors International.


A Wish list for Axure

wish-listI’m in the midst of prototyping a virtual credit card terminal in Axure and some of my most fervent wishes are resurfacing, so rather than sit here and stew about it, I am going to put my wishes out there so perhaps Axure will hear them and do something about it? Don’t get me wrong–I love Axure and am so thankful to have it. It makes life so much easier. But man, if it could only …

Some of this might already be done in a newer version (that I don’t have yet), but gosh I wish it would do the following:

  1. Allow me to select a word or two and make them a hyperlink like real web pages do. It’s such a pain to have to put a box over the text I want to hyperlink. (Take some lessons from WordPress!)
  2. Make mouseover effects easily–like change the color of a table cell or some text when moused over to indicate its clickability. Right now to change the color of a table cell, I’d have to overlay a dynamic panel and try to align it perfectly with the table cell and manage the states by going to separate windows. And then when the table cell changes size or shape, I’d have to realign everything and change all the states and … it’s just too much work. I have a lot of pages to do and I’m in a hurry to get this prototype done.
  3. Put controls such as radio buttons and images IN a table cell like you can on a real web page. So if the table cell moves (like it tends to do when you’re wireframing), the control or image moves with it and you don’t have to go realign everything.
  4. Change the look of the buttons–and allow for a few different types of buttons.
  5. Use real cascading style sheets (CSS) like real HTML pages do, so I could import my style sheet and use the styles from my own CSS–and have them in the resulting prototype as real CSS styles. Wow that would be nice.
  6. Make cleaner, more usable HTML, so we don’t have to have someone go back and recreate the HTML page from scratch and end up with a different look and feel than the wireframe. (Using real CSS would sure help.)
  7. Not make a new image if I copy and paste an image from one spot to another. It’s the same image, folks! Why have a billion different images that look exactly the same? In fact, why not use an image library in a common images folder shared across pages (like, um, WordPress allows you to do) so if you want to use the same images on several pages, you can.
  8. Allow me to set an action for several elements at once. Say I want the user to be able to select a row in a table, for example. Right now I have to go to every cell in the table and set the action for that individual cell. If the table has a lot of columns, it takes quite a while just to set the actions for one row.

If you use Axure and agree with my suggestions, let Axure know or leave a comment here so that they know that it’s more than just one user’s wishes.

CVV and Conversion Rates

Yesterday on the Intellivative blog, there were two interesting blog posts:

  1. AVS & CVV: When to use it and why?
  2. Does CVV affect e-commerce conversion rates?

The second one is the most intriguing to me because it presents a quandary for e-commerce businesses.  CVV–that 3-digit code on the back of the credit card–is one of the recommended practices for fighting fraud; yet, if you use it on your e-commerce site, it appears that it might actually reduce the number of orders you may get from your site. The surprising mythbuster comes from the E-commerce Checkout Report from Get Elastic, which found:

Conversion rates were a full 40% higher where Top 100 retailers did not request a CVV (Card Verification Value), yet over 55% of them do.

The other interesting part about it was even though conversion rates were higher when the e-tailers didn’t use the card code, still over 55% of them still use it–which implies that either they didn’t know their conversion rate might be higher without it (did they try an A/B test on CVV code?) or that the fraud reduction benefits of the CVV code outweigh the potential higher conversion rate.

As a consumer, I think I would like it better if the site did ask for my CVV code–it shows they’re doing the due diligence to check for fraud which not only protects them, it helps me, the consumer. After all, if someone is out there trying to use my credit card (who wouldn’t have the CVV number), wouldn’t it be better if they were inhibited in their spending spree by web sites who do check the CVV code?

I always thank people who ask to see my ID with my credit card–they’re protecting me by doing that. Even though it’s a hassle for me to get out my ID and show it to them, I’d much rather they ask for it and make sure that I am the rightful owner of the card.

But apparently I’m an oddity. Either the CVV code is too complicated to find–or too much work to enter for many consumers shopping at the top 100 e-commerce web sites. Or maybe consumers just aren’t aware that the card code actually helps protect their identity and their credit card?

Thanks to Get Elastic for putting the work into this study and challenging our paradigms.

World Usability Day is here–have a cookie!

For the first time since I became a usability evangelist, I’m not presenting anything to anyone in honor of World Usability Day, with Usability cookies as treats for those who attend. The Usability cookies were awesome–we had one of my friends who runs QT Cakes make sugar cookies–and on each frosted cookie was written one of the six components of usability:

  • Effective
  • Efficient
  • Learnable
  • Memorable
  • Error-free
  • Easy (or was it “Satisfied”? I wish we’d taken pictures before we ate them!)

It was always entertaining to watch which cookie each person would pick. But when you work from home, how do you pass out cookies to your colleagues? 

So … What is usability?

Usability is not just about “ease of use”, although that is an important element of it. Usability really evaluates all the components on the cookies:

  • Effective: Can the user complete the tasks the tool or web site is intended for? For an e-commerce web site, can the users actually purchase something on the site? For an informational web site, can the user find the answers to their question? For a cellular phone, can the user make a phone call? These sound like no-brainers, but you’d be surprised how often you encounter an e-commerce web site that has one or more barriers to completing a purchase. You can also measure supplemental tasks, like can the user schedule an appointment on their phone or change the ring tone? Or for an e-commerce web site, can the user find the product specifications? If you suspect the user might have difficulty with some tasks, make sure you test those, but also test tasks you think are very straightforward–you’d be surprised what you’ll learn.
  • Efficient: How long does it take users to complete their task? Even if the user can make a purchase on the site, if it takes 30 minutes for them to complete their purchase (and I’ve seen this happen in a real usability test of a real web site!), how likely is it that they’re going to buy? You need to make your software/website/tool in such a way that the user feels like they breezed through it. Notice that I said “the user feels like”–it really isn’t that important what the measured time was. What’s more important is whether the users feel like it went fast (or waaaay too slow). User perception is key.
  • Learnable: Can an inexperienced user who has never seen this before figure out how to use it? How long does it take them to figure it out? Do they have any misperceptions about how it should work? If you see any of that, it’s a problem with the affordance of your software/website/tool. Affordance is a user’s expectation of how something should work. Users expect something that looks like a button to be clickable. A doorknob turns to open the door. Blue underlined text is expected to be clickable. The Help button (or link) is expected in the upper right portion of the screen. If a system follows expected conventions, it’s more likely that the user can learn how to use it fairly quickly. Learnability is more than just following conventions, though. It has to do with placing things consistently, following the user’s regular workflow, and sometimes thinking outside the box. Some of the easiest things to use (take the iPhone, for example) didn’t follow convention.
  • Memorable: Can a user walk away from it and return a month later and still remember how to use it? Do they remember where to find everything–or do they have to go through a re-learning process? Memorability is especially important for applications that are used infrequently (such as, say, an e-commerce web site).
  • Error-free: No system is completely error-free, but is the system fraught with bugs? That will cause a frustrating user experience and reflect badly on your company. Also, what happens when a user encounters a problem? Does the system offer the user a solution to fix the problem, or leave the user without any option but to give up? How are error messages phrased? Do they blame the user, or the system? No user wants to be blamed, but systems have no feelings, so why do we so often encounter error messages that blame the user?  Even if it WAS the user’s fault, there’s no point in making an issue of it. Hey, they’re human! Humans make mistakes. Be kind and forgiving to your users and they will appreciate that (and buy more from you).
  • Easy and satisfying: A system should not just be easy to use, but also pleasant. The user should feel they accomplished something and have a sense of pride and satisfaction once they’ve completed their task. Many systems leave their users battered and frustrated both with themselves and the system. Users have a tendency to blame themselves so an unusable system can wear down their sense of self worth.

For more thoughts on usability, here are some recommended resources for you:

What else can you do on World Usability Day?

Recommendations from the World Usability Day web site.

You have to read this page

Have you ever considered using white text on a black background on one of your web sites? Black backgrounds are very effective for showing off pictures, but really, really, really bad for reading. Why? Read this page to find out. Really read it. All the way down to the end. You’ll never want to make that mistake again.

Thanks to Bryan Eisenberg at FutureNow for pointing to the page.

Integrating Shipping Into Your Web Site or Application

Ever thought about adding shipping tools to your web site or software application? This is a great way to make your e-commerce web site more usable, by including shipping rates up front, and then providing automated package tracking notifications.

I’ve known for a while that there were “shipping APIs” out there, but haven’t really known the details of how they work. I had several questions:

  • What services do they offer? Are they all the same?
  • What’s involved in integrating them?
  • What programming language(s) can we use to integrate them?
  • Are some easier to integrate than others?

I’ve been investigating shipping application programming interfaces (APIs) and the programs that the major shipping carriers offer and this is what I’ve found so far.


FedEx offers a Ship Manager API that allows developers to integrate FedEx pricing, shipping, tracking, and reporting services into their web site or online application. The Ship Manager API enables developers to create custom applications to:

  • Determine service availability and estimate the cost of delivery
  • Request a courier for pickup
  • Print FedEx shipping labels
  • E-mail the customer when a package has been shipped and include the tracking number
  • Integrate tracking data into your own order management system
  • Create custom shipping reports

Language options are HTML, C++, Java, or Visual Basic. FedEx requires developers to register before they can download the API software, and once they’ve integrated it, you must contact FedEx and provide your code to allow them to test your application before going live. FedEx also provides test scripts for you to test your integration. Any third-party developer who is integrating the FedEx Shipping Manager into their own application must apply to be a compatible solutions provider, get approved, integrate, and then submit their code to Client Server Labs (CSL) for verification.


UPS offers several services that developers can integrate, most in XML, but a couple are also offered in an HTML version:

  • Tracking Tool (offered via HTML and XML): tracks the delivery status of a package. There are actually two tools: a traditional tracking tool and a signature tracking tool that includes delivery confirmation with electronic signature and address delivered to.
  • Address Validation Tool (XML only): allows you to verify a shipping address at the time of order.
  • UPS Rates & Service Selection (XML): provides rates and allows end users to select the most appropriate service for their needs. They have a separate tool for International shipment pricing that generates cost estimates for duties, taxes, and transportation, locate compliance and licensing information, and identify restricted trading parties.
  • UPS Shipping (XML): Integrates UPS web-based shipping into your corporate environment.

Independent software vendors and application service providers who want to integrate the UPS tools into their own software must apply to the UPS Ready program.


DHL offers several tools that allow developers to integrate DHL shipping into their web sites or software applications via XML APIs, including:

  • ShipIT: for domestic and International shipping from US addresses. Your web site or software can transmit shipment information to DHL in a standardized format and receive a real-time response that includes all the data required to format and print a return shipment label, including the assigned tracking number, and label image (If desired)
  • ReturnIT: for domestic and international returns. Similarly to ShipIT, you transmit return shipment information to DHL with similar response.
  • RateIT: get pricing for domestic or international DHL shipping. Send a request to DHL and receive estimates for all DHL services (Express 10:30 AM, Express, Next afternoon, Second day and Ground).
  • TrackIT: track DHL packages via your own web site or software. Request and receive the:
    • Detailed status and tracking history of a DHL shipment
    • Delivery signature (JPEG image) and the date and time of delivery
  • DHL also has an Electronic Data Interchange that allows you to get shipment status updated up to 18 times per day.

Corporate developers must have their application certified by DHL support. Independent software vendors must have their software certified by DHL in order to be recognized as a DHL third-party provider. 

 US Postal Service

The USPS offers several web tools for integrating shipping options into your web site or application (and somehow it was easier to find and understand than all the corporate hoo-haa–way to go, USPS!) Here’s what they offer:

  • Address information: You have to request permission to use these APIs, but once granted, you can use address standardization to correct errors in customer or staff-entered addresses, do a zip code lookup or conversely, a city/state lookup based on the zip code. 
  • Delivery information: track packages shipped via Express Mail, Global Express Guaranteed, or Global Express Mail®, check the delivery status of packages shipped with Delivery Confirmation™ service, Signature Confirmation™ service, Certified Mail or Registered Mail, or check the expected delivery time between two zip codes for other USPS mail services.
  • Rate calculators: for both domestic and international shipping.
  • Print shipping labels: for delivery or signature confirmation, priority or express mail, and international shipping (including customs forms). Allow customers to print a return shipping label from their own computer.

Service providers can register to become a USPS Web Tool Service Provider. Once USPS has verified your solution, you can be listed on the USPS site as a service provider.

ProgrammableWeb lists several more shipping APIs and the mashups that have resulted from each, complete with user ratings (in some cases).