Fog Creek Software
Discussion Board




Why open-source usability stinks

I give you: the only Slashdot thread you'll ever need on this subject.  I love the implicit assumptions.

http://ask.slashdot.org/askslashdot/02/07/04/2341202.shtml?tid=126

'Is There Such a Thing as "Too User Friendly"?'

'Why do today's software and consumer electronics users expect to be able to fire up their new toy and magically have a complete understanding of how to use it?"'

'I feel that a large majority of the time it is mostly the user's fault, and I speek from personal experience. My father often asks me to help him use his computer. He called me down once saying he installed new software and he think it broke his computer because an error showed up he had never seen before after he restarted, I go down and read it... it says something to the effect of "Thank you for installing " with the one button "Ok". He didn't even bother to read it, he instantly assumed things were more complicated than they should be.'

And my favorite:

'Seriously though, I can't say I blame you...we are too lazy to read a manual...or possibly just to prideful. At the same time, I remember a Slashdot article a few weeks ago about manuals in other countries and how users there actually read them...'

Jason McCullough
Friday, July 05, 2002

I wouldn't take Slashdot as an example of what open-source people think.  That's like saying programmers like talking about H1Bs.

anon
Friday, July 05, 2002

I really think the chief complaint is with software that performs "automagically". Easy of use is a really nice thing but programmes that make silent changes are really insidious things.
I certainly don't think all open source software stinks. Scilab by INRIA and Octave are quality stuff. Both are MatLab like programmes.
http://www.inria.fr/inria/index.en.html
http://www-rocq.inria.fr/scilab/


joe
Saturday, July 06, 2002

Open source also tends to tackle harder projects like Perl, Apache, Sendmail etc.

It's hard to see how Apache could be made to be very "user friendly".

For most people user-friendly really means, easy-to-learn. I prefer easy-to-use over easy to learn.

Matthew Lock
Saturday, July 06, 2002

User friendliness often contradicts efficency. What is good for an experienced user is rarely good for a newbie.

Eric Debois
Saturday, July 06, 2002

Did you notice "The Opensource Way to Fame and Fortune"?
http://newsforge.com/article.pl?sid=02/06/29/2127239

It seems a common opensource tactic is to release a tool under GPL, but make money on user-friendly tools.  I think Ximian (the Gnome guys) want to do this too.

gringo
Saturday, July 06, 2002

"User friendliness often contradicts efficency."

Likewise, User hostile software is often the most efficient.

The user who is not intelligent enough to use the software should not be allowed to use it.

Sarain H.
Saturday, July 06, 2002

Sarain, maybe my irony detector is low today and you meant that as a joke. But if not...

Following this logic we shouldn't make cars with auto-transmission because if people are too stupid to use manual they shouldn't be allowed to drive cars? To me such "wisdom" is just a good excuse for designers who "aren't intelligent enough" to properly design software.

And how do you define efficiency? If it's "how efficiently users can do their job in a given program" it seems to me that the efficiency of the user that doesn't use a given program is 0 and would be greater even in any program that is an alternative, even if this alternative is not very good.

A "user hostile" program can make a barrier to entry so high that only "intelligent" (or persistent enough) people will use it and maybe those users will be "efficient" no matter what software does, but that doesn't make the software efficient. I see zero correlation between "user hostility" and "efficiency" of software.

I also think that people fall into the trap "ease to use vs. efficient" too often. There might be correlation but I don't think it's as big as people make it to be. The downside of such thinking is that it gives an easy excuse to designers. Once you accept this folk wisdom, you stop thinking about how to make software both easier to use *and* more efficient.  For example, it has been shown and measured that for many operations (say, copying files) GUI interface is both easier to learn (because of its discoverability) and faster to use than command line interface (on loosely defined "average", of course; you can always give extreme counter examples where command line will be faster to recursively copy files whose names have 'r' as a third letter but this is not something that most people usaully do).

Krzysztof Kowalczyk
Sunday, July 07, 2002

"User friendliness often contradicts efficency. What is good for an experienced user is rarely good for a newbie. "

I think this is a good point, if a bit off. The difference, in my opinion, is not in the actual implementation of the software, but in the implementors themselves.

Here's my logic:

Open source interests and corporate interests are unique at a very low level. This different extends to many levels, but it mainly comes down to a difference in the target audience of the product. Open source developers are ego centric and have a tendency to develop solutions to problems that they themselves are having or that they percieve as being an issue without market research. Corporations on the other hand have an interest in targeting the lowest common denominator in order to expand their user base and thus the sales value of the product. Hence, you have the open source projects developing highly technical and efficient applications while the corporations continue to make a killing in usability even without a backing feature set.

The difference is a divergence of goals, not an contradiction  inherent in the products themselves.

Dustin Alexander
Sunday, July 07, 2002

Krzysztof,

Yes, I meant as joke. Thanks for making the points in reply wich I agree.

Sarain H.
Sunday, July 07, 2002

>Corporations on the other hand have an interest in targeting the lowest common denominator in order to expand their user base and thus the sales value of the product. Hence, you have the open source projects developing highly technical and efficient applications while the corporations continue to make a killing in usability even without a backing feature set.

Dustin,

This is sometimes true, but I'd mention MS products as a sucessful counterexample -- outrageously huge feature sets are part of the reason for their success.

I agree that some applications have many features, others have few.
Some are easy to use, some are hard.
Some are made by big corporations, some are small open source projects.

There are some weak correlations in there. I would guess only the following:

pure opensource weakly correlated with poor usability
big corporations weaklry correlated with many features

Ed the Millwright
Sunday, July 07, 2002

Ed,

You make a good point about the feature sets. It is true that over time usability of corporate products is often sacrificed for an increased feature set. When you look at corporate motives, the reasons for this become obvious as well. Once a product has sold a certain number of copies the UI ceases to be a selling point to the unwashed masses and the corporate implementor must attract the remaining audience through expanded features. Competition also plays into this. In order to attain an advantage over their competitors, who have often copied the user interface of the published product, corporations are forced into feature wars.

What I find interesting is that this is a game of diminishing returns. Each version of the application is designed to target a smaller section of the population, the previously uncaptured audience. This implies that the product is going to become less usable for everyone. The people who have purchased the product previously have to deal with the added complexity of unwanted features.

On the other hand, your correlation between open source software and poor usability is not entirely inherent to the development structure. In my opinion, the lack of usability in current open source applications has more to do with the origins of the culture than a flaw in the development process. Over time it bears out that the technological elite who are the current masters of that bazaar will be replaced or augmented by those who value usability over functionality.

As a side note:

Anybody who has played with the grep command line tool in Unix realizes that open source groups can saturate feature sets as well. The difference seems to lie in the availability of a simple form of use as opposed to a complex form. Grep works well because it works on a basic form that is fairly intuitive while allowing the user to use advanced options if they need to. This is at direct odds with most user interface programming, as the features are apparent in the interface and thus increase it's complexity.

Dustin Alexander
Sunday, July 07, 2002

> User friendliness often contradicts efficency.

eh...nope!

Software is there to solve problems. If a user cannot solve his problem because he cannot figure out how to handle the software, the software is not efficient at all! (Even though the software might be able to do unbelievable and miracelous things in the hands of a geek.)

It depends on the audience the software is written for. User friendliness means to be friendly for the target audience. In a software written for programmers user friendliness is something different than in a programm written for hobby photographs formerly totally alien to the world of PCs for example (the comparison is a rather weak one, it just came to my mind because I tried to teach my father how to print images from his new digi cam recently and I work in the area of image analysis).

User friendliness is a way to make your software more efficient. Efficiency is not to be measured in technical terms (like frames per second or the like), but in number and speed of problems solved. Users' problems, that is.

If you write a software for a very unspecific target audience, maybe you can provide a beginners and an expert mode or something like that. Maybe you are even making a mistake, trying to serve a 14all solution.

jm2c,

Jutta Jordans
Monday, July 08, 2002

I consider myself a power user, and I suppose a lot of people would describe me as a geek.

Nevertheless, I find command-line applications incredibly inefficient because the number of things that I have to remember increases as the number of features in the application increases. If the application supports 100 different commands, then I have to remember 100 different commands.

Consequently, whenever I'm using a command-line application, I have to keep a copy of the manual open while I'm working. Yes, I can get the job done, but there's no way for me to get a reminder of any commands from the application itself. I have to turn to the documentation.

In most GUI applications, the interface is at least somewhat self-documenting. I can see what menus are available and find commands within those menus, even if I can't remember what the commands are called.

Another example that I'd like to gripe about for a minute: the Apache web server uses a text file to set up configuration options. This file is 1004 lines of text. These people are crazy to think it is faster to edit a line of code _somewhere_ in 1004 lines than to click on a check-box.

Benji Smith
Monday, July 08, 2002

The upside to commandline/textfile options is you can easily build an informative GUI for the user.  But trying to do the reverse, scripting a graphical app, is hard.

In fact, it is usually only feasible in opensource apps.

Tayssir J.
Monday, July 08, 2002

I think Joels comments about network transparency ( http://www.joelonsoftware.com/articles/fog0000000041.html ) support the idea that something can be *too* user friendly.

Network transparency tries to make a network resources and local resources identical to the programmers.

This is more user friendly - the programmer treats all resources the same way - but it is not a good idea.  Local and Network resources are different, and this is a fact you just cannot ignore.

IIS has similar problems.  It makes it very easy to set up a web server.  However, setting up a web server _properly_ is not easy.  There are so many factors, such as security implications, that must be considered.

Good user friendlliness puts the user in control of their environment.  ( http://www.joelonsoftware.com/uibook/chapters/fog0000000057.html )

If necessary inner workings are hidden from the user, then they do not have the necessary control of their environment. 

If the system does not put the user in control, then it is not user friendly, it is user patronising.

There is more than one way to obscure control, whether through patronising wizards or obscure command line options.

Ged Byrne
Monday, July 08, 2002

Another issue with config files rather than GUIs is that it's a damn sight easier to change the settings on 3000 machines if you can run sed over the files via rsh than have to.... I have no idea how you'd do it on Windows apart from walk round 3000 machines.

It's also easier to put comments, previous settings, examples and documentation in files like Apache's configs. The nearest Apache config to hand is 528 lines long.: 182 are comments. 87 are blank. Some of the rest are embodying quite complex configurations about nested settings. I dread to think how you'd embody the settings for a number of different directories in a GUI that would also support copy&pasting.

Other issues with config files: can use standard tools: sed, grep, emacs.
Can read them, print them out, email them to people to install. It's a lot easier to supply examples to someone. Rather than describe a whole load of buttons to push and things to click, you can just send someone some text to insert.

And the files can be backed up neatly.

Yes, you can do all these with registry entries, but it's not nice. But can you merge two sets of settings together by having them BOTH open at the same time in two copies of the "GUI" like I can with two copies of an Apache config in emacs.

Katie Lucas
Monday, July 08, 2002

>If the application supports 100 different commands, then >I have to remember 100 different commands.

Or read the help screen. I dont really see the problem here since the "100-commands"-text based programs are usually development related, make / awk / sed / grep and the likes of them come to mind.

I am the first to agree that complex text based programs can be very obscure, but at the end of the day, 1 hour spent defeating sed and its syntax, means 1/2 hour saved each day running my automatic build scripts. Fighting is well worth the effort.

I think the main problem with open-source usability is the lack of customers saying how things should be. I only have that (sometimes debateable) luxury when Im at work.

When I write programs in my spare time I write them for me. Then Im happy with myself and calls a friend of mine and tells him about this cool thing he needs to check out. He gets a copy and runs it too...most free/open-source software gets released this way in the start.

The list of priorities in the real world goes from
"Must have moneymaker"  via "Nice to have " to the "not in this release", the same list when I decide for my own stuff goes from "Very fun" via "OK" to "Sucks", and I like most other developers  dont make it past OK, because in my spare time, I like to have a beer once in a while too :-)

I dig into the problem differently when doing stuff in my spare time. Instead of writing a easy-to-use realm and user editor for my web server, I rewrite the code to use Windows completion ports, or hack SSL to work with non-blocking I/O, and make my Oracle connectivity module implement some nice session-caching.

I didnt get around creating a GUI to set it all up, so it has an obscure config file to go with it. Obscure was  good enough, because I had better things to do, like drink beer.

Ofcourse, you can question the sanity of the whole thing,
but that is another issue :-)

Also, most developers that release open source  or other free stuff already works as developers, which means the motivation for doing the free stuff is not to satisfy customer needs (they do that working anyway), but mainly to learn new stuff, or be able to brag to their friends, while drinking said beer  ;-)

Unless the motivation of the free software writers change,
we are not going to see colorful icons and top-notch usability i think.

jm2c,

Patrik
Monday, July 08, 2002

"In a software written for programmers user friendliness is something different than in a programm written for hobby photographs formerly totally alien to the world of PCs for example "

*sigh* I wish you worked here. This is the kind of thing I have said to my colleagues sometimes when we have been meeting to decide what the UI of some software should be like. Whatever I might think, it is probably not what is wanted by most other (normal) people - I don't want to have java, axtive-virus, and scripting on just to navigate a web page, I don't want something that looks flashy just because it can, I just want the information on the page damnit! And what is more, what I consider "usable" is determined largely by what I am familiar with (text editors and compilers). I mean, yes, you /can/ use something like make to help you with making (ho ho, no pun intended) webpages/sites, but would anyone who isn't familiar with it want to? Don't ask me what it should look like, I am not the customer! Go away and let me get on with what I do know how to do!

*whew* I feel better for that!

Why does nobody mention correctness when they talk about usability? At least, I don't see it mentioned much.

rant over
Tuesday, July 09, 2002

">If the application supports 100 different commands, then >I have to remember 100 different commands.

Or read the help screen"

Or set up aliases

This is also an alias, but it means nothing
Tuesday, July 09, 2002

"Another issue with config files rather than GUIs is that it's a damn sight easier to change the settings on 3000 machines if you can run sed over the files via rsh than have to.... I have no idea how you'd do it on Windows apart from walk round 3000 machines."

And if you don't know any other way of doing it, why that must be the only way of doing it.

Robert Moir
Tuesday, July 09, 2002

"Why does nobody mention correctness when they talk about usability? At least, I don't see it mentioned much. "


I've been reading "The Inmates are Running the Asylum: Why High-Tech Products Drive Us Crazy and How to Restore the Sanity" - Alan Cooper

It is a very interesting book on the state of technology today particularly 'software based products'.

A common theme resonates through its pages:  Most 'software based products' make the users feel stupid.  In the developer's eyes it is because they are not 'computer literate'.  From an outside perspective it is because the 'software based product' is not designed correctly.

i.e. (pg 37)
"An accountant, for example, who is trained in the general principles of accounting, shouldn't have to be computer literate to use a computer in her accounting practice.  Her domain knowledge should be enough to see her through."

apw
Tuesday, July 09, 2002

apw,

Is this possible?

Is it possible to use a car, just knowing the local geography?

Ged Byrne
Wednesday, July 10, 2002

apw - that's not really what I meant. As an illustration, I have to use softare to create software, but I find myself nearly putting the keyboard through the screen sometimes because the software I have to use is, for me, unusable because it fails to do what it says it does all of the time (that is, sometimes it works okay and other times it doesn't). And they expect me to create software wth it that works. I might as well try putting nails into wood with a hammer whose head keeps coming off - it can be done, but its so painful.

someone
Wednesday, July 10, 2002

The point is to create as much perceived value as possible through your software with as little effort as possible. He who does, succeeds.

A.
Wednesday, July 10, 2002

Hmm, some folks mentioned that the config file makes things much more portable, and can be edited with standard editors.  Well, lots of software (like mIRC) still uses a config file; the GUI just modifies it.  mIRC is actually a good example of a decent system for setting config params.  The software is 100% portable too (in Windows)...you can copy the folder over to another Windows machine and it will work just like it did on the first one.

OzzieGT
Wednesday, July 10, 2002

A: it is the word "perceived" that worries me.

What are you saying - that if the marketing & advertising depts are crap then we get good software? But if the marketing & advertising depts are good then is it okay to produce crap products and, perhaps, use crap development staff and tools (okay in the sense that the company will still make money)? Or is it the other way around - that good products sell themselves ('word of mouth is the best advertising' and all that') and therefore marketing does not need to work too hard to make the product be perceived as good?

And if we accept that either one of these things is true, does it explain why so many development staff dislike marketing people and, presumably,  vice versa?

still someone
Thursday, July 11, 2002

OzziGT - I don't think that's quite what people meant bby portable, but it is worth a chuckle anyway. Thanks.

oh good grief
Thursday, July 11, 2002

When I say 'portable' I mean the configuraion can be easily carried over to multiple systems.

OzzieGT
Thursday, July 11, 2002

I think developers definition of portable means "can I build it and run it on different OS'"

phooey
Thursday, July 11, 2002

"An accountant, for example, who is trained in the general principles of accounting, shouldn't have to be computer literate to use a computer in her accounting practice. Her domain knowledge should be enough to see her through."

It "should" be that way?  It's never been that way in the entire history of new tools; why should it be different because this one is a computer?

For example, there are literally millions of people who have a strong grasp of the Chinese language, using it day in and day out for all communications in their life -- but who cannot use books, or paper and pen, or otherwise use tools that are entirely supplemental to the use of language.  And it takes people literally years to become competent in using those tools.  But isn't communicating communicating?

Knowledge of traffic laws and twenty years' driving a horse-drawn wagon isn't enough to be able to drive a car.  But isn't driving driving?

Just try to use traditional woodcrafting skills with power tools.  I dare you.  Have the hospital phone number ready, though.

I wonder how well Christopher Columbus would fare with a supertanker.  I mean, a sextant's a sextant, the stars are still stars, and currents are currents, so he should be able to use his domain knowledge, right?

Someone who can compose and recite epic poetry from memory is going to feel stupid learning to read.  Someboy who's driven a horse-and-buggy is going to get frustrated learning to drive a car.  A master woodcarver is going to make mistakes with power tools.  A expert sailor isn't going to be able to walk onto a diesel-engined ship and pilot it.  And an expert accountant isn't going to be able to sit down with a computer and use it without learning the tool either, whatever "should" be.

Steven Ehrbar
Monday, July 15, 2002

*  Recent Topics

*  Fog Creek Home