Jakob Nielsen Talks About Usability in FOSS
dokey writes "In an interview with Builder AU, usability expert Jakob Nielsen gives his opinion of usability in Free and open source software. The article echoed what Jon "Maddog" Hall said earlier this year in a keynote at Linux.conf.au -- "Programmers Are From Mars, Users/Managers/Companies are from Venus". Is it time to pay more attention to end-users?(who aren't geeks)"
I suggest Slashdot copy his website's color scheme for their next section.
Don't expect usability from a programmer.
Separate program logic from design and let a designer do the interface. Much happier for everyone involved
This is the core focus for applications. The End-User must always be factored in, regardless of who that is.
For example, I may develop a quick little utility that let's me interface w/all the X10 in the house. I make it text-based commands, since I need no fancy interface.
Now, change that to Ma and Pa Kettle. Try to sell them the text interface and they call it crap. Add a whiz-bang interface showing all the connections in the house as the appliances/rooms they reflect and M&P buy it.
More IT apps fail from lack of interaction with the end-users.
"Is it time to pay more attention to end-users?(who aren't geeks)"
Not only is this mentality wrong, it's also holding OSS usability back. Geeks are end-users too. If good UI design is targeted at computer novices, as is widely assumed, then why do so many technically talented people love OS X? Answer: Because usability gains for "our grandmothers" are also usability gains for we geeks.
The attitude of "It works, don't care if you don't like how it works or if you think it's ugly, I like it, if you don't like it than don't use it" is not just in FOSS, it's the attitude of many, if not most, programmers. Despite what it may look like, this isn't flamebait, I'm one of these guys myself. At the company I work for, this attitude is prevalent to a degree in most of the developers. It takes someone outside their heads (and usually, pressure from someone who makes the decisions) to put a friendly face on the application, and, dare I think it, reduce or refactor functionality to present a better interface to the user.
It's not that developers aren't to blame, but rather, it's how you'd expect developers to be. What FOSS needs is a free, open-source equivalent of the QA/Validation/UI Design department.
> The reason is, the motivation for open source is
> not because the person gets paid but the person
> gets prestige. The developers are designing for
> each other and they are so feature rich--geeks
> love features--and you get more prestige by adding
> features. For the average person fewer features is
> better and easier to understand.
This has been a constant battle on POPFile. People are forever asking me for this option, or that option, which are useful to a user community consisting of themselves and the two other people in the world who want the same thing. I've been argued with strenously for not adding various features and in general to innovating in the UI really slowly, but the lesson is clear: the average user should be guided by the software to the right behaviour. POPFile does have 100s of special options and they are available in a cfg file that a geek can get at.
The other problem with open source and GUIs are all the people who want things in very specific places. e.g. I got constant "Put button X at the top, no, put button X at the bottom, no put it at the top and bottom" type conversations. Finally, we've boiled the UI down to the things that most people like and anyone else can hack the HTML templates and make the UI just as they want it.
Overall, we've settled on:
1. Lots of flexibility exposed at the geek level
2. The every day functionality exposed in the UI.
There's still a lot to do to make POPFile's UI really friendly, but the biggest lesson has been to resist the power users when it comes to adding UI widgets.
John.
Who are these 'end users' you speak of?
This is not an automated signature. I type this in to the bottom of every message.
From TFA:
/. still dispute that view.
========
The second problem is that open source when they turn to the general tools they tend to be in the line of "let's implement what we already know" so they will take Microsoft Office and they will clone it. Since we've been criticising Microsoft for years for cloning Apple it is only fair to criticise open source for cloning Microsoft. The point being that you don't move ahead but you have to do something new.
========
Very nicely said - he's not the first or the last to say this, but I am puzzled how many in the OSS community and on
Of course, that is not only obvious but potentially dangerous from the legal perspective.
If/when OSS software gets close to endangering some big commercial software, I think this cloning thing will be the first the ISV will present to the court.
BTW, the Pope said something against cloning yesterday - was he complaining about OSS?
That's not funny, it's correct.
:2.
There's nothing wrong with an OS/application that only geeks can use. Just don't try to market it to non-geeks, and there's no problem whatsoever.
I personally don't want my OS and applications dumbed down to the level of other OSs. The lack of control and options in metacity, for example, is shocking. It's almost getting to the point where you have to swallow default configs if you want the "user-friendly" distros to even work right at all.. For example, I can't turn off Nautilus unless I don't care that my background doesn't get properly set to my root window, something that should not depend on nautilus at all. (and doesn't, I can go manually reset each time I restart X, without starting nautilus).
I won't even get into the hassles if, god forbid, you want to run a second X session on
If anything, the lame attempts of programmers to second guess what the end-users want, locking them into defaults, and not testing non-default configs, is a horrible trend in general.
I've had enough abrasive sigs. Kittens are cute and fuzzy.
Step 1) For the love of God, stop making skinned applications. Use the UI-consistent widgets, they're dirt cheap, I promise. Skinned apps make me want to scrape my eyes out.
Mike Hoye
There is no reason for a hobbyist to do go to the trouble of making a gui for end-users.
However, many people do FOSS development as a means of creating software to supplant commercial software, or as a means of creating new ideas in software. Those are the ones that should be paying attention to non-geek end-user needs. Furthermore, those that wish to be taken seriously as developers for end-user solutions need to do so as well.
A lot of it comes down to understanding who you're writing software for. If it's for yourself, who cares? If it's to attract other users, then you have to consider your target audience and if the audience includes the basic non-geek user, then you need to plan for their needs.
To celebrate the occasion of my 1000th post, I will post no more forever on Slashdot. Goodbye.
....asks Hemos as he blinds us with another blast of beige-on-white text...
What I'm listening to now on Pandora...
Apache impressed people with its English-style configuration directives that have influenced other developers to switch to such logical formats. Another example: the Postfix MTA is becoming more popular and many users say they enjoy using it because of the straightforward configuration, compared to the m4 mess of sendmail. "It has to be complicated to be powerful" is no longer an excuse.
Good point taken. I hope I'm no troll or flamebait here, but have you seen KDE or GNOME lately, as well as their applications? They almost look like replications of the Windows interface. Isn't leaving Windows and learning something new part of the "benefits" of switching to Open Source? I think that the Open Source developers should build a brand new interface from the ground up, that is different from the other interfaces out there, but also useable enough so that way non-geeks would be able to use it with minimal trouble.
What I mean is this. Say you're a hypothetical non-geek Windows user who is using KDE or GNOME. You notice that the interfaces look very, very similar; the minimize/maximize/close buttons are in the same spot, the bar where your applications go works quite similar, and everything has a bit of familiarity. But say you want to go further. Then you'll hit some rough spots, because KDE/GNOME doesn't work exactly like Windows does, even though it looks very similar to it.
But what if I gave that same user a completely different user interface, one that the user has no experience in. Yes, the user would have to learn how to use the new interface, but if the interface is well designed enough for usability, the user will master most, if not, all of the aspects of the user interface in very little time. Plus, because the interface doesn't look like anything that he or she seen before, the user wouldn't expect "well, it worked here in this environment, so it should work the same way here."
This guy keeps saying the same things over and over again. Why anybody would pay him $10,000 (his starting price) to review their site is beyond me. Instead, someone should make an 8-ball with his 30 stock tips in it: "Don't have a link to the homepage on the homepage." "Don't have dark text on a dark background." "Have a search field in plain sight on the homepage." "Make your pages liquid." and so forth
I have a plaque on my desk with a series of 9 principles of Object Oriented design that I stole from Bruce Eckel's outstanding Thinking in Patterns with Java. I made the plaque not because I'm a huge fan of OO (which I am), but because many of them are equally useful when designing human interfaces.
.NET, I use a lot of User Controls to create "panels" of functionality, thus preserving this principle of design while reproducing the functionality).
Don't be astonishing. In other words, don't do something in a completely new way and don't spring new concepts onto users without educating them first. I've used many designs that were fantastic after a bit of training (Blender comes to mind) but WITHOUT that training you can't do a damned thing. That's astonishing. That's bad design. That's the reason why Apple mice have only one button and the HI guidelines BEG you not to require contextual menus. And for god's sake, don't use a menu called "Script-Fu" and expect people to know what the fuck it does!
Make common things easy, and rare things possible. In other words, allow people to do what they have to do most often in a clear cut way with minimal interaction. If you have additional options, hide them. They don't have to go far away, but don't sour your main interface for an option 99% of users will never need.
Consistancy The A1 most important thing. If you perform actions with the control key on one screen, and with the alt key on another, you've got a crappy interface. If your program uses drop downs for some things and autofill text boxes for others, you've got a crappy interface. Choose one method for managing each type of relationship, one hotkey for each type of function, lay things out in similar fashions, etc. Using visual inheritance helps.
Law of Demeter (don't talk to strangers) A window should only have power over the information inside it, information passed to it and information it sends back. A Tools window that has a save button is useless.
Subtraction A design is only finished when you can't take anything else away and have it be useful. Get rid of all those bullshit options and useless features, they're just making the app bloated and confusing.
Simplicity before Generality A general purpose app that is not simple is not worth using. I point and laugh when I see interfaces like Novell's terrible management utility. Drilling through a tree where every node does something different with no explanation of what they something does is only good if you charge several grand for certifications on that interface. For everybody else, it sucks.
Reflexivity Don't change more than one variable per control, and don't use more than one control per variable. If you've got a drop down that says "Change Name to Rob and Street to Youngstown," you need two controls.
Independence / orthogonality "Express independent ideas independently," something we can argue about as it sort of breaks the simplicity/generality idea. But the concept is this: if you're editing user information on a screen/tab/etc, there shouldn't be anything about filenames on it. If you do have independent ideas that have to share space (say, addresses with names), separate them with different colours, spaceing, group boxes, whatever, so that users know they are different ideas grouped together.
Once and Only Once I could argue this too...the idea that there should only be a single way of entering or editing data is a sound one, but there are many times where it is more convenient for duplicating data or editing multiple records to use two different interfaces. But the basic idea is sound...and if you do allow more than one entry point, it should only be to make things simpler for users -- and maybe the two interfaces should share code (in
Hey freaks: now you're ju