Apologies for the relative flurry of content here at Riverside Green; I’m just getting a bit of work in before I disappear with my son for a week to ride bikes in the South. Alas, I’m going to have to visit another gas station before I do so, because the one I visited this morning was suffering from… let’s call it technical idiocy.
Today’s post is dedicated to all the people who Bleeping Love Science, and all the people who don’t.
I’ve used this space in the past to talk about Scott Locklin’s comments regarding the stupidity of “starting from scratch”. This is as true among interface designers as it is among computer programmers. Consider, if you will, the above photograph, which is from a United Dairy Farmers gas station in rural Ohio. (For those of you who are as confused as I was many years ago, “UDF” is a Midwestern competitor to 7-11, and the name presumably stems from it being a co-operative grocery store at some point.)
Pretty much all UDF stores have the same design of fuel pump, featuring a monochrome LCD screen with four membrane buttons on each side, a credit-card reader, and an angled mechanical keypad with stainless-steel keys beneath said reader. The system is a case study in stupidity, for three different reasons.
Reason Zero: the keypad itself is set an angle, and in a position, where it frequently ices over in bad weather. When it does that, the fuel pump cannot be used, because of…
Reason One: The “sales flow” of the UDF pumps is both deliberately frustrating and accidentally frustrating. Let’s review.
Step Zero: Insert card.
Step One: If card is MasterCard or Visa, ask “IS THIS CARD DEBIT Y/N?” Although the mechanical keypad has YES and NO buttons, they don’t work for this. You have to press one of the two membrane buttons on the bottom left of the screen. (American Express cards, and presumably other cards like JCB, skip this step.)
Step Two: ENTER ZIP CODE. This is done via the mechanical keypad — so if that’s iced-over, you’re done, sorry, go get your fuel elsewhere or go inside the store to wait in line. UDF is about the only retailer in my home town that bothers to give you the ZIP CODE step, which is designed to protect the credit-card companies. Everyone else skips it. There’s virtually no crime in Powell, Ohio. If you have a card here, chances are it’s your card. This isn’t an ARCO station in SoCal, which takes cash only and makes you pass it through bulletproof glass. We have a high-trust society here.
Step Three: ENTER UDF U-DRIVE LOYALTY. There are three choices, all of which require the membrane buttons. YES, at which point you slide your U-DRIVE card. ALT ID, at which point you enter your phone number. And the one that 95% of people will press, NO, which happens to be the same membrane button used for NO in Step One. (That’s going to be important later.)
Step Four: CARWASH Y/N? No prizes for guessing that the mechanical YES and NO keys are disabled. You do get a small prize for guessing that the membrane button used for NO is the same one used for NO in Steps One and Three.
Step Five: REMOVE PUMP AND SELECT GRADE.
None of these steps has a timeout or a default action associated with them; if you don’t answer the U-DRIVE LOYALTY question, the pump will simply wait until you do. Other companies, like Pilot or Sheetz, will allow you to pick up the pump and start pumping as soon as you’ve put your card in, effectively skipping loyalty and carwash questions, but UDF does not.
So at this point we get into questions of interface design and hardware compatibility, with the former being considered first. The U-DRIVE and CARWASH questions are, fundamentally, predatory and annoying. Most pump users don’t have a loyalty card and they don’t want a carwash. If your primary goal was to ensure the highest satisfaction among the greatest number of customers, you would have a sales flow in which these questions were optional. As an example, you could press an optional membrane button while the fuel was being pumped, or after the fuel was pumped.
I guarantee you that someone showed a sales flow like that to the Lizard People who run UDF, and they said something along the lines of “WAIT A MINUTE WHY AREN’T WE GIVING EVERYONE A CHANCE TO USE THESE GREAT OFFERINGS? WE SHOULD BE ASKING THESE QUESTIONS UP FRONT!!!!” A primary, indeed distinguishing, characteristic of Lizard People is their love for laboring under the delusion that their personal enthusiasm for a corporation is, in fact, a universal enthusiasm.
Example: If your customers interact with you less than once a week, they don’t need an app for that. I probably need an app for my bank. Probably don’t need one for a restaurant. Certainly don’t need one for my local electric utility. Yet I’m pretty sure my local utilities all have “apps” with many theoretical features, because the people on the boards of those utilities have FOMO about not having an app. “WHY WOULDN’T PEOPLE WANT TO STAY UP TO DATE ON THE NEWS HERE AT CONSOLIDATED POWER AND LIGHT?” Because they are functioning human beings, that’s why.
Rearranging the sales flow to be Lizard-approved has two consequences. One of them, you’d expect: when I have a choice between UDF and another gas station, I’ll go to the other station, because I hate the sales flow at UDF. The other one is less obvious: every single transaction involves pushing that NO button up to three times. I mean, the ideal customer uses a debit card (which doesn’t charge UDF a percentage of the sale) then enters a loyalty ID before agreeing to a carwash, but the actual customers are like: Put this on my Visa Infinite, no I don’t want a freakin’ carwash, no I’m part of your stupid program to save up to 0.8 cents per gallon by giving you my blood type and SSN.
In other words, as the YouTubers say, we’re gonna smash that NO button. Hundreds of times a day, in all weather conditions, and sometimes we will do it repeatedly because another feature of the UDF gas pump is that it takes a professorially long time to think about each choice you’ve made before the next screen appears, as if it used the chip from a Star Wars LED watch of 1977 or something.
Which, after lo these many words, brings us in typical lazy-programmer, long-subroutine, closing-the-brackets-500-lines-after-you-open-them fashion to…
Reason Two: The UDF sales flow is designed to ensure that you’re destroying the gas pump. Let’s review. The pump has a robust stainless-steel mechanical keypad that you use to enter your ZIP Code. That keypad has robust “YES” and “NO” buttons which are literally never used. Instead, we have to smash the same membrane button three times per transaction.
Long-time readers will know that I am not particularly prone to tears (the end of August Rush aside) but I really thought I was going to cry back in 1982 when my brand-new Atari 600XL turned out to be defective, pretty much every 600XL in the store had the same problem, we had to return it with no replacement possible, and it looked like Dad might buy me an Atari 400 instead. To understand why, let’s look at a 600XL:
Now let’s look at a 400:
These are mechanically about the same computer (Yes, yes, CTIA and GTIA, save your 8-bit nerd vitriol, I know this stuff like I know the lyrics to Stairway) but the 400 has that crummy membrane keyboard. For a child who could type 105 wpm at the age of ten, it would have been like being consigned to Hell. I started BEGGING the old man for an additional $59 so I could buy and install an aftermarket keyboard:
After listening to his four-foot-five child talk at length about detail-soldering keyboard connectors next to the POKEY chip, the old man did the hugely decent thing and bought me this:
Let the record show that I loved the Atari 800 more than I loved at least the first five or six women with which I had any sort of sexual intercourse. Scratch that: I continue to love the Atari 800 more, which is why I have two perfect Atari 800s in their retail boxes in my basement plus my original one from 1982. Age cannot wither the 800, nor custom stale. And the keyboard was very, very good. As opposed to the 400 keyboard, which was trash.
Membrane switches as found on the 400 (and the gas pump!), in which a conventional mechanical key is replaced by a “bubble” connector behind a stiff plastic covering, are the literal worst of both worlds. They are neither reliable (you can’t be sure you’ve actually hit the key) nor durable (they tend to wear out in a hurry). My Silverado truck has membrane switches for the cruise control. Surely I have hit that switch less than a thousand times in 58,000 miles, but it’s already wearing out. In practical use, mechanical keys are known to outlast membrane keys at a 10 to 1 ratio — and that’s comparing computer keyboards used indoors by people who care about their keyboards, not furious proles stabbing from hell’s heart at a white square with their car keys in ten-degree weather.
Eventually, the membrane switch is guaranteed to fail. Which is what has happened at my UDF as of this morning. Since all roads through the sales flow (other than the Holy Grail of the debit-card-using loyalty member who wants a carwash, of course) use that lower-left membrane switch, the pump is effectively inoperative until they replace the switch. As you can see from the above photo, it has suffered some considerable abuse. At some UDF pumps, the white square has worn off entirely, revealing the “bubble switch” beneath, at which point it has the remaining operating life of a fruit fly.
Thus we see that you can actually kill a fifty-thousand-dollar pump through bad interface design. What frosts my flakes the most, however, is that it could have been avoided so easily.
How? Just tell the customer to use the metal buttons instead. “PRESS YES OR NO ON THE KEYPAD”. This addresses the CARWASH and DEBIT questions, reducing the hit to the membrane button by 66.6%. But wait, there’s more. The metal keypad actually has UNLABELED buttons, likely because it was originally sourced from an ATM builder, so you could have an ALT-ID key there as well, thus handling the LOYALTY question and reducing the membrane-button usage by 100%.
There’s almost zero argument against this, except for one: Test marketing showed that customers were too stupid to find and use the keypad. I don’t believe that was the case. They’re already using the keypad for zip code or debit PIN entry. And while the keypad is known to freeze over, that kills the transaction anyway because you can’t enter ZIP or PIN at that point.
That being said, there is one powerfully persuasive argument for using the membrane keypad, and it’s one that resonates in the hearts of Lizard People everywhere: THE GAS PUMP VENDOR MUSTA GIVEN US THOSE BUTTONS FOR A PURPOSE. Well, they did: the buttons are for unspecified future functionality that, in all cases of which I am aware, never came to fruition. Like, doing banking via the gas pump, or choosing the different levels of car wash you’d buy.
Alright. The Chief Lizard Officer says we gotta use the membrane. So here’s an idea: don’t use the same key to mean NO all three times. This is a technical violation of Raskin’s rule 1b, which states that the interface should be habituating. The same buttons should always mean YES and NO. But we can interpret to mean that we just need all three actions to be consistent every time. So you have a different NO key for each of the three actions, but it works the same way every time, as opposed to moving the NO key for each action across the eight keys in random fashion the way an old DVD player would “screen save” by moving the DVD-Video logo around the screen over time.
There’s a cost to this: the user needs to take additional time to read the screen instead of just repeatedly punching the lower-left membrane with his Chevy key. But we’ve already decided we don’t care about customer time or convenience, thanks to the Lizard doctrine of multiple extra interactions. So we might as well go ahead and save our gas pumps from wearing out earlier.
Good deal. Our team, consisting of one BritLit graduate, has solved the problem. Which raises the painfully obvious question: If this is so obvious to me, why wasn’t it obvious to the dozens of people who built the system? As fate would have it, I worked a gig at a big bank a while back, designing ATM software. (That’s automated teller machine, not (Anything) To Mouth.) We had thirty people on the team. I’d estimate that
* Ten of these people just went to meetings and sent email;
* Ten of these people were congenital liars trying to stretch out their very small parts of the task into endless “story points”;
* Five people were managers;
* Four people had jobs where they could only see one part of the elephant, and never thought about the whole elephant;
* One guy left to work at an insurance company after writing a whole bunch of machine-learning stuff that didn’t have any tangible impact on the project but helped the manager advance his career as a manager of machine learning.
Is it any wonder that no one ever bothered to think about how the product would work in actual use? More importantly, is it any wonder that virtually every piece of software you use in daily life, from your ATM to Amazon Music, is progressively getting worse? I didn’t pick Amazon Music at random; I’ve gone from using it on a daily, perhaps hourly, basis to deleting it from my phones.
Five years ago, Amazon Music was a great way to universally play music that you’d uploaded to a central repository. Today, it starts every time by demanding a signup to Amazon Music Unlimited. Pressing any part of your screen other than a 5% square will sign you up by default; I’ve had to cancel it twice as a result. Once you’re in the app, it defaults to a shopping list rather than to a list of your own music. The “Search” function now only takes you to purchase opportunities. You can no longer search your own music. If you have, say, 19,400 songs uploaded/purchased, as I do, it will take the better part of ten minutes to index them and make them available — but the purchase functionality is immediate and never fails.
Each one of these changes is a result of a Lizard Person asking for a Screw The Customer change, combined with an incompetent team that can’t be bothered to think about how the app works. I have come to believe that the entire Western world now works on some variation of this model, whether it is vaccine distribution or stealth-bomber development. If we want to fix the world, or even preserve it as it works now, some radical thought will have to be given to changing that model.
Now, if you’ll excuse me, I have to find a gas station.