Friday, November 21, 2008

Messed-Up App of the Day

A couple of weeks ago, I returned from the Miracle Oracle Open World 2009 event held in Rødby, Denmark. I go just about every year to this event. This time, I had accepted an invitation from Chris Antognini to speak at his company's TrivadisOPEN event in Zürich. So my travel planning was a little more complicated than it usually is. Instead of finding a simple trip from DFW to Copenhagen and back, this time I had to book a triangle: DFW to Zürich to Copenhagen, and then back to DFW.

I was surprised at how difficult it was to find a good schedule at a good price; it was a lot harder than my normal booking. I ended up finding a suitable enough itinerary at Orbitz. I usually fly American Airlines, but for this trip, the AA flights were much more expensive than I wanted to pay. But I found an itinerary that used British Airways and Air Berlin that I liked. So I booked it.

The trip went just fine. On the morning of the final day of my trip, Dan Norris and I were standing together in Kastrup at the BA ticket counter when the BA agent noticed that I hadn't provided my American Airlines AAdvantage number for the itinerary. (BA and AA are oneworld partners.) So I gave him the number, which he attached to my itinerary, and he informed me that the number would map only to the segments of my flight that I hadn't consumed yet (I had CPH-LHR and then LHR-DFW left to go). I'd need to request credit for my flights prior in the week separately on the web once I got home.


So on Monday after I got home, I went to to register my BA flights for mileage credit. There was a form to fill out. It took a while to type everything into it, because I had to find my ticket numbers, figure out how to isolate the carrier id from the remainder of the ticket number, and then enter date and flight number information for each segment of my trip for which I was requesting credit. It was probably a 10-minute time investment to get the form filled out.

So I reviewed what I had entered, and then I hit the Submit button. Instantly, I got feedback from the page saying that I couldn't request mileage credit right now, that I would have to wait 15 days before requesting mileage credit. So I recoiled a little bit—filling out that form was a bunch of work—and I opened my calendar application to log myself a reminder to go through the process again in 15 days.

There are a couple of problems here:
  1. Why did the form force me to enter a bunch of details before telling me that I shouldn't be using this form?
  2. Why was it necessary in the first place for me to type in the flight date, flight number, and origin and destination information for each segment of the itinerary? The ticket number should have been enough.
The simple way to fix both these problems is to do what does: it asks only who I am and what my ticket number is, and it figures out everything else.


The fifteen days passed, and my calendar reminded me to submit my mileage credit form. So I went to work again, gathering my ticket number information, my flight numbers, my dates of travel, and my origin/destination airport codes. I spent another few minutes typing it all in again. Then I clicked Submit. This time: joy. The form said that the submission was complete, and I'd hear back from via email.

A minute or so later, I got an email in my inbox thanking me for visiting and confirming that I had issued a mileage credit request. Good: request confirmed.

Then, just a second or two later, I got a second email from saying this:
Thanks for using to request mileage credit for your travel on British Airways.

I'm sorry to disappoint you but your transatlantic travel on British Airways (or a BA-ticketed flight) is not eligible for AAdvantage mileage credit. British Airways transatlantic flights to/from the United States are specifically excluded from mileage accrual or redemption in the AAdvantage program.
Grrrr.... I had to work this hard—twice!—just to find out that I wasn't even going to get to do what I wanted to do? Why didn't they tell me this fifteen days ago?!

The first experience was annoying. The second experience took the annoyance to a whole new level.

Here are some application design lessons that this story reinforces:
  1. Don't ask for information you can derive.
  2. Don't separate feedback from its prerequisite input by any more "distance" (measured in either time or user investment) than absolutely necessary. Especially when there's a chance you're going to deny someone his service, don't make him work any harder or wait any longer than absolutely necessary to let him know.
Of these lessons, number one is far and away the most important. If the site had asked just for the ticket number like does, the pain of the other problems wouldn't have been that big of a deal.


Brian Tkatch said...

"Don't ask for information you can derive." That is not only for convenience, but for data integrity as well. What if the passed data conflicts the data stored in the system? We're going to trust the system anyway.

As for when to pass the error. That's a harder one. Should the system have verified the data first and then given all the problems? What if there were multiple problems? What if those problems are actually built upon each other? What if some problems can only be determined by actually starting the process, such as INSERTing data INTO the database? What if it takes time to do the data verification, but we have an immediate check that we can show a response right away? Would the user prefer speed or completeness?

Submitting the application again when it takes time to fill out, would seem to be the real issue here. Perhaps the system should have stored the request for later filing, either by you, or automatically. Perhaps the system should have a separate verification procedures so the user can see what would have happened had the action been processed today.

It seems that in this case, it was the conglomeration of finding the data, typing it in a second time, and a verification error, built up to an annoying problem. Remove just one of the three issues, and it possibly would have been much less annoying.

Cary Millsap said...

Brian, excellent points. Thank you.

Joel Garry said...

And don't forget:

You never know who you're going to upset, or how many people worldwide they will tell!

Cary Millsap said...

Ha! You're right. Imagine how many people would be reading about it if Joel Spolsky started talking about it. ;/

Stephen said...

So you are stuck without the miles? Or did you then call their 800# and talk to a human and get it cleared up?

Sometimes I wonder if all the "free" benefits of the frequent flyer and other affinity accounts are really worth the hassle.

Cary Millsap said...

Yes, I got the miles into my British Airways account. And I did actually talk to a human on the phone—a British one, in fact. I had to talk to someone to figure out why my BA account, to which I similarly logged a few thousand miles a few years ago, would not let me log in. ...The account had expired, as I am sure this one will before I use the miles in it.

...Which I guess is exactly your point.