If You Don't Give A Crap, This Is the Shit That You Get

Outhouse in a field, in front of fence

Being retired after four decades as a programmer, there is nothing more irritating than seeing broken or poor functionality in web and mobile apps. I always cared about what we were putting out, even if it was sometimes unimportant to my employer. When I see things that are easy to do correctly, and I can't do anything to fix them, it's really frustrating.

Why does bad UI/UX persist? I'm not talking about things that could simply be opinions but bad coding, bad testing, bad concepts, bad management, or even laziness.

Last year, the major bank where I have a credit card decided to redo the UI on their website. Previously, I could log in, yet with the new UI, hitting the log-in button resulted in an error message insisting that my browser was too out of date—the link provided as an explanation led to a template page with no content besides the template. I used the latest Safari on the latest MacOS, on Apple's most powerful Mac.

Naturally, the bank provided no email address to report errors, so I emailed the CEO (most CEOs have a staff to deal with these emails). They told me my browser was too old, which was incorrect, so I replied with a detailed list of everything I had with version numbers. I also dug into their horrific Javascript (a 100,000+ line file), trying to figure it out. Eventually, they reported that it was a bug, and two months later, it was fixed. I would have thought that bugs on a bank log-in page would be a little more critical to test for.

I was going to book on an airline that I have never used. Filling out the booking information was an exercise in not grinding my teeth down completely, as there were no autocomplete types on any fields, and it requested the same information be repeated (such as the address) multiple times, each requiring me to type manually. When I finally made it through, the booking failed with a meaningless error message with a hexadecimal code. On the booking page for an airline, where everyone gives them money! It happened multiple times, so I tried another credit card, manually entering the same address again, with the same result. I then tried the mobile app, where instead of an error message, it loaded the credit card's bank app to verify, as if the airline was a deadbeat.

None of the cruises I have been on have a decent app. During my summer cruise to Alaska, the cruise line app was clearly a hybrid app (i.e., a web app) and was horrific. On a bus during an excursion, I asked people what they thought of the app, and it was universally panned. A pre-cruise requirement form was so bad on mobile that it had incorrect data types for form fields, bringing up incorrect keyboard types. In one case, entering a year had a keyboard with no delete, and I could not exit the field because I picked a value not accepted by the field; I had to kill the app to start over. During the cruise, dinner reservations often failed with a "server undergoing maintenance" at dinner time, so I had to guess which dining room to go to. When I asked the dining room person about it, they rolled their eyes and indicated this was a common problem.

I have seen many autocomplete failures; today, I was on a form (another cruise line) where every single field was set to "cc-number," which clearly is a copy-paste bug. This is surprisingly common as if no one ever tested the form at all.

UX problems are the worst, however. UI are the fields on a page; UX is why you have those fields. UX is also essential in a set of forms where an app collects information over a collection of pages. Someone who understands how to design such a data collection flow will try to minimize the amount of duplication and make the data as easy as possible for customers to enter. People who don't care, have no understanding or aren't even there (sometimes forms are designed by programmers or others without much input from anyone knowledgeable) may create forms that are difficult to use.

I wonder how these types of things happen. Is it bad programming, bad management, bad or no QA, bad project management, bad process, or something else? I have seen all those during my career; if I could influence anything, I always tried. Sometimes, it's an unwillingness to spend money or unreasonable deadlines—but many of these issues are not all that difficult to do correctly or test. You have to care to produce a quality result. I spent most of my programming career building new things from the beginning; I refused to ship anything that didn't meet a high level of quality. The idea of shipping a barely usable form and not caring was not something I could tolerate.

One time, while looking for a mortgage, I started a form that collected all the data necessary to determine if I qualified. On the second page, it asked for something I did not have available immediately, so I decided to return later. However, it would not let me exit the field, save the form, go forward and skip the field, or go back to the previous page without starting the whole form over. I gave up and called the office, and they admitted their parent company had saddled them with this form despite it hardly working for anyone. Why even bother?

I could go on, but I won't. My biggest desire as a programmer was to fix broken things (both a good and bad trait), and I can't fix anything now. I can complain, but often you get thanked, and nothing changes because either they don't care, aren't empowered, or it's a deliberate decision they would rather not admit.

Please do give a crap as best you can, even if your employer doesn't.