In the September issue of MSDN Magazine, Don't Get Me Started columnist David Platt wrote about the challenges of application design (Development Is Design), and how too often development projects put off the visual and behavioral character of their applications until way too late. I asked David about the column and his thoughts on software application design in general.
Michael Desmond: With BUILD in the books, care to proffer any design advice or insight as it relates to an HTML5 world? What kind of challenges or issues might developers expect to encounter if they work with Metro-style app dev?
David Platt: The main challenge of HTML5, or Metro, or WPF or Silverlight, or raw Windows, or any other UX technology is to recognize that it isn’t some enchanted lotion that you slather over your apps to magically make them good.
All technologies are double-edged. You need to start not with the technology but with your users. Who are they? What problems do they need to solve? What would they consider the characteristics of a good solution? What do they love, what do they hate? What do they hope for, what do they fear? Once you’ve figured this out, how close can you get to that with your fancy new toolkit?
Microsoft sort of, kind of, gets that internally, at least sometimes. The research that they’ve done on the usage of touch, and the design of a touch language, is excellent (see Design Metro Style Apps That Are Touch-Optimized on Channel 9). But Microsoft never, and I mean not once in the 20-plus years I’ve been working with their technology, has made a priority of communicating this information to the developer community. They constantly shout about the technology itself -- “Here’s how to program a color gradient.” They almost never talk about the user at all -- “Here’s how a color gradient affects the user, so here’s where they work well and here’s where they don’t.”
Even the way you phrased the question above shows the orientation towards technology first, rather than the users. That needs to change.
MD: In the column, you focus on UX. What are your impressions of the Metro visual style in Windows 8? I know it’s aimed at consumers, but any thoughts on how elastic this interface framework is for business and enterprise type applications?
DP: These are entirely different environments. Tablets and gadgets are primarily for consuming content. Business and enterprise apps are more about creating content. Tablets and devices are becoming so successful because they’re better for consumer purposes than the general purpose PCs that were shoehorned into those niches.
For hand-held and laptop devices, Metro is fabulous. The next column I’m working on, probably for January, is about how I used a touch-based Kindle reader app on my Android phone, then hated it when I had to use an actual Kindle device which had physical buttons. How primitive, once I’d gotten used to touch. You don’t know what you’ve got 'til it’s gone, all right.
Having said that, I’m not sure I see the application of touch and Metro to desktop or enterprise apps. For writing this blog in Word, for example, my hands are on the keyboard for typing text. I don’t want to have to raise my arm, a low-resolution shoulder movement against gravity, to select text or issue commands. I have a single pixel resolution pointing device (my mouse) just a slight wrist rotation to my right.
MD: Time was, Windows Forms imposed a staid but consistent visual structure, but XAML has kind of blown that up. I hark back to the tin age of desktop publishing, when sudden access to cheap tools inspired some of the ugliest layouts ever put to pulp. Did we see that happen with XAML? Will we see it with HTML5?
DP: First, it wasn’t XAML that blew it up. XAML is not tied to graphical interfaces. XAML is a general-purpose language for describing an object graph, that is, for instantiating a tree full of objects and setting their properties. As it happens, the graphical environments of WPF and Silverlight were the first applications of this application-neutral declarative object language. All the horribleness could have easily been done in C# or VB.
I know we’ll see some awful applications, even those done by alleged professionals. Look at the Boston Globe’s new HTML5 layout (www.bostonglobe.com ). When I hover the mouse over a link, thinking, hmmm, do I really want to click through and read this article, a bright red “Save” button pops up to the right, yanking my eyes away from the title. I'm trying to read the damn paper and this hyperactive golden retriever is slobbering in my lap, shouting "Save? Save? Do you want me to save? I can save you know.” It’s hard to ignore. The color is red, like fire or blood. Popping into view grabs my attention like a car’s brake light flashing on.
How often does anyone want to save a newspaper article? Rarely. Newspaper stories are inherently short lived items, as illustrated by the cliché “yesterday’s news.” This seldom-used bug (I won’t call it a feature) degrades the user’s main interaction pattern with a newspaper, which is casual browsing. Classic example of a developer falling in love with his toolkit and forgetting the main body of his users. And the Globe, which recently put up a paywall, thinks they’re going to charge money for this crap? Please.
MD: Do you have any broad design philosophies or guidance that can help developers make better decisions? Your column certainly urged taking action on design and UX early in the app dev process. Any others come to mind?
DP: Start with the user and work inwards, not from the technology and work outwards. And call me early in the process. Ideally with a large check in hand.
MD: What was the biggest design disaster you were every associated with? How did you deal with it?
DP: Trying to do a touch-screen financial traders station in DOS, back in the 1980s. We never got it to work, the platform was too wimpy, the boss was crooked, and the company went belly-up. I won by fighting the losing battle to the bitter end and being the last guy carried off the field. The client admired that, decided I was the guy they wanted between them and the bad stuff in the computing world, and picked me up as a consultant. I asked them to buy me the Windows 3.0 SDK, and like idiots they did. I bought myself a copy of Petzold’s second edition, stole the C compiler from somewhere, and the rest is history.