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 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, 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…

Leave a Reply