Why free software has poor usability




















I care. I usually respond to criticism by improving my software. But come on, don't you think it's getting ridiculous when people take this for granted and demand that you work for them for free? So it's anti-social not to work for complete strangers, for free? What is in it for me if the software is commercial quality? I'm not getting paid. How am I suppose to buy my next meal if all I'm doing is implementing requests from users, for free?

Have I no say in these matters any more? Maybe it's just me, but to me, "patches welcome" already means that. To me it means that I don't care enough personally, especially because I'm not getting paid, and that it's up to me when or whether I'll do something.

You're of course completely free to contribute, either by doing it yourself or by hiring me or someone else. It's your problem after all. You just told them that their concern was beneath you". What kind of response do you expect from someone who's working for free? If I responded with "Sure, hire me and I'll do everything I can to address these issues.

No, I told them that it's not my concern, and that they should do the work if it's their concern. I said patches welcome , so if they help then I'll care a bit more. Do you really think it's going to motivate me to care more if all you're doing is criticizing? After hearing the first 10 complaints, things become tedious quickly. Hey, but maybe it's just me.

I suppose you don't think "screw them" if everybody's constantly criticizing you, even after having spent a lot of effort into addressing those criticisms I'll point out an example from the world of software synthesisers. They are excellent synthesisers. The point is, Papen is the sound designer and the synthesisers are designed so as to facilitate his designing of the vast collection of factory patches for them based on what's possible of course.

In the world of Free Software, things are very different -- those who can design the user interface are not strongly listened to when designing how the user interface libraries should work. This is a major problem, since those most capable of designing effective user interfaces don't get to do so, and those more suited to the coding side of things have to do make-shift user interface designing according to their ideas of how a user interface should work or what is easy to code.

Free software companies should take time to stand back from the process, ask the question: what are we trying to do?

The problem is that it is effectively beyond the power of an individual person in the free software world to influence things unless they have sufficient time and expertise to code examples of what they want.

As an UI developer at least part of the time at a major software company, I see this pitfall even in my own work. A lot of us are more concerned about coding up the UI to expose the new features but that's where we stop.

OK new features is exposed, on to the next one! Then the UI designers come in and suggests all these changes and we end up undoing a lot of the work we did before. It's such a waste of time. This is a mistake we've learned and look to correct in our next version's development cycle. Sometimes it makes sense to develop software from UI on down because at the end of the day, it's the user's experience that matters, not necessarily how clever or elegant the inner workings of our software is this does matter in the long run -- a good foundation allows us to make changes and add things quickly.

Another pet-peeve of mine is explaining to the UI designer that we can't do something because of engineering problems when what the designer is suggesting is simple.

If it is not, then something is wrong with the UI framework. Good UI is in some ways a lot harder than what people might expect. It's really a multi-discipline field that takes more than just a good engineer. It requires a good psychologist one of our UI designers was a cognitive science major and a good writer. We learned so much about our UI design from filming people using our product and watching their frustration.

This was an expensive process in both time and money. I can see a company being able to do this but it's considerably harder for an open source project, especially a small one without a lot of resources. Bad UI design happens everywhere but it seems only software companies and major open source projects have the dedicated resources to fix it.

Like the article said, it's a high bandwidth process; people need to be together at the same place to discuss these things and it takes hours as you can tell from my own submission to Ask Slashdot [slashdot. This software for the XO laptop is an open source project that is intended to be used by elementary school kids. Usability by its target audience is absolutely of the essence.

It is not a project in which the developers can get away with saying "it works for me," nor can they tell their eight-year-old audience "if you don't like it, patch it. The XO laptop is thus an example of a situation where there are strong "incentives for usability. Time will show us how usable the XO software is. It will either be a data point that demonstrates that, indeed, the open source process produces highly usable software provided only that there is an incentive for usability I just wrote a detailed comment and previewed.

I noted at the end that it was saying I was not logged in, so I could log in or post as anonymous coward. So I clicked the login link, logged in and boom -- the long comment was erased.

The designer knows the right UI, but it's harder to code, and so chooses to do a lesser but workable UI to have more time to code other things. The problem is the coder is also the "funder" and makes decisions based on how hard things are to code, rather than what's best for the users.

Why do we write free software? I would hope part of the goal is to make code that lots of people will use. It's one simple concept: There are two ways in which software is built. The business way, and the open source way.

The business way is driven by the target of making money. So they try to appeal to everyone. This usually wrongly leads to making it as easy as possible, so everyone can use it.

Then there's the open source way. This one has no interest in money, so the creators add, what they like to have in the software. Now usually these are computer professionals, and because they built it, of course it's perfectly usable for them. Unfortunately this means it's very hard to use for non-professionals. Both ways have their flaws for those that are not in the target group.

But they emerged naturally. The solution is, to let everyone grow to his own level of expertise in the program. We need a program that starts out being as easy as it gets, but grows with your involvement. Something like difficulty modes in games. Just it's not the difficulty. It's the shortcuts, the special view modes, the application layout, the shown controls, the wizards, and so on. Of course you can always set that level yourself. Think of vi, in notepad mode, then gradually growing to emacs if you like.

I can't wait to be greeted by a dialog like this: Level up! You have unlocked the spelling checker. People also forget that "Usability" means something totally different to novice and experienced users. Not surprisingly the 30 minute wonders are not going to get along with long term users, and the developers are usually long term users. Besides, there is a dumb hidden assumption in the computing world that no one wants to discuss is that there should only be one level of user sophistication that all tools should aspire to.

Other fields do not have that problem For example a CNC milling machine, at least for the first 30 minutes, is much less usable than a blacksmiths forge.

Oddly enough we don't have to suffer thru pompous claims about the superior user interface of hammer, tongs, and forge. Basically the marketing folks are becoming irrelevant and they are pissed about that, hence ridiculous claims against the enemy, etc.

I think there's plenty competition Ubuntu, Red Hat, Suse, Mandriva etc etc on adding those last bits of paint and polish. Oh yeah and my dual screen setup still doesn't work right, had to give up on that.

Getting Linux to recognize and map all the buttons on my mouse was another one, it's not the UI it's the core system behind it. Very very fun. So I'm not worried, just get the base in place. For example, did you hear about Fitt's Law [asktog.

For detailed description, see e. BTW, I highly recommend Joel Spolsky's "User interface design for programmers" - that's the very least a coder could do to educate himself in the area of usability. The book is very interesting, easy to read and quite short. BTW if someone says that I should have filed proper bug reports, note that the bug reports concerning this problem have been reported a long time ago to relevant [kde. I think one important aspect is motivation.

And this is wider than just open source software. I think everybody would like their software to have better usability. But, in the end, your resources are limited. So you are going to do the things you are most motivated to do. Improving software usability apparently simply doesn't rank that high. On the other hand, I have to agree with other posters that usability depends on your users give me programmable interfaces over GUIs any day, but I know others have the opposite preference and that a lot of open source software actually does very well as far as usability is concerned.

If you think you really know how an interface should work and look, then learn to code it. Otherwise, you're just a critic of the kind that the NYT doesn't hire. I'm going to take issue with this. Basically you're saying if you can't do X, then your critique is useless. Just because you can't sing doesn't mean you can't critique other people's singing.

Just because you don't know how to make a car doesn't mean you can't critique that horrible dashboard layout. Mod parent up. The whole source of this problem is that most programmers can't design or follow UI guidelines , but they think they can. On the flip side, I've seen a lot of designers who can sort of code makes some really god-awful programs that look great that are less optimized than doing it by hand.

I can't design and I know it. Typically , coders are very poor designers and designers are very poor coders. Widely-used Free software occasionally picks up enough steam to get some people who can really design on board read: Firefox , but by and large, Free software tends to be developer-centric, menu-driven apps that work very well if you can figure out how to use them.

As a developer I often can, but I still tend to suggest people use the paid equivalent if they ask simply so they don't come back to me every hour asking how to do that next thing. It's based on the logic flaw that there is something absolute in this world. Now I thought about this quite a bit, and wrote a possible solution to in in my other post [slashdot. The issue is more general than that. If all you can do is say "this sucks" but not say why or how it can be improved, then I agree, you have no business in software.

If, on the other hand, you can find a way to improve it, I'm sure many people will welcome your advice and implement it. Just telling a programmer that their software isn't usable isn't very constructive. Often times, they already know that, they just don't know the best way to fix it. One good, non-specific way might be to offer to write an article including a basic set of guidelines for a popular site - say linux journal or linux magazine.

Or where ever you think it might come up nicely in a google search, for that matter. I realize that this might not be a motivation for those who want an immediate return for their efforts - who want specific software X to be more usable - but you never know.

Maybe someone who's currently writing software Y, that you've been dying for, will take your advice and make their software contribution that much better. I suppose what I'm trying to say is that a lot of programmers - myself included - would love it if usability experts would devote some of their time and effort into making our own time and effort more worthwhile to the end users.

Heck, even if they don't consider themselves an "expert", if they think they have a few ideas on what would be better, it'd be much more appreciated than a simple comment about how something "sucks". That's definitely true, most people that code want their programs to be used and as such are unlikely indeed to leave usability issues in when they know how to fix them.

I'm not really sure why open source is getting blamed here, commercial programs are often times just as bad or worse, and at least with open source, I can use it for a few months or even years before deciding if I want to contribute. Sometimes knowing all the ins and outs of a program makes it harder to make an interface that is useful for those starting out or that don't have all the information.

Ideally the learning curve should be relatively gentle and long enough to deal with necessary complexities. Having a gentle curve that is too short ends you up sort of where Windows is. With the program making most of the decisions and with the tools to override things hidden in a hard to access area. Assuming that one can even override them in the first place. No, that's not criticising without being constructive, that's just insulting.

Just because somebody doesn't tell you how to improve, it doesn't make the criticism invalid. It's perfectly possible to offer constructive criticism without suggesting solutions. Your attitude is typically held. Understanding usability is a totally different discipline to coding. One can easily do either without being able to do the other.

The problem is that proper solutions to usability problems need proper foundations laid. Complaints about the foundations of usability tend to fall on deaf ears in the Free Software community -- certainly those who care are in the minority.

I wouldn't go so far to say that a critique is useless, but there is truth in his statement. A lot of usability problems are not just where you place the buttons, but they are much more deeply down in the code structure. Take Gimp for example, one of my issues with it is its lackluster animation support, you of course can try to polish the GUI a bit, but the real problem are much deeper down into the code and need to be fixed there first before you can even start to think about a proper GUI, same is true for a lot of other issues.

Usability in the free software world is simply not just an issue of GUI, but goes down through all layers of the code, since after all, they have to be usable too, both by developers and users. Tackling the GUI is all nice and good, but it really is only a small part of the whole picture. Okay, I know these are unpopular things to say, but I feel they need saying. These are just my opinions. If you learned how to use some other system first and now expect that any other way of doing things isn't "usable" enough, that's just plain old resistance to change.

It says more about you than it does about the usability of the software in question. It seems you've never used emacs, little one. And no, it doesn't say more about me than the software if I find that almost all GUIs in Linux are shit and that the command line is more usable. The command line in Unix is more "usable" because it is older, more mature, has more features and flexibility, and is more easily extensible.

I can augment a GUI with a few lines of shell scripting with considerably less effort than it would take to "fix" the given GUI application. I can make some shell script both easier and simpler than just about any GUI application and tailor it to my own needs so that it most closely meets my needs and thus meets my own personal notion of "intuitive". The "chasing tail lights" criticism is a very good one in this respect because sometimes neither of the allegedly "better" platforms do it right or better.

At this point, it's no longer a given that the Mac or Windows version of some GUI for some sort of app is any better. Improvement of Linux GUI's should not be limited by what Mac or Windows applications do or what design dogmas they follow. I am personally much more comfortable using zsh than any GUI for manipulating files, or other tasks. But what most people tend to forget is that there is a much larger pool of users that are not willing to memorize commands, and read man pages for days and days in order to just use their computer.

Yes I have. I'm an avid Emacs user too You're right, the command line in Acad is great, but it's the combination of the command line and its scriptability using AutoLisp with the UI that makes it truly useful e. Acad was written by judicious and wise people. If it had been written by pure click'n'drool advocates, it would only have a GUI. If it had been written by die-hard "GUIs are for losers" Unix freaks, it would only have a command line. I can learn a programming language and write a program that does precisely what I want it to do.

But that takes a vast investment of time to have a tool which does instantly what I need done. Perfect for people like programmers who might do one thing over and over and over and over I sit there and stare at the little arrow.

I want to copy a file. Maybe I should type in what I want to do "CopyFile" Yes the interface might be faster The point is. Command lines are like code. They will do exactly what you want them to do once you know the magic incantantation with the right pronunciation.

But if you know what you want to do but have never used the software before you're SOL. This is why I love node based tools. When I'm learning a new programming language I have no idea what classes and functions exist. I might even know the exact tool I need "I need to find the position in a string where "hello" is found". But translating that into a class name is a game witchcraft and endless help document scimming until you happen to find an arbitrary function name which does it.

GUIs show me my choices. Yes they show me my choices every single time. But I like to know what it is I can do. A BAD gui doesn't show me my opportunities. It buries it in a menu which is as bad as burying it in a command line command somewhere. But even a GUI is better than a command line while learning because when you finally do find the command you want to do Again many developer tools can operate on command line because the functionality barely changes from version to version.

In all of the software I use every release adds hundreds of new features I need to learn and I need real time feedback on changes I make I can't wait to execute a command to see if it's right.

Take SQL as a perfect example of a command line tool. SQL has barely changed in its command structure in 15 years. Of course you're super fast at writing complex SQL scripts that deliver exactly the information you need! You've been practicing those exact same commands for 15 years! What if SQL radically changed every few months? And what if instead of only a few dozen commands chained together it was 10, tools and settings in a single application?

You cany very quickly get to the point in most software where it is simply impossible to use it as a command line tool and expect a user to use it without a MAN file permanantly open next to it. I've spent 3 years learning MaxScript for instance for 3DsMax.

Which is its command line toolset. It can take me a week to create a script which I can do in 20 seconds using the GUI. Once I write the script it might take an artist half a second but even I completely forget the name of a function I wrote earlier in the morning "What was it again?

What was the name of that function which I wrote it myself! It's unreasonable to expect someone to remember the command names and possible flags for functions And even if I did expect someone to memorize all commands Bull crap. An architect doesn't build the building, the carpenter does. An electrical engineer working for the power company doesn't hang the lines, but they layout and design them. The same thing can go for almost any profession, software included. I don't code and no desire to code I'm a chemist and have no interest in that part of computing , but I can tell you when the interface sucks and what could be better.

My opinion is, people who won't accept criticism from others because "you don't code," or "you don't know what you're talking about" are nothing but elitist. He didn't listen [goodexperience. The most usable of all possible interface is probably the command line. There's no uncertainty about what icons mean, instructions are usually a keystroke or two away and don't take eleven minutes to get online and load , etc. It amazes me how you think you're being logical and can go to incredibly great lengths to justify the continuing elitism of "if you don't know how to build the car you have no business driving it" kind of attitudes, which is exactly what you're espousing.

Did you build your own car? Do you know how every single piece of it works? Can you recreate it from scratch? If not, shut your stupid pie hole. This idea that you have to be the world's foremost expert in a particular field in order to be allowed to open your mouth is just so unbelievably ridiculous that I can't understand how it keeps being perpetuated so strongly even on a site that is supposed to be full of relatively intelligent people.

You're all constantly using obscure corner cases to try and demonstrate that any end user who ever criticizes the work of a "coder" is an idiot and wrong in all cases simply because they don't understand the precious code. Sure, users often misunderstand what the actual issue is with a program that's not working for them, so what?

The fact remains that there is an issue, and blaming the user every single time solves nothing. The longer attitudes like this get perpetuated, the longer most open source software will remain the underdog that most non-coders won't touch with a ten foot pole because it's so baffling or aggravating to use.

What all you elite coders need to come to grips with is that you are too close to the code. You understand the code too well and it blinds you to the real life usability problems.

You don't realize how much your knowledge of the code warps the way you see the interface. You have to learn to forget what you know about the guts of the software and look at it with fresh eyes, like any new user does. The real question here: If you aren't making the software for people who don't know how to code, what are you doing putting a GUI on it in the first place?

That is after all the entire purpose of a GUI in most cases, is it not? To make software accessible to and usable by people who don't know how to write the code themselves? Jeebus cripes, folks. Get over yourselves. Stick to writing command-line stuff if you don't want to respond to interface criticism or suggestions like a reasonable human being.

Oh, and stop using Firefox as if it shows how great all open source code is. It's one application that has been worked on by teams of very talented people for several years and is supported by a business. Face up to that fact and you'll be better for it. I would take the advice and design saavy of a good general contractor over any architect any day. People who are in the trenches are much more likely to have a better grasp of what all of the bits written on scraps of paper actually mean for the people who will be living in the house.

Usability isn't supposed to be tied to the way you're used to do things, but to how intuitive it is. Having to click on a button labeled "Start" to then choose "Shutdown" isn't obvious and must be learned. An old version of Quicktime had the volume control as a rotary dial. Yeah, that went well once translated into mouse control. To add to this 3rd party apps rarely adhere to any kind of toolbar scheme consistent with Windows conventions.

What proof do you have to the contrary? A condescending attitude will not suffice. That article goes on an on about why open source software is not usable, and even explains how he thinks that the issue can be resolved, but it begs the question:. There is a number of reasons for this, but the big one is that every user brings a different conceptual framework to the table.

The most glaring example of this is the difference between people who love WIMP based interfaces, and those who are infactuated by CLIs. But even in those worlds, people will differ. Some people are more spatial i. Think of the old debates over the Nautilus file manager.

In the CLI world, contrast something like Squeak where commands can be recalled from a spatial text editor buffer and bash where you cursor through the command history sequentially, or use bang and some sequential number. I agree with your comment, and I would point out that Bash has one more method of retrieving a command. On Ubuntu, it is a quick trip to Synaptic Package Manager. Windows is great for games, but if you want to write out a quick Bash script to automate something, it is a surprise knee to the stomach.

At least automation scripts on Linux will work on OS X. I guess my main point is that usability is highly subjective and depends heavily on who you are and what you want to do with your computer. Thing us though, how the hell is anybody supposed to know that?

There are tons of ways to automate stuff in Windows, depending on what you want to do. Or even Perl for Win Note: That question is rhetorical.. But there were apparently no aliases set up for that. Not perfect, but less room for improvement than the alternatives.

I thought something much the same when I first read the article, and then I thought — hold on. Yes, it does. Whilst clearly many people that frequent this site have ideological issues with them its not relevant to most people. They appreciate the attention to detail and the user experience. I guess if there was a linux distro that you could install without rebooting from windoze and had a migration manager AND automatically configured dual boot it might help.

It would certainly reduce the technical barriers to adoption. A sure sign when something is purely subjective is when there is zero consensus on what the term even means. It seems to me that what designers think is usable is what works for the lowest common denominator. No, usability is not subjective. For the individual it may be subjective but usability studies are not done just for fun. When you conduct a professional survey with enough people then usability can be measured.

Usability studies are about as scientific as psychology —which is to say not very. You talk a bit like those Intelligent Design guys. You discard objective measurements from professional surveys just as those ID people discard the findings of palaeontology and genetics. Of course the measurements from usability surveys mean a lot. I guaranty you that most of them will point to the red sign.

Yeah, you can throw those results away and design an application that displays a green circle on every important question. Your user base will most likely be confused. Nice ad hominem. A hallmark of science is being able to get reproducible results. With any given usability study —in the rare event that a study is revisited— they inevitably get different results from each trial.

Human perception is not objective. Like I said before, I have no interest in being limited by the lowest common denominator of whatever population you managed to slap together. To really solve this problem, the UI should be completely decoupled from the application so that I can build whatever UI suits me. That is decidedly the wrong solution. If a survey is conducted professionally enough representative subjects etc. I have no idea where you get your knowledge about social sciences but it has nothing to do with reality.

To stay on a subject that I understand a little better and have some anedocte evidence to support my statements, if all that you wanna do is to let your users to easily draw some primitives and a floating logo on a 3D window, then fine. I guess that anyone can come up with a UI really easy that anyone can understand, Bryce-or-SketchUp-esque. But if your application is intended to be used as a general modelling tool and some working knowledge is assumed from the userbase such as what are vertices, faces, normals, meshes, extruding, subsurfaces smooth rendering, splines, etc.

The latest open movie, Big Buck Bunny, entirely made on Blender proves that if nothing else. The same can be said for other apps, too. Yes, it took me a little while to get proficient with these tools but the point is that it is usable for me on their present state, with minor inconsistencies here and there taken into account.

It does make it expensive. I have to agree! I love it. Almost every one on Linux uses the GIMP for almost everything, even when all they want is to make some stick figures really quick to visualize a point.

GIMP would be left to people that actually need it, the sort of people that understand the need for a slew of drop down menus and can actually devote time to learning an interface. You mentioned Krita and mtpaint but what about fotox. Then there are vector editors like Inkscape, Xara, and Skencil?

Then there are specialized photo applications like Hugin. GIMP is not even close to the only image editing software available for Linux. Your post just made it seem like image editing in general on Linux was limited to the GIMP and it is not.

It is probably the best raster editor for Linux but there are others and when it comes to vector graphics Linux actually has more than one very good editor. Amongst the flames, the author of this website actually has a point to his rants.

It is too bad that Linux advocates who reply are more concerned about appearances and perception that addressing the short comings of their software. These users are getting, after all, a free lunch. As for the usability, same situation.

These are free application, generally maintained by volunteers to address an issue that affects them. Its all very nice for writers to blame the programmers, but at the end of the day, distributions bundle them with their distribution — it is up to the distributions to do their part in maintaining and fixing bugs in the application rather than just simply pushing the responsibility off onto the original programmer.

Linux is not being developed by other users then mostly Linux users. No flame intended. Look at Apple or what Amiga have done for user experience? Like the article says, Linux has unaddressed problems with this and I really like to see these handled for Linux. The points are pretty much dead on. Lack of incentive hits the nail pretty well. KOffice, FI, rocks. All that work, all those mockups, screenshots, competition, hype, hype, hype…and it delivered. And so on. My one suggestion, for general application UI: give a scriptable layer to the toolkits, focusing on layout, not what gets executed.

That would then be compared against a known checksum, and if different, compiled for a small-but-speedy interpreter. Obvious changes of tense to the Koffice bit needed. About The Author. Edited UTC. There maybe others reasons, but those are the 3 that strike me as the most obvious. Soulbender Right but my point stands. Laurence Right but my point stands.

I guess it depends on whether you think Linux for example gaining market share matters. Thats not myths, thats not fud, is just reality. Oh absolutely. KugelKurt 3 run cabextract on a setup. That seems more like a VMware issue rather than Linux issue to me. That statement is a bit short-sighted. Laurence That statement is a bit short-sighted.

Counsel Myth? While that may not be reasonable, there it is… 2. And it's hard to see anyone getting to that level with open source code that, in many cases, you can't even give away. Update : There's an interesting discussion at Slashdot , where FooBarWidget puts the coder's view a couple of times.

The short version:. If you're paying me, I'll listen. If not, it's up to me to decide whether I want to care. I also gave you the choice to do it yourself, or finding someone else to do it for you. A choice that you didn't have in the first place.



0コメント

  • 1000 / 1000