Tag Archives: UX Design

How to piss off your users and never be the wiser

I just had an exasperating experience trying to pay my Johns Hopkins hospital bill online, exasperating enough to compel me write about it, and exasperating enough to make me reflect on software I have written.

It started off with my opening an envelope and looking at my billing statement.  I was resigned to paying via snail mail until I noticed some small print saying “go to hopkinshospital.org to pay your bill”.  So, I went there, and was _not_ greeted by a nice big obvious “pay my bill” button, but rather had to click “billing and insurance” from among seven tabs at the top of the page, which when clicked took me to another page headed with the unhelpful text “For answers to your billing and insurance questions, please visit the comprehensive payment information provided by Johns Hopkins Medicine”, and further down which was a list headed with “I want to…” which did include the item “Pay My Bill”, but in slot seven of eight along with other such items as “make a gift”, “apply for a job”, and “refer a patient”.  WTF?  Fine, whatever, I clicked “Pay My Bill”… which took me to another page with a blob of preamble text followed by _another_ list, this time with _twelve_ (!) items, of which item seven was “view/pay your bill online”, which I would swear I had already indicated was the desired task to perform. Clicking this “no, really, I would _love_ to just pay my bill” link I was brought to another page where I was instructed to click on one of three pictures of bills with the captions “Blue Bill”, “Green Bill”, and “Clinical Practice Association Bill”. Blessedly not being color blind, in which case I would have been SOL, I clicked “Green Bill”, which took me to another page where I had to choose whether I was trying to pay a bill for “The Johns Hopkins Hospital”, “Johns Hopkins Bayview Medical Center”, or “Howard Country General Hospital”. I clicked the first link, and was taken to an external site at jhhs.ixt.com, finally arriving at something looking like a place to enter payment information.

This external site was also brain damaged. After clicking “pay without enrolling” I was presented with the opportunity to enter my “account number” and “medical record number”. I should only have had to enter a single identifier, a statement ID, but whatever. I entered that information and was brought to another form that had pre-populated my billing amount and that required I do nothing more than hit continue. I was then presented with a delightful form with the form fields configured in such a way that hitting the tab key caused me to alternate between address fields and credit card information fields, because, you know, it totally makes sense to enter my street address, and then my credit card number, and then my city, and then my credit card’s expiration date, and then my zip code, and then the CC’s CVV. Bah, whatever, power through! SUBMIT! Ignore the fact that the enter key never works and I must always use the mouse to click on some stupid button. What, what? “Invalid dollar amount”? But you pre-populated that value for me. And you won’t let me edit it. WTF?! I JUST WANT TO BE DONE WITH YOUR STUPID WEB APP.

Should have just gone the snail mail route… Sunk costs fallacy here we come… No, screw that, I’m not going to fight with this, I’m just going to mail the damn payment and never try to pay a Hopkins bill online again… I’ll use the 17th Century tech, thank you very much…

Except that’s not how this story ends…

And I skipped one of the earlier parts of the story…

You see, at the very beginning of the web app experience I was presented with an in-page pop-up window that asked “do you want to participate in our stupid survey at the end of this ordeal?”, and I of course clicked the “yeah, right, PASS!” button. By the time I was greeted with “invalid dollar amount”, however, I was just about ready to hunt down and murder the developers of this system, and damn it I really wanted to say so in their stupid survey. But, NO! Too late. You said you didn’t want to do so at the beginning of the workflow so now you can’t. WTF? If you had told me I would have been so pissed off by the end of this experience I would have clicked the “hell, yeah” button, but at that point I didn’t know that your god forsaken web app would be so cartoonishly bad that I would be be willing to wage a jihad just to let people know.

So I tried to walk through all the steps again, on the forlorn hope that I would be asked to participate in the survey again, but no such luck. Employing my l337 h4x0r skills I cleared my cookies and went at it once more. BAM. We’re in. “Yes”, I clicked, “I will take your stupid survey”. And then, oddly enough, I was actually able to get all the way through the app with no “invalid dollar amount” nonsense, managing at last to pay my bill.


And stupid it was, the survey… After forty some questions that wanted me to provide a one-to-ten score on such nebulous things as “how would you rate your overall experience”, I found, after much scrolling, a free-text box for “other comments”, which of course would only allow 1000 characters because God Forbid I fill their database with an excessively chatty diatribe on their prodigious failings. So pithily did I expound upon my grievances. But as I was about to hit “Submit” I inadvertently hit the button on my trackball that maps to the browser’s “Back” button, and my input was duly erased. “Fuck you, shitty web app”, I said, “fuck you forever”, and I went on with my life.

Damn it, Hopkins… Your medical personnel are so awesome. Did you spend all your karma points on them and have none left over for your software development staff?

But maybe I’m the asshole. Or maybe, rather, I’m _also_ an asshole, I mean. I write imperfect software, and, really, how great are my channels for getting user experience gripes back to me? How good are the methodologies I have put in place at getting users of my systems to complain productively or, failing that, detecting automatically when the user experience has broken down? Maybe mediocre at best. I talk with users as much as I can manage. I encourage them to email the dev list to ask for support. I have logs of user actions, but, honestly, I don’t yet exploit those logs to the degree I ought. I think I earn some points for having a “Get Help” and “File A Bug” link on every page, but that only provides a mechanism to capture data from one’s most proactive and outspoken users. No doubt there exists a deep vein of ore to be tapped in the form of user visit logs that document specific actions and timestamps. How better to see, at scale, the way one’s user experience breaks down in the hands of real users?

Thus grows the “things I always want when I start a new software project” list, to include not just such things as “a good graphing package” and “a solid testing framework”, but also a means for mining the user experience quantitatively for the application’s shortcomings…

iPhone Progression

I bought an iPhone 5s this week.  I acquired an iPhone 4 in November 2010.  I was introduced to iPhone at 3G in the Spring of 2009.

The 5s seems solid.  It is FAST.  The BlueTooth stuff Just Plain Works.  The thumbprint  access control is awesome.  The display size is increased by an amount an amount that feels like it hits the sweet spot.  I appreciate the things that Siri renders hands free.

Somehow, though, the iPhone loses a certain degree of design elegance every time I buy a new one.  Going from the 3G to the 4, I felt a loss in the physical form, as it went from a beautifully curvy shape to a more boxy one.  I miss caressing the 3G as it nuzzled into the palm of my hand.  Going from the 4 to the 5s, the color palette has gotten bleached.  What happened to the warmth and the gradients?  Compare the interface for dialing a number in the 4 to the 5s.  In the former, you get rich tones and beautiful gradients.  In the latter, everything is white.

I appreciate the raw efficiency of the new.  I mourn the beauty of the old that is gone.  Why can’t I have both?

Maybe what is attractive to Western markets is offensive to Eastern markets and vice-versa, the modern iPhone is trying to be a comprehensively international product, and so everyone gets a tolerable vanilla design?  Or maybe the new scheme is easier on color blind people?

Early And Often

Presently in the midst of taking the 50th annual two-week Human Factors Engineering short course offered by the University of Michigan, I find myself struck by parallels between HF and another domain in which I have non-trivial interest and knowledge, namely security. If you mingle in security research circles, you likely find two maxims oft repeated. First, “security is a process, not a product”. Second, “security has to be baked into a system”. Substitute “security” with “human factors” and one captures the frustrations of human factors engineers as voiced by many of the lecturers in my present course. Security experts dread having a “complete” system thrown over the wall to them with the odious task to “make the system secure”. Likewise HF folks chafe at the prospect of having a “complete” system tossed in their laps with the directive to “make it like the iPhone”. Given the (not so?) well known principle that fundamental defects become exponentially more expensive to repair as a project progresses, one marvels at the software development world’s need to have such independent “revelations” in various sub-disciplines.

The parallels do not end there. Practitioners of both subject matters have notorious difficulty quantifying costs, benefits, and risks. Leaky Abstractions furthermore pose myriad problems. As such, early and ongoing consideration seem the key to success. Iterative and Agile development practices are nothing new, but the industry regularly forgets to exert sufficient pressure on various sub-systems to shake out significant flaws before they become cripplingly expensive. User interfaces, security, networking, storage systems… As elegantly as we may modularize our systems, the inherent leakiness of abstraction boundaries between these sub-systems manages to burn us again and again. Consequently, we must aggressively and regularly conduct usability tests, performance tests, and penetration tests. One cannot overestimate the criticality of regular integration testing and sanity checking. Even seemingly simple systems are hard to get right.


UI Tomfoolery

Brevity is the soul of wit, or so we’re told, though BP Oil wasn’t listening when crafting the user interface for their gasoline pumps. I’m put of mind of Joel Spolsky’s article about the umpteen different ways that one can instruct Windows Vista to “sleep”.

While not quite so prolific as this, BP’s pumps still manage to offer the user a bewilderingly non-orthogonal set of “OK” buttons. These include such ambiguously different options as “Enter”, “Start”, and “Yes”. You’re expected to hit “Enter” after entering your credit card number’s zip code. After you’ve lifted the nozzle for the desired grade you must press “Start”. If you desire a receipt at the end of the transaction, the “Yes” button is your friend.

Invariably I manage to use the wrong button at every step. More infuriatingly still, pressing the wrong “OK” button or pressing the right button with insufficient pressure yield indistinguishable results. A little bit of tactile and/or audio feedback go a long way.

For the love of god, Don’t Make Me Think. I want a big, fat, obvious “Go” button at every step. I want to unthinkingly jam a button that clearly means “I’m done entering my zip code”, “I have selected my gasoline grade”, or “give me a receipt”. Either give me a single physical “Proceed” button or dynamically render a more descriptive “Go” button at every step without leaving other ambiguous options available. Don’t make my distracted brain struggle to ascertain which of three “Just Do It” buttons is the correct one to get what I want. Never mind that these three buttons are scattered all over the damn place, perhaps in a crude attempt to hide that they are really all the same button…

Updated 09/06/2010 to include new sighting on the same machine…

Also, thanks for trashing the Gulf Coast, BP… You guys rock! I’m semi-embarrassed to buy gas at your station but you’re the only one in my neighborhood for some reason.