September 2011

Volume 26 Number 09

Don't Get Me Started - Development Is Design

By David Platt | September 2011

David PlattToo many developers and managers think that user experience (UX) design is selecting colors and fonts and button radii. Nothing could be further from the truth. The rounded window corners and cutesy animations are the last and least important piece of the UX. My fellow Software Legend Billy Hollis calls that stuff “decoration, not design.”

Your entire program is the UX: its workflows, its feature sets, its required inputs. The UX isn’t something that you throw over the fence to those artsy guys in berets who will somehow decorate your sow’s ear of a program into a silk purse.

The UX battle is won or lost long before the program reaches the decorators. Think of your program as a piece of furniture—say, a table. The decoration is the surface finish on that table. Certainly tables should be finished well rather than poorly. But if the developer builds the table from the wrong material, one that doesn’t satisfy the user’s needs, even the best finish in the world can’t help. If your user wants a decorative table for a nature-inspired living room, choosing wood will probably make him happy. On the other hand, if your customer needs a working table for a cafeteria kitchen that undergoes daily sanitizing, metal would be far better. And backing up a step, does the user really need a table, or would a chair solve his problem better?

Here’s an example of fundamental development decisions making or breaking a UX. I use it in my Why Software Sucks keynote talk.

I was teaching in Sweden some time ago and browsed to Google. Its servers detected the country and automatically replied in Swedish (Figure 1). That’s correct for most users most of the time, and requires just one click (lower right) to fix it permanently (persistent cookie) if it’s ever wrong. On the other hand, requires the user to select his country before he can do anything at all. That takes 30 clicks to do if you’re in Sweden, and you have to explicitly tell the site to remember you or it’ll make you do it again next time. That’s no way to treat a customer whose money you want.

Automatic country detection is one reason why Google does it right
Figure 1 Automatic country detection is one reason why Google does it right.

The UPS architects condemned their site to suck when they chose not to implement automatic detection of a user’s country. (I’ve done it; it’s not difficult. Simple static table lookup, update the tables once per day. Easy.) They showed contempt for the customers who pay their salaries, deliberately choosing to waste users’ time doing what a computer could have and should have done for them. No decorator in the world can correct the results of this malpractice.

Google, on the other hand, understands that its aggregate users’ time costs billions of dollars per hour, as I’ve written previously. Its automatic country detection, automatic topic suggestions and automatic fetching of search results all combine to answers the user’s question; quickly, correctly and with minimum possible effort. The world’s worst decorator would have a hard time wrecking this site.

Google occasionally adds a topical decoration to its logo for a touch of whimsy. I recently saw a working guitar, a Charlie Chaplin spoof video and the lunar eclipse in Figure 1. But Google never lets this decoration obstruct its functionality, and never short-changes its functionality budget to fund it. Its official name, the “Google Doodle,” acknowledges its non-essential nature.

Clients sometimes ask me to critique their UXs just before they ship. That’s way too late to change anything. The architecture is set, the budgets spent, the attitudes hardened. When I see the corners that my clients have backed themselves into, I want to tear my hair out. Like a cancer surgeon, I want to scream: “Why didn’t you come to me a year ago when I could have helped you?” Like the surgeon, I provide whatever palliative care I can at that point. But as I do that, I silently swear to preach the gospel of early intervention, to spare others the pain I can’t help this guy with.

The UX starts at the beginning of the development project, not the end. Thank you for reading that. Now go do it. Call me sooner, not later.

David S. Platt teaches Programming .NET at Harvard University Extension School and at companies all over the world. He’s the author of 11 programming books, including “Why Software Sucks” (Addison-Wesley Professional, 2006) and “Introducing Microsoft .NET” (Microsoft Press, 2002). Microsoft named him a Software Legend in 2002. He wonders whether he should tape down two of his daughter’s fingers so she learns how to count in octal. You can contact him at