I don’t want to start ranting about the debacle that was upgrading via the O2 website, from my iphone to the iphone 3G. However, there are a couple of things we can learn about good site design from their mistakes.
Like most of the British population (or so it seemed) I tried to upgrade my first generation iphone for the new iphone 3G. Following the instructions I received from 02 I went to their website and then spent the next 2 hours battling to place my order. This horrendous experience raises some interesting points.
- Load test – If you are expecting shit loads of people to hit your site at the same time then run some loading testing against it!
- Don’t cause a panic – Announcing there is limited stock and that you are going to sell on a first-come-first-served basis is going to cause a rush.
- Provide alternatives – Don’t force users into only purchasing through a website. Allow them to purchase via phone or store too.
- Keep it simple – The whole process could have been streamlined. Adding a text message as a method of authentication was unnecessarily complicated and caused problems.
- Avoid AJAX – On a site that is going to be hit by heavy traffic, avoid using unnecessary AJAX. It was impossible to jump to the appropriate place in the process. Instead I was forced me to start from scratch each time the page hung.
- Clear messaging – Despite completing the process I am unsure of whether I have an iphone coming or not. The site needed to make it clear whether an order had been successfully placed.
- Error handling – When things went wrong with the site it didn’t respond elegantly. Some carefully written messages could have cleared up a lot of confusion.
- Better labels – One label asked me if I wanted a bolt on package. It didn’t explain what that package was or what answer was required. It just gave me a blank text box. What was I supposed to type into it? Should I leave it blank? Why was it a text box and not a dropdown menu? Was this the reason my submission was failing?
- Email confirmation – It would have been nice to receive an email confirming or rejecting my order.
- Waiting list – For those who failed to place an order before the product ‘sold out’ there should be an alternative. Never turn a customer away. Either offer the chance to pre-order with an estimated delivery date or at give the change to register to be informed when new stock arrives.
Update: Alex made some excellent additional points in the comments and I wanted to mention them here too. He added to my already extensive list:
- Have a backup plan (or have two!) –
If you have something really high-profile, have a backup plan, or two! In this case, O2 DID have a back-up plan… they had a ‘failover’ site… which was a simple one-page form to take down customers details. The only problem was it didn’t work when it needed too… it failed too!
- Brief your call centre –
Knowing that some customers were likely to experience trouble accessing the site (or even just getting confused placing an order), you should make sure that you brief your call centre staff – put on extra staff and make sure that they can take orders too, and know what to do.
When I called O2’s customer services, they couldn’t offer any help as ‘upgrades were online only’. Additionally they couldn’t check if my 3 times I put my credit card details in were registered (they weren’t as it happens).
If all goes wrong… the call centre is your last line of defense, and O2 dropped the ball here too.
Update 2: Well, the iPhone 3G has now launched in the UK and O2s website continues to fail users. This time Apple was forced to turn away customers from their stores because they were unable to register them with the O2 site. The reason why: The O2 website would only work in Internet Explorer. This provides us with yet another lesson to learn…
- Build for your audience – Consider who your target audience is and what requirements they have. In particular consider their accessibility need to make sure you never turn away people wanting to give you money.
All in all it was badly handled and I am pissed off. Can you tell!