Usability and Open Source Software
Posted 26 Feb 2003 at 05:19 UTC by jbucata
This article was recently published on the subject of involving human-computer interaction (HCI) experts in Free/Open Source development.
Juicy quote from the conclusion:
Raymond (1998) proposed that 'given enough eyeballs all bugs are shallow.' For seeing usability bugs, the traditional open source community may comprise the wrong kind of eyeballs.
The article doesn't give any new brilliant insights into how HCI should be done in Open Source, but it summarizes the issues nicely to be a launching point for further discussion.
The author is also being interviewed by WebWord.
Funny you mention Eric Raymond. About two weeks ago when he came to give a presentation to my LUG, me and him had an interesting conversation about the status of Open Source usability.
Eric R.: (says something about the seperation of user interface and backend stuff using cdroast as an example).
Me: Eric, any good user interface designer will tell you that you should design the interface before you ever write the code.
Eric R: THEN THEY'RE WRONG!!!
Me: And what if the backend stuff is written and then there's a whole bunch of stuff you need for the frontend that the backend guy didn't think of?
Eric R: Then it's broken and it needs to be fixed.
Me: And what if the guy who already wrote the backend code has written so much that he doesn't want to go back and rewrite the stuff to make it work well with the user interface?
Eric R: Then we have a serious problem.
If there's any moral to this pointless anecdote, its that millions of eyeballs do no good if their owners constantly stare in the opposite direction.
Just a random idea: Like movies rated by ages, maybe Free (Libre) Software can also have a rating system based on age. A program that a three year old can use must be very user friendly. A program that can be used by 10 year olds probably have good usability. A program rated as only for 20-year-olds probably is emacs :-)
Alternatively, we can rate by old age. A program that a 70-year-old can learn to use quickly must have good interface.
So if you have children, or old parents, use them as test subjects in designing good user interface :-)
Do not use Eric Raymond as the test subject.
Good != dumb, posted 26 Feb 2003 at 14:43 UTC by realblades »
I really don't want to use something that "a three year old can use". The interface must be first powerful and working and bulletproof and only secondly "easy" in that sense.
Real ease of use comes from not hindering workflow and not working against common sense and logic. The programs I use aren't things I use once in a lifetime. I can afford a few seconds to look at how it works. In some cases, I love to see a lifelong learning curve. Nothing nicer than a tool that keeps getting more powerful as you use it like a good pen, brush or a knife not to mention a language!
I know there are lusers who throw all sense out the window when they have to deal with a computer. It should be easy to point out that "Look! It works just like that other things and that and that and that and the hammer and your chair." The world is full of analogies and things working in the same way because that's how things work. This should be emphasized in artificial design as well.
There are some very rare places for dumb interfaces (web sites, games, vending machines...) but they should never be enforced on all programs!
KISS ofcourse always applies.
Look at Windows. Its UI is nothing sort of junky, yet Microsoft continues to
reap in the big bucks. MacOS tried to do everything the Right Way, yet it
can't even beat Linux when it comes to user acceptance rate.
What does this tell us? Some people think evangelism equals improving
usability. False. Improving usability may win over a small minority of
usability zealots, but these zealots will forever be a minority. The
majority will happily use any junk that smells nice for them -- often when
they say "Linux is not usable", it just means that they're more used to
Windows' silly quirks than Linux's (other) silly quirks.
And what of the "usability criteria" proposed by interface design experts?
Often they're nothing more than arbitrary measures whipped up from nowhere,
in the same way as a magician pulls a rabbit from a hat. No direct relation
between these so-called "usability criteria" and actual evangelism rate
has been demonstrated.
In summary, Worse Is
Let the Jihad begin!
A lame tactic, I know, but if you will excuse me, tk :
How important is stability, really ?
Look at Windows. Its stability is terrible, yet Microsoft continues to
reap in the big bucks. MacOS X is extremely stable, ...
tk is under a number of false assumptions.
First, usability guidelines are not arbitrary measures. They
are derived from actual lab tests in almost every case. If you really
don't believe that menus with large number of items are a problem - go
actually measure it. This doesn't, naturally, change the fact that they are heuristic in nature - this is why they're called guidelines and not rules.
Second, improving usability, in 99.9% of cases, affects everybody. Just
because you don't necessarily hear about the improvements, does not mean they are somehow irrelevant.
Third, not everybody is working to improve evangelism rates.
Personally, I consider people who don't care about usability, and who
have some hand in designing user interfaces, to be as incompetent as
the majority of software authors who do not care about the quality of their source code. Are you really satisfied with doing no better than
Windows ? Or do I detect a hint of elitism here ?
We have a long way to go, and the prevalence of similar
attitudes is helping nobody. Seth Nickell's article
is the best short espousal of "usability for hackers" I've seen.
If you consider stability vs popularity, again you notice that the bad one often comes out on top :)
Popularity should not be used as a measure. And microsoft should not be used as an example. Better do it well if at all possible, but bad and running now is often better than good maybe sometime in the future once we're finished with it.
Always have running code.
Importance, posted 26 Feb 2003 at 23:32 UTC by Malx »
You forgot entirely about ability of people to learn :)))))
If people could learn emacs and vi UI, then what whould achive in making these apps Windoz-style-usable?
And what is usability? Which people For? Lab people are just people from around, but are they target audience? If you whould find 10 programmers they whouldn't feel resulting UI usable!
I whould recomend to split UIs by user types and work they need to do. For example soft should contain entirely different UI for new users and expirienced (different for mac, win, unix-win and unix-shell users). Also work type shoult be split by autonomous, auto+logs, remote-controlled, interactive-in-background (shell & GUI), interactive (shell & GUI). etc.
You should learn from web-programmers and intelligent agents architecture.
, your attitude examplifies why Free Software is behind in usability. You don't want dumb interfaces. Fine. But what about your users? Do they want to be a proud wizard in using your masterpiece? If someone is flying an airplane does he want to have his control panel infinitely customizable, which he can reprogram in Lisp?
You recognize the importance of keeping it simple and stupid. But isn't that the same as "dumb"?
Interesting..., posted 27 Feb 2003 at 12:12 UTC by salmoni »
Interesting comments from the community. Tk - umm, usability is important. If a piece of software is unusable, then it's, well, unusable (ie, not fit for it's purpose). The whole point about improving usability for OSS is to improve its acceptance rates for the wider world, and not just a small bunch of elite hackers. We all have different aims here, but I imagine that a lot of Advogato people would like OSS to have an even higher level of acceptance, and we must face facts: not everyone wants to learn Vi, as wonderful as it is.
realblades - working code is important, but one thing that commonly creeps up from usability studies is that the whole application is improved if a good level of usability is catered for from the beginning of a programs inception - curiously enough, I even find that it makes programming a lot more enjoyable (and I'm not saying that my stuff is usable, rather I try to make it so). And of course, working code with no interface is not much use to anyone. ;) And of course, you are right in that good != dumb. No interface is intuitive except for the nipple. And maybe the genitals...? :)
atai - interesting idea to have 3 year old rate interfaces, but there is a problem - most 3 year old operate more in the concrete domain than adults do and can pick up computer related stuff a *lot* more easily (hence the colloquial tales of people getting their kids to program their VCR's). You may even find that an interface which a 3 year old finds easy is opaque to many adult users!
llan - does ESR have any evidence to back up his "THEN THEY'RE WRONG!!!" comment? It strikes me that writing software with no regard to the end users is largely a waste of time, but then one of the beauties of OSS is that people are free to waste their time if they wish! ;)
One thing is clear though - no matter what the current state of usability is in OSS, it is definitely improving regardless of what many trolls may claim.
More theology..., posted 27 Feb 2003 at 13:58 UTC by tk »
whole point about improving usability for OSS is to improve its
acceptance rates for
the wider world, and not just a small bunch of elite hackers.
Exactly my point. Is usability not about improving acceptance rates? Yet I
hear another person saying, "Popularity should not be used as a measure." So
should it be used as a measure, or should it not?
Also, if by improving usability we expect to increase acceptance rates, then
how do we explain the Windows/Linux/MacOS situation? Till now I've not come
across any real answer to this paradox, only the Special Pleading that
"popularity isn't important" or "you don't hear about the
Not that I don't think usability is important, but I think its importance
in increasing acceptance rate has been blown out of proportion at times.
" How important is stability, really ?
Look at Windows. Its stability is terrible, yet Microsoft
continues to reap in the big
bucks. MacOS X is extremely stable, ... "
I happen to think that stability isn't that
important either when writing end-user software. :-( Personally I
deem it important, but it's only me.
First, usability guidelines are not arbitrary measures. They are derived
lab tests in almost every case. If you really don't believe that
menus with large
number of items are a problem - go actually measure it. This
change the fact that they are heuristic in nature - this is why
guidelines and not rules.
The lab tests are themselves based on arbitrary premises. One can
measure how much time it takes for a person to perform a task with large
menus. But the question remains -- does the amount of time needed to
perform a task correlate in any way to acceptance rates?
- yeah, the wide acceptance of Windows shows that it is not necessary
for an application or OS to be reliable, usable or secure to be accepted: but it does help and cannot harm. I think that MS are in their place, not because of their superior technology, but rather because of their innovation - in business strategies.
However, the problem with OSS is that it doesn't have a marketing budget (or at least, not much of one), and relies upon word of mouth and reputation all of which derive from the quality of the software, and usability will play a role in this somewhere, even if it is not the most important factor (which depends upon the task being done).
does the amount of time needed to perform a task correlate in any way to acceptance rates?
I wouldn't have thought so ;), but I cannot see that it will do any harm to have something that enables greater productivity. With a piece of software, a genuinely good level of usability will sell itself, and if nothing else, providing a high level of usability should increase an applications profile and reduce the number of trolls saying "OSS Sucks cos XXX is unusable". Sadly, most people don't know any other way which is why a lot of OSS is devoted to providing users with a clone of a popular piece of software, which is no bad thing in the short term. Even sadder, some people who know there is a better way still persevere with inefficient strategies!
Having said all of this, you are right in that usability is often seen as the be all and end all which it is not. It's just another factor to be considered.
...often when they say "Linux is not usable", it just means that they're more used to Windows' silly quirks than Linux's (other) silly quirks.
Absolutely correct. The amount of implicit knowledge that many people have about Windows is enormous and often neglected in debates about usability.
Arguments about stability are meaningless in discussions of usability. We expect software to behave stably regardless of it's interface. Popularity, too, means little. Both marketing strategy (including packaging and advertisement) and cost have as much impact on a product or service's popularity, at least in the short term. Even loyalty can be influenced by factors far outside of a products value and ease of use.
As an architect, I find the best tool to test usability is either an emergency or the learning curve. In fact, both are related. Studies show that 95% of new visitors to a building will try to exit the way they entered in the event of a fire, regardless of its relative distance and saftey. (You'll notice newer movie theaters have a ridiculously sized lobby... this has nothing to do with popcorn sales, it's a building code requirement.) People initially respond by instinct rather than logic. The first time you are presented with information is the best time to understand how you might grasp it in an emergency.
Now it can be argued that the stress test is no way to gage the productiveness of an interface. It is true that in different situations we have different needs. An educated user is much better able to maximize the potential of a set of tools, sure. But if you start considering that each tiny request the user must make in a software package is a mini emergency, it is easier to connect the two. Such as in a complex piece of CAD software, too many divergent methods between similar tools slows productivity. Interface design is responsible for artistically making sense ("perception") of all these possibilities.
In real world interface design, we use defined, age old principles to enhance not only way finding but total user experience. Architecture is the study of how space is perceived and structured by forms, materials, light, perceived weights of building forms, iconic signs, surface textures, and half a million other things I never have gotten around to studying. Computer interfaces have the similar complexities and I would argue very few coders know two cents about them. Just because one can force a calculated output to the screen doesn't mean they know best how it should look and be presented.
As an aside, my favorite exploration regarding design right now is the continuing 2D v. 3D war. Some think that windows should not look like real forms because they are in fact only graphics. They prefer flat looks as better depictions of realities. Other designers (and a seemlingly much larger percentage of users if themes are any indication) prefer a faked 3D look. For example, GNOME 2 just got a hacked shadow feature for menus. The thought is that this helps the user to understand what is in focus. Apple's Aqua interface is another example of faked 3D interface being "cooler." But start tiling ridiculous amounts of 3D-ish windows. This approach begins to show some weakness because there are less pixels and resolution available to continue the charade. I think Aqua's use of faint transparancy is an attempt to communicate this, the interface uses multiple tools (shadow and transparency) to explain.
I agree with the above posts asking for both testing with unfamiliar users and advice of experienced interface designers. Most programmers have been tolerating poor interface for so long that they are unable to see good design. While the open source approach is excellent for developing code quality, it always takes a team or partnering approach to make sure the right people are attached to the right tasks, including user interface. Same goes for documentation and graphics.
(Sorry for all the words, I'm a designer, not a writer. ;)
atai, I AM a user of free software and I am not commenting on my own work, I am commenting on the interfaces I use.
And yes, KI simple, but not too simple. Not dumb. And like I said,
first powerful and working and bulletproof and only secondly "easy".
And yes, interface design is very difficult.
Open source programmers are often not rolling out a product, but filling
an acute need. Or so the saying goes. This would mean that any interface
can quite possibly be hastily thrown together to get the thing working.
They can quite often be not quite well thought out. There are
problematic interfaces and there are sort of lack of interface in
things. Little documentation, weak build system, lack of polish all
around. There are problems.
There are also people who think they know everything about user
interfaces and usually they say they don't care about low-level things.
I've seen them and I keep seeing them all the time. They have many
common features. They don't know much about the actual working whether
they claim to care or not. They also don't really go and use the things
they bash because they're different that what they are used to. All the
people bashing interfaces are not those, but a huge number are. Rare
ones can offer critique and reason and most of that are blind rules. Not
actually relating to what you are doing. Biggest argument often is "it
is not what I/We would try first".
There is no such thing as open source interface design or open source
user interface. You can look at something like NeXT and say, "Yes,
that's a *Step interface all right." and you can do the same with Amiga
intuition or perhaps a MacOS program. But there is no such thing as an
open source interface. Any problems will actually have to be pointed out
in each situation.
Some things you can lay guidelines on and consistency is important. Like
I said, many things work the same way.
I won't start on this now. This is just here in case people want to
start calling me inconsistency-lover or something.
What I'm concerned about is people, especially the nasty human-concern
types to whom the idea that tech people are disgisting and always wrong
and humanists are virtuous and naturally talented in seeing things
without learning that complex technical ick, are actually taken
seriously and potentionally good programs are ruined by putting hurdles
in them and crippling them.
I am yet to see anyone talking about "open source
acceptability/usability" be doing anything but that. If someone actually
went and fixed mozilla to be consistent and functional and
intuitive and comfortable to use (perhaps even before making it
bullet-proof, since now the biggest problems I see are in UI), I would
be very happy about it and respect them much for that. But if any of you
are the kind to try, then vim you'll have to pry out of my cold dead
hands (I know you want to, vi UI is The Paragon of Evil :^).
But this is one of those topics I should not argue about. That would
take a lifetime and new opposition spawns up all the time. It's not
worth it listening to the same things again. It's practically an
advocacy war. Damned that I was suckered into it again.
But I'll hand out some advice I like (and contrary to the popular saying, also try to live by instead of hanging it on a wall):
If you want to bash deasign, make sure you have some renaissance-man
civilization, you have used the thing for a good long while and only then maybe start pointing out, with reason, the atomic things that are wrong and accept discussion. Make sure you know what
you're talking about. Inside-out.
If your design is bashed, make sure the basher knows it inside out and
has basis for claim.
And like this advice, do with all the other advice.
Turn it around and take it to pieces,
see if it makes sense. Then choose whether to take it or not.
The rest, you may freely ignore. It should probably not have been
On users, posted 28 Feb 2003 at 01:12 UTC by realblades »
One thing I'll also wonder about: Why do people use (and they
certainly do, they do a lot!) free software at all? They probably often have a choice. Better things could come cheaply or be pirated.
Why not the stuff offered by companies and shareware?
Me? I'll never touch windows or HotFoo Professional, because they are
absolutely unusable and hideously ugly. I love my Irix very much and
even while I could replace many things in it with free matching things,
I don't. This is genuinely good. Nice, simple, useful. I log in, see the
mailbox flag lift up, click it and read my mail, select my screen from
the menu and look if there's been something in irc recently. I switch
desktop and open a swift and sparse links -g from the menu, hit s and
pick the last thing I was reading from that bookmark list and continue.
Pick another item and let the other computer over there play music and
select and URL someone handed, drop it to the desktop and press enter to
open it... Fast, working, no errors, no popups, no ads, no splashes, no
problems. Just like it has been for weeks, for months, for years.
Just a user's view, for that I am on my computers. So is my SO there, writing mail with vim. I also was the administrator for what that was required when these were set up. That was quite pleasant as well. Very straightforward even when it was my first time the first time. There haven't been second times unless I've changed software generation or totally destroyed hardware and decided I want a clean slate instead of backups. I'm also a programmer and a sysadmin somewhere else, but those are just user tasks here and user tools with user interfaces even if what I do with them may end up being someone else's user tool and user interface.
I claim those icky tech people (tongue still firmly in cheeck, now I started to worry if I'm offending someone) are not magic puppet masters who torture people with bad interfaces, but they are users. What they write, they get to live with. They'll have some of their own medicine and they'll like it or they'll fix it.
And the point about Irix was that the interface is everything but dumb. It's very much working and usable and beautiful and that wasn't what I was thinking when I first came to it, but I got to know it and have kicked it around and especially, I have used it day to day for several months continously. I never got along with vi either, but I decided to learn it. A few looks and I could do what you can in another editor, tap your way to position, insert text, save. It's gotten easier and more natural since. Now, given the change, I'd never go back to emacs or jed or joe. The idea that I have to somehow fill squares one by one with characters instead of giving a command and having it made so seems backwards and overly difficult, not to forget dumb.
I have to use windows sometimes for my father (who picked a modem that tied him to a vendor) and it's very unpredictable and if there's something useful buried under a ton of dumb and incoherent interface, it sure is damn hard to use.
I'm afraid I haven't been very consistent in using words like "free software" "open source" and counterparts etc at three in the morning. And there is just WAY too much to say and I shall continue trying to avoid having to say it all and instead picking the people and fora where most has been said, understood and agreed and you can concentrate on something real that can be settled or solved in a page/thread/talk/book.
See, it's getting out of hand again...
What can we do so that computers cannot make us look stupid? For some people, the simple solution is not to use computers at all. However, there are many people who have to use computers in their daily work. Not every one is old enough for early retirement. So, my advice is to create computer applications that take human characteristics, human strengths and human weaknesses into account. As long as we require human to adapt to the logic of machines, we still will stumble into situations where people look stupid while working with computers. But if we strive hard we will one day arrive at computer programs that accept the users as human beings with all their human limitations
Usability, for me, is something similar to "manipulation of symbolic objects." The only issue there was most of these symbols were shared across the board. Users have their own ways of perceiving them and also reacting in their own primitive way. The more a given culture divert, the lesser the symbols get shared. In a way, usability is a good way of measuring against any given set of standard.
Because computers are stupid :-( :-)
Computers, or the logic that drives them, cannot understand human characteristics, human strengths and human weaknesses. At least not yet.
Jihad! Jihad!, posted 28 Feb 2003 at 16:39 UTC by tk »
However, the problem with OSS is that it doesn't have a marketing
budget (or at least, not much of one), and relies upon word of mouth
and reputation all of which derive from the quality of the software,
and usability will play a role in this somewhere, even if it is not
most important factor (which depends upon the task being done).
Then again, Apple does have a marketing budget and does focus on usability
yet it's still lagging behind Linux. What happened?
My guess is this: despite the limitations of the Linux development model, it
has some overriding advantages that actually make marketing and usability
irrelevant. Perhaps it's because of its openness, perhaps it's
because it runs on commodity hardware, perhaps it's some other factor.
If that's the case, why focus on
usability, when we should be looking for other "overriding advantages" that
may be a lot more effective in gaining mindshare? Are we doing it just
because of the rantings of a few trolls and "design geniuses"?
...but it does help and cannot harm.
There seem to be indications that the current focus on "usability" is indeed
working counter to the bazaar model, where project maintainers reject
incoming patches because they don't satisfy various bogus "usability
principles", and cause lots of ill feelings.
I agree with the above posts asking for both testing with unfamiliar
users and advice of experienced interface designers. Most
have been tolerating poor interface for so long that they are unable
see good design.
But what is
"good design"? No UI designer I came across has even
tried to give a concrete definition of what "good design" consists of. Often
they just come up with some arbitrary design, and say that it's "more
usable" than competing design because it satisfies some arbitrary
"criterion" they themselves defined in the first place.
Ultimately, user acceptance is the only concrete measure for
usability. It's no use for someone to claim that some design is "good",
if 99% of the population don't think it's good.
There may be a 101 factors contributing to user acceptance,
but too bad, we just have to somehow grapple with this. In the lab, we
should use heuristics that can somehow approximate user acceptance in the
real world, rather than bogus measures like "reflex action time", "learning
curve", "distance moved by index finger", etc. etc. etc.
Also, I understand that at least where I am,
it takes a lot more study to become a
professional architect than it takes to become a "HCI expert".
Because computers are stupid :-( :-)
(Is it because computers are stupid, or is it because we humans are really
stupid in the first place? :-| When a bloke sees a message "Insert Disk #2
in Drive A: and press Enter" and still doesn't know what to do, whose
fault is it? Good question indeed...)
What is design?, posted 28 Feb 2003 at 23:03 UTC by digitect »
But what is "good design"? No UI designer I came across has even tried to give a concrete definition of what "good design" consists of. Often they just come up with some arbitrary design, and say that it's "more usable" than competing design because it satisfies some arbitrary "criterion" they themselves defined in the first place.
Great question. Sadly, it does not have a concise answer because design is not evaluated on emperical data alone. (Which isn't to say we don't hear it attempted too often, usually by non-designers.) In the case of a building, we could say it's well designed for any number of reasons: strength, inexpensive, sustainable, accessible, safe, beautiful, timeless, friendly, appropriate, context, etc. But you will always prioritize these differently than I will. In fact, you will likely prioritize these differently at the beginning of the project than at the end!
So I would say that good design is design that conforms closely with intention. On rare occasions, someone might accidentally create something beautiful. But an artist is one who is able to shape form, building materials, paint, sounds, words, or pixels in a fashion with control. They may choose not to make visual beauty in effort to make a more cerebral meaning. But their ability to express meaning in any case is obvious and untypical.
A software interface is something that has numerous demands placed upon it. At the very least, accessibility by those visually handicapped (in several forms: color blindness, myopia, light sensitivity, tunnel vision) and physically handicapped (missing or no fingers, no arm control, unvoiced, deaf) should be a minimal requirement for all software designed to be used by any segment of the general public. But we could easily add goals of Internationalization/Localization support, understandability in terms of the real world metaphors, consistent, providing adequate feedback, simple, forgiving, and beautiful. My personal list also would include speed, scriptability, repeatability, easy to learn, and systematic in extension.
So in the end, a computer interface is more than just a way to make the program work. It's about helping the user accomplish his goals. And since most users are not the same, interface design must consider the broader needs of an audience the non-designer fails to adequately consider.
 There are art movements that look for beautiful things in accidents, but in my mind this mostly avoids the notion of creating toward a purpose and is simply an act of discovery. There is no intention.
 Daniel Libeskind's Jewish Museum in Berlin is the perfect example of visual repulsiveness for the purposes of a higher meaning.
 Me thinks the application of building handicapped codes apply here--with exception only in 0.5% of cases where a space is defined as usable only by a robustly fit individual, such as a military obstacle course. The Open Source community's favorite example, Windows, had accessibility features ten years ago. Given advances in technology till now, I can't imagine a valid reason for an app being inaccessible.
 GNOME Usability Project's GNOME Human Interface Guidelines.
Intention, posted 1 Mar 2003 at 05:05 UTC by tk »
So I would say that good design is design that conforms closely with
But whose intention
? The intention of some random UI designer, or
the intention of the open source project maintainer?
If it is the former, why should I
let some designer from outside dictate what my project should do?
If it is the latter, and the
maintainer's goal is increasing mindshare, shouldn't user acceptance then be
the final judge?
But whose intention?
tk: I forked my thought process before I elaborated on that. Again, I lean to the architectural profession for the answer: the owner.
So who's the owner? For the coder who is writing his own script/app, without any intention of sharing, there is only one, himself. But as soon as an application becomes available to users (or other coders) it assumes some degree of ownership by those individuals.
Now the author may be oblivious to the new relationships that he and his code is forming with those using it, but they still exist. Perhaps this is a somewhat communistic view (hey, it is open source ;), but talk of partnership and team building have their place in business for a reason. We all impact each other a great deal, even whether we care to notice or not.
So the design intention must consider all the interface's owners or we end up with the situation the original article presented: ill-fitting interfaces. I believe the solution is simply awareness, which I guess is the point of this whole page.
 This is the same reason why concern for the environment, religious tolerance, education, provision for the economically deprived, the sick, the elderly, etc. matter. We all have to live together and we each play some part in each other's lives. (Hard to belive I'm a US Republican party member, isn't it.)
 I might argue later that testing is a key method for the coder to understand the point of view of the user. But that's a different topic.
I'll let Einstein say it:
"Things should be made as simple as possible -- but no simpler."
Given all conflicting constraints, what is simplest way to satisfy these constraints. This will give us objective measure of usability.
It follows that if the constraints are imprecise or full of ambiguity there cannot be a clear notion of usability.
Also, the simpler the set of constraints are to satisfy the greater the possible usability.
Given that we are creating free software we are in the unique position to actually determine the constraints, rather than plainly guess as propietary software makers do. In proprietary software there is also a full set of constraints required purely for the purposes of the proprietary software maker.
Thus I would think the main focus of usability is given the precise set of constraints what is the simplest way of satisfying them. However, the option of changing or narowing the constraints should not be overlooked! The range of uses of the software may be restricted, but by way of the second implication the possible usability could much greater.
Whether any of this will lead to greater acceptance is anyones guess. I personally don't think usability is for acceptance. Usability is something far more basic which is inseperable from the creation of software. I don't deny the existence of usability experts, but unless they understand the full set of constraints going in software production they are irrelevant.
The Art of Unix Programming
has IMHO some very good points about many design issues. Especially about powerful tools. I thought I'd drop the link here too.