Usability has long been the redheaded stepchild of software design. It's a shame, but it's easy to see why. Faced with the growing complexity of OS platforms, languages, protocols, and standards, programmers tend to focus on issues like algorithm design, abstraction, and code reuse first, UI second. They design unit tests to verify each feature in isolation before they ever look at the big picture. Simply put, if most custom application UIs look like they were designed by teams of engineers, it's because they were.
But it doesn't have to be this way. If more development shops put their UIs in the hands of professionals, the result would be applications that are more consistent, more efficient, and easier to use -- all of which translates directly into increased productivity. Unfortunately, too many software development shops are still settling for the UI equivalent of the Flowbee haircut, putting programmers in charge of user experience -- and their software suffers for it.
Programmers have bad taste
My colleague Randall C. Kennedy has a name for what happens when programmers are put in charge of application UI: Linuxification. Inconsistent widgets, arcane dialog boxes, and indecipherable error pop-ups are just a few of the symptoms, Kennedy says, and they're enough to make him long for the glory days of Office 97. Mind you, Kennedy makes no secret of his feelings toward Linux and open source in general, but this time he might actually have a valid point.
Consider this year's Eclipse Community Survey. According to Eclipse marketing guru Ian Skerett, 74 percent of Eclipse users were developing on Windows two years ago, while only 20 percent used Linux. This year, however, Linux gained 7 percentage points, all at the expense of Windows. That's amazing when you consider that the Eclipse IDE runs equally well on Windows as on Linux, it's available at no cost for either platform, and nearly every PC sold today ships with Windows preinstalled. If Eclipse users are ditching Windows for Linux, it suggests that not only are developers tolerant of the Linux user experience, but they actually prefer it to Windows.