How To Fix the Poor Usability of Free Software
flosofl writes "Matthew Paul Thomas has an entry on his blog called Why Free Software Has Poor Usability, And How To Improve It. While this advice is helpful and may indeed lead to improvements in many open source programs, the guidelines may be much more difficult for smaller projects. From the entry, 'Free Software has a long and healthy tradition of "show me the code." But when someone points out a usability issue, this tradition turns into "patches welcome," which is unhelpful since most designers aren't programmers. And it's not obvious how else usability specialists should help out.'" Thomas has been developing the ideas in this essay for years. The critique is comprehensive, listing 15 challenges in the way software projects, and in particular free software projects, are structured, with suggestions for improving each one.
The kind of additional functionality added for usability reasons are usually looked down on because they can fall into scope creep, but I think they're quite the opposite. I think most coders look down on these kinds of suggestions because they don't affect how they use the program. And, truly, most people who work on open source code do so because they themselves want the functionality they're coding for.
To them, if it does the job, great. And I think many of them have a similar response to usability problems as those asking for ports to different operating systems, or even a binary: "Not my problem, it works for me and that's enough."
Not to mention that, in many cases, what increases usability to a larger audience is reducing efficiency to the programmer who designed it to suit how they work.
Mainly that people who are interested in coding free software and people who have a great understanding of ergonomics and aesthetics in software are usually just not the same people. I've known plenty of coders whose idea of usability is to configure it for their personal preferences and that's it, but on the other hand, I am sure most people who really understand what is needed for usability couldn't code "Hello World!" in BASIC.
http://twitter.com/OLDTELEGRAM
Perhaps this article signifies the movement that has occurred with open source software. Whilst I'm sure it's been around a long while, there has been a huge increase in what's available in the last few years. Open Source software is maturing as most things do when they get older.
I'm happy with the 'get it working first - then make it pretty' approach taken by most.
The Mothership
My suggestions: start a Usability Level Group where one can see which level of usability the application has ( for platform X).
Things to consider (remember: using starts with considering installation):
-does it compile cleanly?
-is it pre-packaged?
-is it in the standard repositories?
-is there a manual and man page
-are there examples which can be followed
-(if relevant) are there screenshots
-are all options of the application available in the GUI
-let people vote about the quality of the above
First you have to obtain a means to measure usability (by the users is best, I guess).
nosig today
Usability isn't supposed to be tied to the way you're used to do things, but to how intuitive it is.
Let's take an old tired "cliché", if you will. 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. That's why it was gone by the next version or so.
Make clean interfaces with well-organized controls (keep it to a minimum, to what's required for the current task), label things properly if needed (not everyone knows how to use your programs) and don't overload the users with choices (have a "normal mode" and "expert mode", if needed).
Other than that, use the OS's own widgets and don't force your "pretty graphics" onto your users. Slashdot's own form buttons come do mind (the Preview, Quote Parent, Options and Cancel buttons really seem out of place with the Aqua form widgets and probably with all the other OS widgets as well).
I am a UI designer by trade, and many is the time I have thought about wading in to a F/LOSS project in order to improve the usability of the interface (last one I considered was IPCop). While I agree with most of TFA, it doesn't seem to emphasise the real point for me, which is that UI design for free software requires radically different skills *from the designer* to that which are necessary in the commercial world.
Because people are so tolerant of awful UI, good UI designers are all about persuasion, charm, leadership and inclusiveness without losing focus. To achieve this commercially is not easy, but at least somebody has hired you in an expectation that you will do this work. Grabbing a bunch of elite coders and trying to persuade them to change their stuff is a massive challenge, even if you have VoIP, virtual whiteboards, etc. I would not expect maintainers to understand, appreciate or tolerate my intervention, mainly down to the reasons the article cites, and I'm not sure I'd be able to persuade them otherwise. Usability is not obvious and often requires a leap of faith, an abandonment of the wrong kind of complexity, and very often a lot of pain.
Still, the more we have these discussions, the better, and I hope the article gets read by a lot of Slashdotters for that reason.
"And the meaning of words; when they cease to function; when will it start worrying you?"
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. But I still know when someone else's design either works or fails utterly, and I'll give the designer props/shit accordingly. Typically, coders are very poor designers and designers are very poor coders. There are the rare exceptions of course, but they're off making too much money to devote time to free software (the single exception that I know of being the designer+developer of Quicksilver).
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.
How are sites slashdotted when nobody reads TFAs?
Poor usability? Is there really anybody who thinks that Internet Explorer 7's user interface is better than Firefox 3's?
I'm getting tired of hearing this over and over again. For example, in the past 7 years, GNOME has invested an insane amount of effort in usability. Go read about all those professional GNOME usability studies that Sun has funded. Also, go read Ubuntu and "desktop environments", written by the same author who wrote TFA. In that article, he criticizes people for wanting to include a configuration option in Ubuntu's installer which asks the user whether he wants GNOME, KDE or XCFE. He argues that such a choice is simply too confusing to most non-technical people. And indeed, people like my dad and mom don't know, or want to know, what GNOME is.
In the past 7 years, GNOME has done its best to address exactly that kind of criticism. Almost every single feature is scrutinized with usability in mind. GNOME has been removing more and more configuration options from the user interface in order to make things easier for the average user. In fact, they've done so much their best that the technical audiance, i.e. Slashdot/OSNews/Reddit, is constantly flaming them for removing config options. Yet this same audience is flaming them for not being usable.
KDE, too, has invested a lot of effort in usability. But what's the community doing? Instead of offering helpful feedback, perhaps mockups or even professional usability studies, they're flaming the developers. By flaming, instead of offering useful feedback, they're discouraging the very people who made the software from improving it. And you're wondering why they're having a hard time?
Go figure.
The issue is more general than that. The usability experts who can't code *can* improve usability, by telling the developers what to do.
It's more of an issue of *just* criticising, instead of offering constructive opinions. 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.
Send email from the afterlife! Write your e-will at Dead Man's Switch.
I don't really think it's possible to quantify "usability" when to most people it's best rendered as "similarity to Microsoft products."
We designers have a mantra for that, usually attributed to Henry Ford:
"If I'd asked my customers what they wanted, they would have said a faster horse."
You may like to ponder that in the light of that statement you made.
"And the meaning of words; when they cease to function; when will it start worrying you?"
" Chasing tail-lights. In the absence of a definite design of their own, many developers assume that whatever Microsoft or Apple have done is good design. Sometimes it is, but sometimes it isnâ(TM)t. In imitating their designs, Free Software developers repeat their mistakes, and ensure that they can never have a better design than the proprietary alternatives. Solution: Encourage innovative design through awards and other publicity. Update design guidelines, where appropriate, to reflect the results of successful design experiments. "
Most people complain if it doesn't act exactly like the proprietary counter part, eg. The GIMP. I bet most the "usability" problems of free software is that it doesn't look and act exactly like the closed-source counter part
It's more simpler than that... Most programmers will go the swiss-knife way, making a really effective cool tool, doing everything, really good, instead of giving the users what they want: never to have to actually invest in it, learning or otherwise. Make it do what it says, and NOTHING else. If you want the can opener too, write another app, or put it somewhere away from the user.
Make it simple, stupid, is btw, one of the common mistakes. MS wizards are simple. Nobody uses them. You still have to invest in the tool to work with it: read each page, make decisions. The rule should be: if you can decide for the user, don't confront him with the question, let the program figure it for the user. Allow configuration, don't force it. Think Skype. Think Ubuntu. Now think xinetd...
"Perhaps instead of the "patches are welcome" you just say that you don't have time to work on it, don't want to work on it, or that it is very low on your priority list."
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.
"Why do you expect people to help you with YOUR project when you won't even give them a useful response? 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. My rate is $150 per hour." then how would you respond? (the $150 per hour is not an exaggeration)
"and that they should bugger off."
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.
"You really think that's going to motivate someone to help you?"
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. Especially if people *still* criticize me even after having put so much time and effort into helping them, for free.
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... or do you?.
One doesn't have to look far to find small but serious usability issues in open source software.
For example, did you hear about Fitt's Law and "mile high menu bar"/ "infinite size widget" effect?
For detailed description, see e.g. this Ubuntu bug.
It turns out that while the Windows and Mac software got this right (at least with respect to scrollbars), massive amounts of OpenSource software (even high profile projects for Gtk/Gnome and Qt/KDE, like Gnumeric, Gnucash, OpenOffice, Konqueror or Kword) add an idiotic small border to their document area that seems to serve only one purpose - prevent this usability effect and make all users' lifes harder.
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.
Sadly, you may be right about this, judging by the vast majority of responses from developers in this article thread so far.
Almost as one, the FOSS developers here seem to have responded (paraphrasing): "Nobody is paying me for this work, so I'll be darned if they're going to tell me how the UI should be designed for usability." And even some non-developers have defended that stance.
This suggests that, indeed, there may be no solution to the problem coming from the community of FOSS developers itself.
But what if we were shamed into it?
What if Microsoft, or Apple, came out with a public statement that "FOSS products have extremely poor usability, because their developers refuse to accept usability input." It would be hard to defend against such an accusation, since we have almost no cases of devs accepting input from non-devs.
This would cause a huge uproar, I'm willing to bet. Maybe that would shake us out of this impasse.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
Most UI designers I've met are not good graphic designers, and most good graphic designers I've met are not good UI designers.
Spot on. I am a UI designer. I have no clue how to use Photoshop, and I don't need to know because that's what the graphic designers use.
I just wish the "creatives" hadn't hijacked the word "design" (and "creative" for that matter).
"And the meaning of words; when they cease to function; when will it start worrying you?"
Great point.
They are taking about UI and usability as if its a solved problem. Its not even close to a solved problem.
A good example is my mum using windows vista. It was more than different enough from XP that she could not use it at all (we got as far as, "this is firefox, now you can use the internet"). I find word imposable to use, it never does anything *i expect* it to do. Then there the whole host of tasks that are not simple to visually represent on a screen.
One of the easiest system i have ever used was a older radar system from a F16 and IANARO (Radar Operator). It had buttons around the side that told you what they did much like ATM machines.
Personally we need a lot more experimental design rather than just blindly sticking to current UI dogma. An example that comes to mind is perhaps the wii.
If information wants to be free, why does my internet connection cost so much?