Improving Usability

mpt nails it. Software designed by anyone tends to suck unless someone that knows something about usability is involved and given proper access, due and clout.

mpt specifically calls out how open source development (of which “Free Software” is a subset, yes) tends to involve technical stability, modularity and “tweakability” — there are fields, endless fields, where settings are no longer hand-coded, they are grown — and these are good goals, but they don’t make a good “frontend”. The position is often that that the backend and the frontend are equal, that both need to be modular. This is rubbish.

In good software, the backend is robust and modular, but the frontend, regardless of its internal design, acts like a coherent whole. Hard decisions are made to clean up the program, not because people are dolts, but because they expect of the program to behave in an intelligent and well thought-out way from the start, and to give you the tools you need to change the behavior of things that really are up to personal taste. If the program doesn’t do this, you don’t care how robustly it’s built. If the frontend doesn’t work, the program itself doesn’t work, and the amount of cut slack you figure should be given thanks to the tour-de-force backend is completely irrelevant. A car that blinks left when you turn right, requires soldering potentiometers to adjust the seat heat and offers 42 (guffaw) gears is crap regardless of the V12 engine.

Two of the best and most public open source projects of all time that you need to interact with (and aren’t servers, operating system kernels or programming languages) are Firefox and WordPress. They are both modular and allow plugins/extensions and hidden settings, but the hard parts are completely optional, and the user interface is just plain well-designed, not just “good for being open source software”. But it’s not a coincidence. Both have formed organizations and hired people who care about this sort of thing, and made sure throughout every stage of development, even way before the fame and offices, that it’s been a priority to keep things usable.

I’ll stop reformulating the article here; really, go read “Why Free Software has poor usability, and how to improve it”. If you think this is about rearranging the checkboxes in a pretty grid, or adding gradients somewhere, or applying the last layer of varnish to what’s already there so people won’t be intimidated, you really, really, really need to go read it.

Comments [+]

  1. One problem is that the “usability” criers are almost exclusively people who can’t contribute anything useful beyond bikeshed bloviations on mailing lists. All they’ve got are designer affectations, and the usability they espouse is subjective. Free software does not need managers.

    Another problem is that good software can only be written iteratively and by extraction. That means it has to start in a form by and for hackers. It’s a recipe for failure to think about ‘usability’ for larger audiences anywhere near the beginning. You absolutely have to write software for yourself for it to be any good. Otherwise it’s all lies, including “User Stories” and all the attendant bullshit.

    OS X has tons of goddamn good GUI applications because people who work at Apple would rather not use a Terminal and generally have good taste. They wrote all the applications for themselves first, and the good frameworks by extraction from apps. Most Xwindows apps are also written by people for themselves, but they are people who (rightly) find a unix shell extraordinarily useable.

    The projects you mention, Wordpress and Firefox, are both souring on several axes as they market themselves. Marketing is poisonous, and it’s entirely unnecessary if you’re non-commercial, which increasingly neither WP or FF are willing to be.

    Wordpress used to be a slow, buggy piece of shit, filled with security holes. They only got the market share they did because MovableType was way worse and killed it’s community. Now it has improved to be the king of the PHP shitpile, but it still suffers from all of the non-trivial PHP problems. They like focusing on baking in frontend features that could be plugins instead of improving the core and fixing problems that plugins can’t.

    Firefox suffers from the same core crisis: Instead of working on hard things that only they can really do (Gecko bugs, Javascript, CSS3, SVG, etc.); they focus on poorly implementing flashy chrome features that should be extensions, and making them unremovable. At the same time Gecko progresses at a snails pace.

    I think you underestimate the danger in giving the UI Usability cranks a bunch of power — look at Nautilus (The GNOME project’s file browser): some manager read John Siracusa’s rants about the Spatial Finder, and got his recommendations implemented. Noone I’ve met considers Nautilus’s default settings usable, and I’ve watched ~100 students try. Very few could even decipher the cryptic preference to disable it on their own!

    And what if the developers of a piece of open-source software don’t care for or want a bunch of fresh-faced know-nothing users? What if a shallow learning curve would actually hinder real usability, real usefulness?

    By Fred Blasdel · 2008.08.02 13:44

  2. Those are strong words, you make great points and I respect you for putting your opinions so forthrightly.

    Usability must never shadow usefulness. But there are many programs that can be made to be useful that would be even more useful if they were usable.

    Ubuntu is wonderful to use, and it’s surely better than my earlier Linux experiments with Mandrake and Fedora by orders of magnitude. And the next time QuickTime throws up a “bzzt, wrong codec” dialog box (of which it has three or four variants), I will long for the smarts built into Ubuntu that can fetch stuff like that automatically. But the only two parts I can say that Ubuntu (and by extension “Desktop Linux”) really excels at are package management and research into experimental window management. The rest could still need a lot of help to get off the ground.

    To me this is not a question on whether to use a terminal or not. Tools to use through the terminal should be there, well-documented and useful, just as tools with a graphical user interface should be there, well-documented and useful. (Many OS X features actually have command line counterparts, like Spotlight and AppleScript.)

    I get the point about spatial Nautilus, and that whole plan was perhaps doomed to failure to begin with: implement something that’s mostly appreciated by people who grew up with it as novices and still like it to this day, especially when contrasted with a busted Finder implementation, into a platform that’s still mostly used by hackers that are perfectly fine with having the same folder open in two places at once and who would rather default to browsing, as would the rest of the world after 10 years with the Explorer in Windows 98 and forward.

    I didn’t bring up WordPress or Firefox because they’re the epitome of perfectly crafted, secure software; I know very little such software. But they are both successful and happen to have good user interfaces.

    You act like the usability plague is coming to take your software away. You act as if designing for usability is letting someone else design for you (”You absolutely have to write software for yourself for it to be any good”). I don’t care one whit for “user stories”. I have not imagined one single user in the development of my software, ever. I have designed for myself, and maybe I happen to have a low crap threshold, or maybe I’m one of the dreaded “usability” folks, but it has worked out for me. Instead of remaking it for the dumb user, I’ve tried to add as little stuff as possible to begin with, instead.

    Good usability is at least half science. To the extent that it’s not science, it’s not necessarily “designer affectations”. A usable layout for a window or a program at large makes efficient use of whitespace and of target areas, and there are many alternate ways to achieve a usable layout. There’s design at work, but it’s not just “let’s make it pretty”. Let’s not forget that design doesn’t mean how things look, but how things work.

    When Firefox makes a humungous back button and a regular sized forward button in order to establish some sort of misguided “keyhole shape” that’ll be some sort of second trademark for Firefox… that’s marketing. When Microsoft calls their application/File menu button the Office button and sticks a logo on it and makes it glow because people can’t tell it’s not a jewel because they’ve been doing ornaments for so long you just can’t tell anymore… that’s marketing. If you see anyone do anything like this, give them a swift kick in the ass and tell them to get back to their job. But this is not usability!

    By Jesper · 2008.08.02 14:33

  3. “Bikeshed bloviations” aren’t specific to those commenting on usability issues. It’s just that, as I wrote, measuring usability requires a lot of work. And in the absence of test results, everyone contributes their guesswork instead.

    I don’t believe for a moment that “You absolutely have to write software for yourself for it to be any good”. Many other industries (toy makers, tailors, and architects, to name just three) have long since matured to the point where people can produce superb products that they never use themselves. The software industry, as young as it is, has a fairly good idea how to do this too — personas, design guidelines, user tests, and so on. They just often don’t bother, especially in volunteer projects.

    Finally, Firefox 3’s large Back button isn’t marketing; it’s because Mozilla found that people use Back much more often than Forward. (Though quite why they needed “user studies” to reveal this, I don’t know.) The problem is, apparently, that they haven’t figured out a way to make it larger that isn’t ugly.

    By mpt · 2008.08.03 15:48

  4. I agree and I’ll clarify: Making the Back button larger isn’t marketing, it’s trying to make it a new groundbreaking shape (and even worse, in the initial sketches, trying to fit a new button in the middle) that’s bad. The first two thoughts that most people I’ve heard from have regarding that button are “cute” and “can I turn it off?”.

    Likewise, the File menu transformation in Office wasn’t all that bad. The button makes more sense at the top left because of the tremendous wins when maximized thanks to Fitts’ Law. (And the menu itself is better designed, because you can pin recent items.) But calling it the Office button and making it glow until you click it the first time… ugh.

    Regarding “not using the software yourself”, I believe that it’s significantly easier to write software you use yourself because it brings a lot of other things to the game — you know the domain, you don’t have to bring in testers, you know what feels right and how to prioritize. It’s not impossible to write software you don’t use, it’s just significantly harder unless you have a solid partner that can tell you exactly what’s needed. Often, that’s not there in any volunteer effort, so I understand where Fred’s coming from.

    By Jesper · 2008.08.03 16:01

  5. I’d love to know how Firefox isn’t a completely modular UI. Do you take your readers for idiots?

    By jldugger · 2008.08.12 13:49

  6. Firefox is a modular UI. Where I complain about modularity, it’s modularity of the code or internal architecture at the cost of a coherent UI. If you can get both, it’s great, and a well-designed internal architecture is something to strive for either way; I’m a programmer. But if the UI is obviously suffering from technical decisions (which Firefox mostly isn’t), you’re doing something wrong.

    By Jesper · 2008.08.12 17:55

Leave a comment

Your e-mail address is never shown. If you type a line break in the comment, it will show up as a line break (naturally). The following HTML is allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(required)

(required)


Please note: Your comment will not show up at once. Unless you're spamming or being abusive, you have nothing to worry about. (Read the full policy.)