No Good Can Come of Bad Code: Ask Dr Web in A List Apart
Remember: the future will come whether you design for it or not. If your company charges $300,000 for a website that won’t work on next week’s most popular device, your company won’t be able to stay competitive in this business. It might not even be able to stay in the business, period. After all, clients who pay for sites that break too soon will look elsewhere next time—leaving your company perpetually hunting for new clients in a downward spiral of narrowing margins and diminishing expectations.
Your company’s survival is tied to the ability of the products it makes to work in situations you haven’t imagined, and on devices that don’t yet exist. This has alwaysbeen the challenge of web design. It’s one A List Apart has taken seriously since we began publishing, and our archives are filled with advice and ideas you can boil down and present to your bosses.
Material Design: Why the Floating Action Button is bad UX design
I HIGHLIGHTED so many passages in this brief, well-focused design argument, it’s almost embarrassing. Read it (it takes about three minutes), and you’ll wear out your virtual highlighter, too:
Material Design is a design language introduced by Google a year ago, and represents the company’s bold attempt at creating a unified user experience across all devices and platforms. It’s marked with bold colours, a liberal but principled use of shadows to indicate UI layers, and smooth animations that provide a pretty pretty user experience on Android (and some Google apps on iOS).
One thing about Material Design, however, has bugged me ever since it was introduced last year: Floating Action Buttons.
FABs are circular buttons that float above the UI and are “used for a promoted action,” according to Google. They act as call to action buttons, meant to represent the single action users perform the most on that particular screen.
And because of the bold visual style of Material Design, FABs are strikingly hard to ignore and stand out — and herein lies the problem.
While FABs seem to provide good UX in ideal conditions, in actual practice, widespread adoption of FABs might be detrimental to the overall UX of the app. Here are some reasons why.
AFTER USING the web for twenty years, and software for an additional ten, I’ve come to believe that I suffer from an affliction which I will hereby call “designer blindness.”
Put simply, if an interface is poorly designed, I will not see the data I looked for, even if it is right there on the page.
On a poorly designed table, I don’t find the column containing the answer I sought.
On a poorly designed interface, I don’t push the right buttons.
On a poorly designed social sharing site, I delete my data when I mean to save it, because the Delete button is in the place most designers put a Save button.
This doesn’t happen to everyone, which is why I call it an affliction. Indeed, it happens to almost no one.
My non-designer friends and family seem quite capable of using appallingly designed (and even undesigned) sites and applications. Somehow they just muddle through without pushing the button that erases their work.
In fact, the less concerned with aesthetics and usability these friends and family members are, the more easily they navigate sites and applications I can’t make head nor hair of.
Like the ex-girlfriend who mastered Ebay.
Or the colleagues who practically live in Microsoft Excel, an application I still cannot use. There are tabs on the bottom, way below the fold, way past where the data stops? And I’m supposed to scroll a blank page until I find those tabs? It’s easy for most people, but it never occurs to me no matter how often I open an Excel document. I could open a thousand Excel documents and still never think to scroll past a wall of empty rows to see if, hidden beneath them, there is a tab I need to click. Just doesn’t occur to me. Because, design.
It’s not a visual or mathematical disability. If something is well designed, I can generally use it immediately. It’s the logic of design that trips me up.
I recognize that I’m an edge case—although I bet I’m not the only designer who feels this way. Give me something that is well designed, and I will master it, teach others about it, and unconsciously steal my next five original ideas from it. Give me something poorly designed, something that works for most people, and I’ll drive a tank into an orphanage.
Not that I’m a great designer. I wouldn’t even call myself a good designer. I’m just good enough to get messed up by bad design.
Yet you won’t hear me complain about my designer blindness.
See, divorce is a terrible thing, but if you have a kid, it’s all worth it. The heartache, the anger, the loss of income and self-esteem, the feeling that no matter what you say or do, you are going to be someone else’s monster forever—all the unbearable burdens of failed love and a broken family are worth it if, before that love failed, it brought a wonderful child to this world.
For my daughter I would suffer through a thousand divorces, a million uncomfortable phone calls, a trillion emotionally fraught text messages.
And how I feel about my kid is how I also feel about my design affliction. The pain of being unable to use what works for other folks is more than compensated for by the joy of recognizing great design when I see it—and the pleasure of striving to emulate that greatness, no matter how badly I fail every time.
Broken All the Way Down: Seeking Basic Information from Southwest Airlines
I was taking my daughter to Laguardia Airport to meet her mom, who would then take the girl on to Chicago for a few days’ holiday-time visit. Laguardia is a large airport, with many terminals, and as I hadn’t bought the ticket and wasn’t flying, I didn’t know which of the many terminals to go to.
So the day before my daughter’s trip, I visited Southwest’s website and punched in the flight number. It is a recurring flight from New York to Chicago that takes place every weekday at the same time. The website told me that the flight had left for the day. It couldn’t tell me the terminal of departure or anything else.
Next I punched in the confirmation code for my daughter’s flight. Her mother had already checked her in, and sent me a digital copy of the boarding pass, which I needed to get through airport Security, and which also didn’t have a terminal or gate number—not surprisingly, since, even for a recurring flight, gates aren’t typically assigned until a few hours before the flight departs. I didn’t expect a gate, but a terminal would be nice. When I punched in my daughter’s confirmation code, there was still no sign of a terminal.
So I scoured the entire Southwest website. No mention of terminals anywhere.
I then used both Google and Duck Duck Go to run every query I could think of that might tell me which terminal or terminals Southwest departs from at Laguardia. Neither search engine was able to return anything of the slightest use.
I began to think that Southwest might have a problem with its markup, and its content strategy, and with any additional findability voodoo that usually gets called “SEO.”
Even maps of Laguardia and maps of airlines at Laguardia and records of flights from New York to Chicago and other Giles-like aracana I eventually thought of were unable to produce a tiddle of information about which terminal at Laguardia plays home to all or even some of Southwest’s flights.
When all else fails, call the company.
As you might expect by now, it took work to find Southwest’s phone number on its website, and when I did find it, it was one of those 20th Century mnemonic numbers that are hard to use and rather meaningless in the age of smartphones: 1-800-I-FLY-SWA.
You will not be surprised to learn that I sat through a long, unskippable audio menu full of slow-talking sales puffery before I was offered the chance to say “agent” and speak to an agent (which I needed to do since none of the menu options led to the information I wanted). After I said “agent,” the robotic voice told me, “Okay, I will connect you to an agent,” and hung up on me.
I went through this three times to make sure I wasn’t going mad and there was in fact no chance of reaching an agent.
To summarize so far: basic information not on company website or, apparently, anywhere on the web. Hard-to-use phone number did not provide info in its menu, and hung up every time it promised to connect me to an actual human agent.
So I used the contact form on the company’s website to ask my question (requesting an answer the same day if possible), and to report the usability problem on the company’s phone system, wherein if a human asks to speak to an agent, the system agrees to provide an agent and then hangs up on the customer.
Today—the day after my daughter’s flight—I received via email a form letter from Southwest apologizing for not getting me the information in time (and still not giving me the information), and advising me to solve my own problems in the future by using Southwest’s super-useful toll-free number for concerns that require immediate assistance.
I guess the person who sent the form letter hadn’t read the second sentence of my two-sentence request for help, where I mentioned that the toll-free number was broken.
Here, in its entirety, is Southwest’s response:
Thank you for your email. We certainly wish we had been able to touch base with you prior to your travel. We realize how important it is to respond to our Customers’ concerns in a timely manner, and we regret disappointing you in this regard. For future reference, you may contact our toll-free number, 1-800-I-FLY-SWA, for concerns that require immediate assistance.
We appreciate your patronage and hope to see you onboard a Southwest flight soon.
Wanda, Southwest Airlines
The file reference number for your e-mail is 255648215756.
You can’t make stuff like this up. The last sentence is my personal favorite. There’s nothing like a file reference number to cheer you up after experiencing failure at every customer experience point you touched.
In the end, because my kid’s mom had shared the flight details, Tripit texted me the terminal information hours before I needed it. Terminal B, which is about two-thirds the size its needs to be for the amount of traffic it handles, was predictably mobbed with holiday travelers. There was not a free seat in the house.
Business is booming.
The Lords of Vendorbation
noun : Unusable web-based intranet software foisted on large populations of users who have no say in the matter. For example, the “dynamic” website for your kid’s school, on which you can never find anything remotely useful—like her classroom or the names and email addresses of her teachers. Merely setting up an account can be a Borgesian ordeal minus the aesthetics.
Tried updating a driver’s license, registering a name change after a marriage, or accomplishing pretty much any task on a local, state, or federal website? Congratulations! You’ve been vendorbated. In ad sales? In publishing? Travel agent? Work in retail? Y’all get vendorbated a hundred times a day. Corporate America runs, not very well, on a diet of dysfunctional intranets sold by the lords of vendorbation.
Terrible food kills a restaurant. Terrible music ends a band’s career. But unspeakably terrible software begets imperial monopolies.
Wholesale contractual vendor lock-in between vendors of artless (but artfully initially priced) web software and the technologically unknowing who are their prey (for instance, your local school board) creates a mafia of mediocrity. Good designers and developers cannot penetrate this de-meritocracy. While they sweat to squeeze through needle’s eye after needle’s eye of baffling paperwork and absurd requirements, the vendorbators, who excel at precisely that paperwork and those requirements, breeze on in and lock ‘er down.
Vendorbation takes no heed of a user’s mental model; indeed, the very concept of a user’s mental model (or user’s needs) never enters the minds of those who create vendorbatory software. I say “create” rather than “design,” because design has less than nothing to do with how this genre of software gets slapped together (“developed”) and bloated over time (“updated”).
Vendorbatory product “design” decisions stem purely from contingencies and conveniences in the code framework, which itself is almost always an undocumented archipelago of spaghetti, spit, and duct tape started by one team and continued by others, with no guiding principle other than to “get it done” by an arbitrary deadline, such as the start of a new school year or the business cycle’s next quarter.
Masturbation, or so I have read, can be fun. Not so, vendorbation. It is a nightmare for everyone—from the beleaguered underpaid lumpen developers who toil in high-pressure silos; to the hapless bureaucrats who deserve partners but get predators instead; from the end users (parents, in our example) who can never do what they came to do or find what they want, and who most often feel stupid and blame themselves; to the constituents those users wish to serve—in our example, the children. Will no one think of the children?
Cha-ching! Like a zombie-driven un-merry-go-round spinning faster and faster as the innocents strapped to its hideous horses shriek silently, the vendorbation cycle rolls on and on, season after bloody season, dollar after undeserved dollar, error after error after error after error in saecula saeculorum.
Think it’s bad now? Wait till the lords of vendorbation start making their monstrosities “mobile.”
Doff of the neologist’s toque to Eric A. Meyer, whose cornpensation helped crystalize what to do with the bad feelings.
AN EVENT APART Chicago—a photo set on Flickr. Pictures of the city and the conference for people who make websites.
THE NEXT AEA event takes place in Austin and is already sold out (although a few spaces are still available for the full-day workshop on multi-device design).
A handful of seats are available for the final event of the year, An Event Apart San Francisco at the Palace Hotel, December 9–11, 2013. Be there or be square.
A VIRUS spoofing my return email address has apparently been emailing many people. I know this because some of these viral email messages bounce back to my Gmail account as undeliverable. Mistaking these reports for actual messages sent by me, Gmail has decided I’m too active a user, and forbidden me to send any more mail today.
I’m a Google Apps user with a multi-gigabyte Gmail account and I’ve sent less than a dozen actual messages today because I am home sick with a cold. But Gmail doesn’t know that. And Gmail doesn’t care. Because Gmail isn’t real, not even in the David Sleight sense. It’s a set of equations programmed by fallible human beings, and it controls my life and yours.
There is no one to talk to at Google about my service problem because there is no there there. The services I pay for are delivered by robot magic in the cloud. When something goes wrong, it just goes wrong. There’s nobody to track down the virus’s origin and make it stop. There’s nobody to say, “This user hasn’t actually sent these messages.” (I keep marking the returned mails as “spam,” but Google hasn’t caught on, probably because customer service problems aren’t supposed to be reported by inference.)
My friend wears a shirt that says “The Cloud Is A Lie,” but that isn’t quite the truth. More like, the cloud is a customer service problem. One I just found myself on the wrong end of.
Google to customer: Go fuck yourself. In the cloud.
Curse of the Zeldman Curse
I HAVEN’T GRIPED about a run of bad luck with Apple products for some time, because I haven’t experienced such a run in years. So I was due. So pretty much all the Apple products I own are now malfunctioning, each in its own special way—a way that interacts cunningly with the malfunction in another Apple product I own to prevent me from, say, accessing internet content, or getting photos out of my camera and onto a device where I can view and edit them.
The interlocking details of these curiously synchronous malfunctions are of little general interest, but the cultural assumptions surrounding their discussion may merit some small call on your attention.
People used to talk about the Zeldman Curse, meaning things went wrong with my Apple software or hardware that didn’t go wrong with anyone else’s. But that was never true, of course. Google any problem I wrote about back then, and you’d find lots of other people having the same problem, usually quietly, on an out-of-the-way Apple message board, which only rarely contained an actual, working solution.
Media-wise, Apple was always mum on these subjects—the one exception being 2010’s notorious iPhone 4 antenna problem which supposedly doomed Apple and the iPhone and of course did neither because it wasn’t really a big problem and it was easy to fix.
But those other things that sometimes went wildly wrong for some users of some Apple products? Those things, nice people didn’t talk about. As a community, Apple fans were Victorians when it came to malfunctions of the hardware or software body, and those who complained—like Victorians seeking sexual information—were to be shunned.
This ban on complaint never stopped me because my filters are different from yours, and because I needed the psychological release that came with writing more than I needed your approval.
The real meaning of Apple design
Now, we all know Apple is smart. Their sales pitch is design, but not in the “pretty” sense people who don’t know what design is think I mean when I say the word “design.”
Their stuff is pretty, but that surface prettiness is merely an objective correlative—an indicator, if you will—for the beauty and emotional satisfaction of a generally seamless computing experience. It’s the comparative ease of creating and managing a music library, not the attractiveness of the surrounding chrome, that makes people connect personally with iTunes. Like the best websites, Apple products anticipate what you will need to do, and make it easy for you to do it, thereby enabling you to focus your attention on the content with which you are engaged, instead of on the interface that facilitates your interaction. Interaction design. Experience design. That’s what Apple is brilliant at.
And even when the hardware is visually gorgeous—like the MacBook Air, my road machine as a frequent speaker—the real selling point isn’t that visual beauty; it’s the fact that this powerful computer weighs little more than a pad of paper. You can toss it in your handbag or backpack and run out the door. That whole deskbound computing experience? The Air freed you from it even before the iPad came along.
If a brand’s whole essence is bound up with good experience, it makes sense for the brand to handle bad experiences quietly and with skill. This Apple does in its stores. If something goes wrong with a piece of hardware, or if an individual piece of software is malfunctioning in ways you can’t fix after fifteen minutes with the Googles, you walk into the Apple store, and a smiling initiate fixes the software for you, or replaces your bum iPhone with a free new one. Walking out with a free new iPhone kind of makes you forget that you were angry at Apple for the problems of the iPhone you walked in with.
The house that Jack wired
But you can’t lug your apartment or your whole network routing setup to the Apple store when your MacBook Air says it can’t connect to the internet because another device is using its IP address (even though no device is). And you can’t plug into ethernet because the Air doesn’t support it. And if you bought that ethernet converter enabling you to plug an ethernet cable into your Air, that’s when you find out that most ethernet cables don’t actually fit into that thing Apple sold you for $50. You can’t bring the Air into the Apple store to be diagnosed and fixed because it connects beautifully to the internet over Wi-Fi everywhere but in your home. And that happened suddenly, after you hadn’t changed anything about your network.
And it’s not just you, because your colleague gets the same error message on his Apple computer in the design studio you share. And it isn’t the way you configured your networks, because you hired a guy to configure the one in your studio, while you configured the home one yourself, using only Apple hardware and software. And the guy you hired to wire your studio is competent, because that is what he does for a living, and has done for 20 years, as his bald head attests.
And you want the Air to connect to the internet because you want to get photos off your camera, and you can’t do that with your desktop Apple computer (an iMac) because iPhoto will not open in that computer. iPhoto will not open in that computer because your iPhoto library is corrupted, and the usual secret fixes for that problem (Command-Option open) do not work. Besides, the iPhoto library on your MacBook Air is also corrupted.
Your iMac is set to open Aperture when you connect your camera to it, but Aperture shares iPhoto’s library, so if you plug your camera into your iMac, Aperture spins uselessly and stops responding, just like iPhoto does.
You can sometimes force iPhoto to open on the Air by holding down Command-Option on launch, but if you did that, the photos would just sit there, because the Air cannot connect to the internet in your home. So you couldn’t share the photos on Flickr or Instagram or Facebook, and what would be the point of having taken them? And besides, the Air has no room for photos because the Air has no room on its little bitty drive. And you can’t edit photos on your Air because it’s a “light” computer by design. So even if iPhoto wasn’t broken on your Air, and even if it had room on its itty bitty drive, the best you could hope to do would be dump a bunch of photos into it and then not edit or share them.
The iMac has internet access, but neither Aperture nor iPhoto will work on it because of the aforesaid corruption problem.
So I’ve bought iPhoto Library Manager to fix the corruption in my library, and I believe it will do that, but it’s been working on the problem for fourteen hours so far and it is not even halfway finished. Yes, I have a large library. By tomorrow night, if the software has worked, I may be able to access my photos—although there is the very strong possibility that when I connect the camera, Aperture will open, and will freeze, because it doesn’t know that iPhoto Library Manager has built an entirely new photo library, because that’s how iPhoto Library Manager solves the problem. So tomorrow night, when iPhoto Library Manager finally stops grinding away at my corrupted photo library, I may need to uninstall Aperture just to get the photos off my camera.
I also can’t access internet content outside my living room because my walls are thick and my network no longer recognizes my Airport Extreme (so I’m waiting for Apple to deliver another one) but that would be a third kvetch in the same post, and two is all you get.
So I think maybe Apple is telling me to go out and spend time with my friends on this cold but sunny morning, and to only use computers in my studio, where they and the internet magically work. Only, why would Apple tell me that? How does that message get me to buy more of their stuff? It doesn’t, logically. And yet I know I will buy more and more of their stuff. I’m probably buying some right now.
I should acquire an unfaithful mistress and lavish her with jewelry I can’t afford. At least then people would understand.
REDUNDANT MECHANISMS that fail to communicate with one another can make using Mac OS X Lion more confusing than it should be.
Consider the screenshot shown here. While Apple’s Software Update knows that I have downloaded the latest version of iPhoto (“Your software is up to date”), Apple’s App Store, pulling from a different database, does not know that I have already installed iPhoto. It only knows that a new version is available.
Because the App Store’s left hand doesn’t know what Software Update’s right hand has already downloaded and installed, the App Store flashes a red download alert badge, urging me to download 500MB of Apple software that Apple’s OS has already installed on my Apple machine.
Suppose I don’t bother to check Software Update and verify that the App Store’s “Update” tab is urging me to take a nonsensical action. Suppose I actually go ahead and click “UPDATE” in the App Store’s “Update” tab. What will happen?
The software, all 500 MB of it, will download again, and install itself again. That’s what will happen.
And the cream of the jest? After installing the software again, if I click into the “Purchases” tab of the App Store, the “Purchases” tab will inform me that an iPhoto update is available, and urge me to install it. And if I have been huffing nitrous all day and take Apple’s advice, the 500 MB package will download for a third time and install itself a third time.
And you thought Retina images were tough on bandwidth.
(A friend tells me that Mountain Lion resolves this clustercuss by removing Software Update from the equation. I suspect that those of us still using Lion are receiving unintended anal leakage from UI decisions that make sense in Mountain Lion but are idiotic in Lion. #imisssteve)