Five Fundamental Problems with Open Source?
meriksen asks: "I found a very interesting paper which I am sure will stir up a hornets nest.
Despite the growing success of the Open Source movement, most of the general public continues to feel that Open Source software is inaccessible to them. This paper discusses five fundamental problems with the current Open Source software development trend, explores why these issues are holding the movement back, and offers solutions that might help overcome these problems." What do you think of the issues given in this paper, and how do you think the Open Source community should address these issues?
"The lack of focus on user interface design causes users to prefer proprietary software's more intuitive interface. Open Source software tends to lack the complete and accessible documentation that retains users. Developers focus on features in their software, rather than ensuring that they have a solid core. Open Source programmers also tend to program with themselves as an intended audience, rather than the general public. Lastly, there is a widely known stubbornness by Open Source programmers in refusing to learn from what lessons proprietary software has to offer. If Open Source software wishes to become widely used and embraced by the general public, all five of these issues will have to be overcome."
*ducks*
For starters, the webserver should have been running apache, so it wouldn't have been slashdotted. Nothing worse than not having to read an article bashing the open source movement, because the IIS server was slashdotted....
The solution is to provide motivation to write for someone else. There are a lot of companies out there making a lot of money off open-source, selling hardware or services. If they want open-source programmers to write code differently, they need to provide some motivation for that change. One possibility would be an annual award program which could include - for example - a "best documentation" category. The combination of a cash prize (it needn't be large) plus the bragging rights for having won could provide the necessary nudge to improving open-source code.
===== Murphy's Law is recursive. =====
Open-source software does lack documentation geared towards the "common user". The documentation that is out there always seems to only understood by the geek.
The thing holding back more widespread adoption of Open Source is that it doesn't ship already-installed on new computers.
One serious problem is the lack of a standardized, easy-to-use (=click-and-point) installation program and the fragmentation of package management (rpm. deb. tar, whatever).
The owls are not what they seem
(I keed! I keed...)
i have to say, that my own personal reason for not using an OS that is open.... is because i can't figure that shit out. i've been spoiled by microsoft. make it more friendly, and more ppl will use it
Are hardly exclusive to Open Source development. Plenty of closed sourced projects suffer from the exact same things, and plenty of open source pojects do not.
Part of the problem, I believe, must also be the inadequacy of software download websites. In general Open Source distributions are tricky to obtain and install. The sites are difficult to navigate and provide too many download options that reqiure understanding beyond what most users posess. i.e., should I download the "source" or "binary" version? "Stand-alone" or "self-installing?" All of these are terms outside the average user's vocabulary. Worse, many simply link to those SourceForge sites where users are presented with myriad different versions of the same product--some not even stable.
Religious blindness
.Net good, use .Net, write everything in C#, Java bad, GPL evil, etc.
Doesn't seem to me to be specifically open sourcey (sp?) to be religious about technical issues. I mean just look at Microsoft, they are a frikkin' technical monopoly:
John.
usability.
ESR's rant over CUPS is something we need more of.
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
"Developers focus on features in their software, rather than ensuring that they have a solid core."
You are kidding right? This is probably so much more true of proprietary software (to bring up the obvious - there is no open source clippy). Except for that, it's hard to disagree with the interface and documentation arguments on the whole, however keep in mind the rapid development pace that some open source projects move at, if you look just at the 'stable' projects you will usually find much better interfaces and documentation.
One of the items this paper doesn't seem to mention is that with Open Source, you tend to have less R&D money, if any at all. This is what has kept the likes of Microsoft and Apple at the top. They can afford to spend the money on intuitive, user-friendly design. That, and it would help if open source items, such as Linux, were pre-installed on the PC when it was bought. I know it is out there, but not as strong as it would need to be to succeed.
-- johntracy.com, because everybody else is wrong.
Well written article, and she even forgot to write about the other problem of FOSS:
PROPER TESTING.
When by proper testing, I mean test cases for each and every OSS app is getting released out there. Simply releasing an app as a "beta" and asking for input from random people who will use your app on the web, is NOT how proper QA should be happening. Unfortunately, distros are not any better on this, who are supposed to be "professionals".
I think that the only issue with Open Source boils down to this:
The things that nobody wants to do, but somebody has to.
Nobody wants to think about documentation. Or user interfaces. These things are hard, tedious, and a hell of a lot more boring than actually coming up with stuff to "make things work".
It's the reason why Windows is pretty easy to use. Personally, I think that OS X is the preferred model that many business should think about: having an open source "core" (BSD or Linux, whatever) with standard interfaces, then having the companies business be working on the upper levels: the stuff you have to see, since that's what you can pay somebody to work on.
Novell is taking such an approach, I believe, along with IBM. The issues with how to handle memory and the things that 99% of the people never see, let that get put out there so it becomes stronger. Faster. Better, and if nobody "owns" it, then everybody can use it to make their business better - fosters competition.
But your job is to provide the "service layer", such as with Novell/IBM admin tools to administrate those underlying pieces, or Apple giving you a nice "standardized" GUI where everything just works with the rock solid core.
These issues in the paper are not new - but they're the things that somebody, somewhere down the line, has to fork up for. And that's where I'm content to let a business pick up that slack and fill a product niche on top of Open Source software.
Granted, of course, they play by the rules, and let the rest of the community in on what they did so we can all benefit and get better.
Of course, that's just my opinion. I could be wrong.
52 Weeks, 52 Religions with John Hummel
I really agree with this. For example, there are a few software programs that I use and would like to recommend to people, but then I remember the long text based config file, or other small things that prevent the naive user from getting software working properly.
Little things like this make programming something about 10x easier (which is why most open source programmers do it, even I do it), but really do leave out the general public.
I mean look at the most popular open source programs (going by sourceforge). You have DC++, which has a beautiful interface, much better than its closed source counterpart (also more useful). You have Gaim, again designed with the interface and users in mind.
What is the common factor among the list? A pretty GUI. How many powerful console applications do you see up there? Very few.
The author definetly has a point.
Now if I can only get her to quit forwarding me those retarded chain letters we'll be all set.
"Avoid employing unlucky people - throw half of the pile of CVs in the bin without reading them." -- David Brent
Open Source seems to ignore this whenever it becomes inconvenient to pay attention to it. Yes, there are exceptions. But it is not infreqeunt to encounter somethign akin to, 'users of verions prior to X.yz must completely redo a whole lot of things because we changed underlying structures'
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
Developers focus on features in their software, rather than ensuring that they have a solid core.
This motivation is even more present for commercial apps; developers are asked to add every feature that somebody suggests in a focus group, etc. for better advertising - e.g, We have this feature and $COMPETITOR doesn't! Many of the Windows security scares have been due to poorly thought out features becoming bugs; for example, using ActiveX or VBScript to "spice up" web pages or Outlook's tendency to "enhance" emails by displaying HTML
--- You shall know the truth, and the truth shall make you mad- Neal (not Cowboy) Boortz
One thread I've noticed emerging in the comments here is that of "but non open source stuff has the same problems". Why should it matter if the non open source stuff has the same problems? If it's a problem at all, should it not be addressed?
After all, addressing a problem that other guys haven't is a good way to improve the chances of getting ahead.
If it works in theory, try something else in practice.
I assume the author isn't aware that the code often contains comments that can be helpful (especially if they are in some language you don't know). Seriously though, I wish universities would put their English students to work writing docs for the piles of open source software out there, rather than sticking them with meaningless brain-dead assignments. Get a grade, and do something useful you could even put on your resume, cool huh?
I Am My Own Worst Enemy
The article brings up lots of good point that in general I don't have too many problems with, but frankly I don't see how most of these are FOSS specific. For every issue he highlights I can point to just as much closed source software that exhibits the same problems. I think the basic arguement behind all of this is a profit margin helps fix these problems, when in reality they don't. There's pleanty of closed source software that's counter intuitive, badly documented, bloated and doesn't do exactly what I want it to do, and there are examples in the FOSS world where the developers actually do care about the above issues.
I actually think these are exellent points to bring up about *all* software, as most, regardless of development methodology, suffer from one or more of these issues.
Open source projects consistently do a great job at replicating stuff that non-open source groups develop. GNU/Linux itself is more or less a remake of Unix. MySQL reimplemented SQL. Samba emulates Microsoft's protocol, etc. That's because coming up with and delivering completely new things is hard. It usually requires pain, and some really unpopular decisions which fly in the face of the Open Source culture.
Of course, this effect is amplified with UI/highly integrated applications. When text is the input and the output, it's easy to glue things together with grep/awk and automate with scripts. But the user interface with text is simple, clean and unchanged after several decades. A GUI app inherently begs for some kind of library because few can (or should!) code this stuff from scratch. Fine. Except how often are you happy with the baked-in stuff for all but the simplest apps?
So once you venture from text, you suddenly face the obstacles Microsoft has tried to fix with COM/DCOM/DDE/OLE/.NET/ATL/MFC and so on.
The disadvantage Open Source had vs. Corporate-ware (and I mean *had*) is that chaos erupts with no unifying thing to keep all the GUI and inter-app stuff in line. It seems that the distros are now becoming that unifying force. The downside is that it is getting hard to tell the difference between RedHat and Microsoft!
Does it hurt to hear them lying? Was this the only world you had?
No, the thing holding back more widespread adoption of open source is that nearly no one currently would want it shipped already-installed on new computers.
Make it good enough that ordinary users demand it, and adoption will come automatically.
I think she missed the biggest reason of all here: Designing a good GUI is very hard. Wait -- let me further clarify that: it's very, very hard.
Designing a GUI from scratch requires a sense of aesthetics (balance, color, flow) and the ability to decide exactly what needs to be up front, and what needs to be hidden behind a menu, option button, or some such. Frequently the developer will have a fervent opinion about "this is the most important thing, it must be on top" whereas a good user interface designer can step back and see what will work for the users. A good UI designer will also run user acceptance labs to test their designs. Many open source projects end up with little more than "Hey Bill, would you check this out for me?" And Bill, being aware of the project from its inception, and having heard about it over the lunch table for the last five months, already posesses a deeper understanding of the task that prevents him from being able to adequately judge the design.
Apple, of course, has always been at the forefront of GUI design (at least as a commercial success, I'm fully aware of the contributions of Xerox Parc, et al.) I believe this comes from a strong, single, visionary designer, a rigid set of GUI design guidelines that must be absolutely followed, and a corporate mindset that the GUI is the most important aspect of an application. They undergo rigorous testing procedures, and countless user feedback labs. Microsoft hasn't ever caught up to Apple in that respect, although they do have a good set of GUI guidelines and some very strong products.
But nobody in the open source world wants to be "told what to do". Also, nobody in the open source world feels they have the authority to stand up and say "you must design your GUI in this fashion." Some projects, of course, will have beautiful, solid GUIs thanks to having a quality GUI designer on the project. But that currently doesn't pan out beyond the scope of the single good application. So the consistency isn't there, and it will never be there until someone puts together a GUI committee that has the authority to stamp "Tux Approved -- Good GUI Inside" on open source projects. It will require a single, strong voice. And that voice has to have a world of talent behind it. That's a mighty tall order for hundreds of grass-roots volunteer efforts to come up with.
John
The pitfalls mentioned in the editorial seem to be more common to open source projects than proprietary solutions, and I believe the issue may be with control.
With proprietary solutions, there are full indepth analyses of market need, product placement, user targeting, etc etc, which as far as I can tell, open source projects lack. The mentioned problem of documentation is a good example of this: if the target user is successfully identified, it should be obvious that unless the user is, himself or herself a programmer familiar with open source "documentation", a user guide covering every feature, behavior, and interface should be created. One software engineering practice (to which I subscribe to) is to create the user manual *before* coding the program, and not changing it unless there's a damn good reason.
------- "From bored to fanboy in 3.8 asian girls" ----------
1. Improving and is nearly a non-issue these days
2. Documentation is more plentiful then most 'closed source' groups. If having less 'Dummy' books means less documentation, it's a negative I can live with
3. Doesn't MS Office count as a Feature-centric project? You can really put MSOffice in place of 'ProjectX' and it would sound the same
4. Sounds like a crappy project to me if the developers know of the problems but don't fix them.
5. There are lots of egotistical elitests, but I've noticed in the wild that there are less now then a couple years ago. If you punch everyone in the face and they all leave, don't be suprised when there is no one left to punch.
Overall it sounds like this guy had a bad experiance with A single project and decided to generalize it with all Open Source. I'd be nice to know what ProjectX is, then we all can get on them over it.
The Notes section seems to get the highlight of the paper.
"Some things have to be believed to be seen." - Ralph Hodgson
Code can be split into parts and reused. A professional programmer benefits by having a large body of good open source code.
Documentation, on the other hand, is much more likely to be a one-shot thing. If a professional technical writer were to write, say, a terrific GIMP manual, and release it open source, it's not likely that they are going to get anything back that will help them on other documentation projects, at least to the extent a coder gets for releasing code.
Same for UI designers.
Basically, good open source documentation and UI design comes from people doing it as an act of charity, whereas there are good practical reasons for people to write open source code.
Well, that article was rather short (figures, I actually read the article and find it wasn't worth the effort). I think two points that need some greater detail are as follows:
1. The big advantage of open soure - sharing and code reuse - just isn't happening. For example, I'm looking for a new OSS webmail program. I have certain criteria. There are something like 209 projects related to this on Freshmeat. Why? That is no more efficient than a couple hundred closed-source vendors doing separate implementations of competing products. What have we gained?
2. Choice really isn't, sometimes. When I am faced with two OSS projects that supposedly perform the same task, I often find that each lacks a function that the other has, and neither do everything they should. Why don't they team up and make a single, solid project?
I think the answer may have something to do with the inability of people with different skill levels to work together. Or that differing programming styles prevent two developers from ever agreeing with eachother. That's not comforting.
Fred
"A fool and his freedom are soon parted"
-RMS
They are rather related to zero-cost voluntary software developement, no matter if OSS or not. It just happens that currently both are often the same.
I'm currently develpoing OSS and getting paid to do it. Overall consitency goes way over 'cream-code'.
My partners don't care about dirty hacks as long as the result is usable and looks good. Thus I'm cutting corners in code-beauty. It's going to be GPLs OSS none the less.
We suffer more in our imagination than in reality. - Seneca
Open Source companies have tons of money. Look at all the kernel hackers they hire to work on stuff.
Red Hat spent $700,000,000 on buying out compiler companies and dot-coms, and then the reason their programmers give me for why their software has usability problems is "we can't afford an HCI department."
Linux companies like Red Hat (and Suse, bought out for $200,000,000) have tons of money. It's just that they don't consider usability to be very high on their list of priorities. To these folks, its only the technical stuff and server stuff that matters. Screw having a properly trained user interaction dept that makes their software easier to use.
Ergonomica Auctorita Illico!
You'd better belive I'm designing it for ME. Its not fun to design programs for other people. Thats a job. I wouldn't do that for free. If you would like to PAY me to make it work for you, I would be happy to. Of course it is open source, so if you don't like it you can change it yourself.
Well.. maybe. Or Maybe not. But Definitely not sort of.
At the very first lecture of the Software Tools and Systems Programming class that I took, we were carefully instructed that the best software tools are small programs that do one thing well and interface cleanly with the other tools. This sounds like a philosophy which is perfectly suited for the Open Source movement: if you have many contributers and they all create one (or several) small programs that do one thing well and interface cleanly with the other programs, a very clean and powerful system can come out of it. And I believe that this has been proven by the durability and longevity of the Unix operating system.
i fully agree that this is a problem. projects like FVWM have it right. with many different programs (taskmanager and so on) on top of their core. All modules have their own manpage and are configured in the core or separate.
1) User interface design
Good UI design is hard. A good UI designer might not even be able to code and hardcore coders generally don't make very good UI designers. It's simply not what they're interested in and so it gets only as much time and effort as is absolutely necessary. We, as a community have built some wonderful code, but not many in the community are actually UI designers. We need to find and motivate more of these people.
2) Documentation
Documentation is time consuming and not very rewarding for coders. As with UI designers, we need a large group of people who get kicks out of writing documentation and there are just too few of those special people. We need more of these people too. Trusting these tasks to the coders isn't enough.
3) Feature-centric development
Features are rewarding for developers and guess where they put their time.. Project managers are meant to drive the scope and direction of a project. Most of time, the project manager is the lead coder by default. Got to entice a few of these management types over too..
4) Programming for the self
This has an almost identical effect to #1 and the solution is the same. People who are good at usability issues must be found and enticed to contribute. Unfortuantely, we don't have much to offer in reward. Recognition? Nope... The coders/project managers get the credit for the released program. Money? Nope.. We're not talking about commercial software. Beer and Pizza? That's probably our best shot, but I'm not convinced.
5) Religious blindness
Blatently wrong, at least for a significant population of the community. Quite of few recent articles soundly debunk this.
So, it's not going to "fix" itself and there is not much we can do to alter the situation. People are doing this for fun. If it's fun to work on features rather than write documentation, that's what they'll do. Commercial software will always have an advantage in this respect because people are paid to do the work they don't enjoy.
Where's the documentation? It came with a flimsy document showing trivial stuff. When I do Start->Help I get tons of documentation but it's all 'fake' in the sense that it tells me stuff that's obvious. Eg. to Share a folder I need to right click on the file and select 'Sharing' et.c. Doh! Where are the docs telling me how to write a device driver? Where are the docs telling me how to manipulate junction points? This OS shipped with Internet Explorer which supports a bunch of programming languages like Javascript and VBS. Where are the docs about these? Where are the docs for the APIs in all of the DLLs all over the place? Oh yeah...I have to buy a separate product to access those. When my PC fails to boot what do I do? Where are the docs telling me about the different stages during the boot process? Are there any logs? What is the precise format of NTFS on the disk? Endless questions to which I can find no answers in the documentation that came with my OS.
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
> suspect that there isn't one single reason for
> the poor quality of user interfaces, but here
> are some explanations I've heard roaming the
> Open Source circles: geeks value integrity over
> beauty; the gender gap in Open Source
> communities; it's intuitive to the programmers
> so why would they fix it? (see Programming for
> the Self), the belief that a pretty user
> interface can always be designed later once
> they're done the real work, the belief that user
> interface design isn't real work, and several
> others.
I think the two main reasons:
1) Open source developers just don't think about usability - they think about functionality. It's kinda of like a blind spot that naturally develops when you spend all day coding.
2) Good user interface design is very hard. It is a skill that most developers don't have.
When you see a slick application like the Apple i-Apps or pro graphics and video programs, the reason they're nice is that they were designed by usability specialists, who are following interface guidelines and testing the interfaces on actual users.
There are just not enough of these people in the the open source community.
But this doesn't interest me. I don't like Windows, and I can't imagine liking a Linux based Windows clone that is just as easy to use as Windows any better.
The more Windows-like Linux becomes, the less I am interested in running it. I've mostly switched to FreeBSD (I used to be Redhat only).
I use the CLI, I edit with vi, I write lots of scripts, and so on. In my opinion, text based, scriptable interfaces have a flexibility and power that Windows lacks, and which I refuse to do without.
This is not to say that traditional Unix is perfect. I have spent a lot of time thinking about how to make the Unix user interface better and more powerful. I think there is a lot of interesting work that could be done on making Unix suck less. I just don't see building a Windows clone as movement in the right direction.
I understand that the general public doesn't want a better operating system. The general public wants Windows. So feel free to donate your time building an open source windows clone, but count me out.
Doug Moen
I have written a truly remarkable program which this sig is too small to contain.
Availability.
Most people simply don't know that GIMP and OppenOffice exist. Or that they can be installed on Windows fairly easily.
Installation.
Some open-source developers just assume that you'll have a compiler handy, and will want to adjust the Makefile to point to the right libraries (which you'll have to compile and install yourself...).
-... ---
here
So let me get this straight:
You say that OSX is a great example of interface design, because real live people have told you so... and KDE or Gnome are poor examples of interface design, because of an imaginary scenario?!?!?!
For the record, I've put people (such as my mother) in front of a KDE desktop, and they've had no problems with it (in fact my mother said how much she liked it.)
Note that neither this, nor the author's experience actually has any bearing on whether KDE or Gnome are usable or not.
Using the exact same methodology in this article, I could prove that MS has no money, that the moon is made of green cheese, and that Iraq has weapons of mass destruction. (Hmm, come to think of it, maybe this guy works for the White House.)
Remember kids, if you can imagine it, it must be true!
*sigh*
Fundamental issues with open source software development
From the article :
This paper discusses five fundamental problems with the current Open Source software development trend
And later :
First of all, there will always be exceptions to every rule. For example, I believe that relatively few complaints listed here apply to the Open Source browser Firefox [2] which continues to surpass my expectations. I'm discussing general trends that I've noticed, not specific cases. Secondly, I don't think that these are unresolvable problems. The purpose of this document is to raise awareness -- not to mindlessly complain -- in hopes that the Open Source community may begin to change their mind-set about some of these issues and work towards improving them.
I'd argue that the last paragraph I quoted indicates that these are not fundamental problems with Open Source Development, but merely common problems with Open Source Development. The author seemed to overuse the word fundamental throughout the article. Sorry to be nitpicky, but the title suggested a very different article than what I found. I was expecting something more along the lines of, "Open source software will never be useful, because the open source development model is fundamentally flawed in such and such a way."
Of course that would have merited a very different response, such as, "You're clearly being payed by (Insert evil proprietary software company here)".
Other than the lousy title and the gratuitous use of the word "fundamental", this article seemed very mild, obvious, and full of information that gets regurgitated on Slashdot every two days or so.
Yup, open source has a few rough edges. Of course this may be due in part to the fact that many that use it are tolerant of a bit of DIY action. This is as noted simply due to the fact that tech savvy wrote it for the tech savvy. But in the last few years linux and its packages have improved by leaps and bounds. In time it will be more accessable to the less tech savvy. This growth is clearly happening and will continue as the open source movement matures and gets better at filling a market niche.
All the problems he has noted really are the hallmarks of a "Immature" package but as time goes by the worthy packages get better and "grow up". Take KDE or GNOME in point. A few years ago it was VERY clunky (still better than win 95 tho). In just a few short years with NO PAY these guys made something quite usefull, nay may be even intuitive. It has problems and as time goes I am sure they will be addressed. It is all in the process of maturation that the project shed the bugs and effects of bad project design to become a intuitive finished project. This is true for all softwear and maturation is not free nor instant, it takes allot of effort to do this.
When a software company devotes massive $$ to make a intuitive ap that nobody needs/wants then they go bankrupt and stop. In opensource it is different. Someone has an idea. A basic implementation is made. If it is good and the demand is high it will be polished by the many that flock to use and develop it. Then it will mature and become a product that is less cumbersome, those packages that are less need/popular stay basic implementations, "infants".
*I wonder what linux wants to be when it grows up?
In this post, I use the general term "Violent Puppy Rape", though often I'm exclusively discussing consensual sex between adults.
I enjoy watching violent puppy rape.
Lumping the latter in with the former helps no-one, least of all the puppies.
One of the biggest problems the average user has with most open source software is that he can't figure out how to install or configure it. The open source java app I have been working on for 2 years has gone through a few different installers, none of which were very good. Even the ones that required licence fees that we tried out were crappy. Many open source projects require the user to compile and link the source code, sometimes even making users edit source code for configuration changes. This is either laziness or lack of resources on the developer's part, neither of which looks good from a user's perspective. Software that is distributed a binaries with install/run scripts are better, as long as you can provide scripts for each platform.
As developers, generally the first thing we do after downloading some new open source software is read the README file. Then maybe the GOTCHAS.. Most users won't or can't pay attention long enough to read the instructions in a wizard based installer, much less a 50+ README. Programmers tend to be fast readers in my experience, many other people are not. So, if you can, include a one click installer and make the program configurable at runtime through a nice, easy to understand GUI.
TallGreen CMS hosting
http://msdn.microsoft.com/
Seriously. All the documentation you could ask for, and then more.
...most documentation isn't even good enough to wipe your arse on, free, open source or otherwise..
Disclaimer: I have not read the article, but the gist of the post is reasonably clear and see things the way I see them... so it must be right!
How many open source projects have non-developer, domain experts with significant roles in their projects? I know there are some efforts to solicit this kind of input, but it seems if you are writing a word processor or an inventory management program a project would do well to recruit end users that are true experts in their respective domains. Even to the point of having them on the project's top management committee. Sure they would probably have to be categorized as 'power users' to be effective and they should be fairly senior (as to understand the big picture, not just their own direct perspective.)
Also, how often do usability studies happen going into a release? It's one thing to get something programed, but another altogether to ensure the good intentions of the developers are really good in a more absolute sense.
Just some thoughts.
Problems with Open Source Software. It can't be. Not true. *Plugs ears* La, La, La, La, La, La, La. I can't hear you!!!
(Coming back to reality) OSS does have problems. In my experiences the problems are not techical but are with the interface. I started using Linux in 1998 and over the past six years the UI has improved. Linux is a mature OS and can no longer be considered a hobby OS but with that being said the interface, (KDE, Gnome, ect.) is still not as clean as Windows.
I do agree to an extent with the writer. The main focus of open source is often from a programmers point of view, so most programmers or computer savy people are more confortable with it. KDE and GNOME have vastly improved, but still have a few weak areas.
In the case of a mac, my roommmate can go to the Mac store and buy a printer, camera, video camer, software, install it and use and not have to think about how to get it running. You can't do that with Linux, there are few if any stores that sell Linux software, linux cameras, linux video cameras, etc, ( except for online stores ). Buy a quickcam 4000 and try to get it running. You must download special software and then 'compile...' I'm sorry but once you start haveing to require a person to compile anything they loose interest if all they want to do is use the computer. Most people think of the computer as a tool to do a task and don't want to f*** with the OS to get stuff done. Redhat and SuSE and several other vendors and programmers have made installing it and using it somewhat easier, yes, but my experience has been Mac is easeier to use, and I use Linux as my primary desktop. Windows is even easier to use.
The difference is that both Windows and Mac have UI designers, that work at the whole look and feel and making things easier for the end user. Most open source projects dont have that and need it desperately.
I think the point that you may have missed in the article is that the design of most open source is by a programmer and used by other programmers who understand all this stuff. End Users dont. I do, but I'm a programmer.
To many of the HOWTOS out there are missing a few things here and there and require a little debugging. They usually cover the majority of cases, but people don't want to read a how to they want to turn on a computer and it just works. The reason cell phones have gained such a huge acceptance today is because you just turn it on and it works. That is what made Palm so liked, was the fact that it was a simple UI. This is what Mac is famous for. The simple to use UI. of course if someone tells an open source programmer that their UI is lacking, they take offense. Hey why shouldn't they! They did it for free.
Bottom line is you get what you pay for!
Only 'flamers' flame!
Does slashdot hate my posts?
And maybe that's the problem.
I'm one of those guys who can't wait to take a hammer to the options and smash sh!t like that Clippy into the flaming embers of hell itself. Don't hide stuff from me, show me fully qualified paths, give me dangerous options, don't tell me what to do, don't hold my hand, I don't want your useless tip of the day, that kind of stuff. And I hang around with people of a like mind -- my friends are all techies, and they, of course, feel the same way I do about Clippy (I think.) It's an evil blight upon computerdom, foisted off upon us by Darth Gates.
So you might say I was more than a little surprised when I was setting up Office for my wife and I was going in to turn off the "dog" agent (one of the Clippy variants) when she said "Oh, don't turn it off. I like it."
Stunned silence. She liked it. You could have knocked me over with a feather.
Here I was, having spent the last thirty-one years of my life learning how to use and program computers, bursting at the seams with pride of my "|\/|4D s|<i11z", secretly laughing at those people who don't know enough about computers to even turn Clippy off, only to find that my wife of twenty years uses Clippy. And she likes it.
Fortunately, I was too stunned to open my mouth and say something that might have been hurtful to her. It gave me time to think about what she said. She liked it. She found it useful. And I consider her to be a very intelligent woman.
So, now I at least understand that there is a place for Clippy, at least among the vast majority of "users" out there. And Microsoft apparently understands that, too. Open source developers? We're still mocking Clippy. But we should be learning from him.
John
From the abstract, emphasis mine:
Seems they are only "fundamental problems", if everybody accepts the premise that the highest goal is to become the premier choice of "the general public." I personally don't agree with this agenda at all. In no particular order: Innovation? Quality? Free-as-in-possible-to-use/distribute/complete-acc ess-to-understand/modify/contribute-back-to-the-co mmunity? Etc.
In any case, briefly looking at the list of these "fundamental problems":
1. The lack of focus on user interface design causes users to prefer proprietary software's more intuitive interface.
Do you agree? Is there consensus on this? Is that really a fundamental problem? I'm on fluxbox when I can choose, but are KDE/GNOME/et al. so divergent and/or different from Windows or OSX?
2. Open Source software tends to lack the complete and accessible documentation that retains users.
Huh? As opposed to what, having the same amount of documentation of e.g. the Windows APIs as Microsoft's own coders (who are the competition - Office apps, media players, browsers, etc.)? Oh, wait - it's talking about user docs. Ok, but isn't that always a problem, everywhere? The article offers "Documentation should always cater to the lowest common denominator." The best doc you read was a dumbed-down so anyone could understand it? I'm unconvinced.
3. Developers focus on features in their software, rather than ensuring that they have a solid core.
Feature-creep is hardly more prevalent in open source?!? "Shipping the prototype" is such a standard practice in the closed-source corporate world it's not even funny. Additionally, the article writes about the small 'core' tools doing few things well - I thought that was a fundamental design principle in *n*x.. and subsequently GNU/Linux, BSD, etc.? E.g. mplayer doesn't contain any of the bloat found in MediaPlayer or RealPlayer (been a while since I saw them though, they might've become better..?).
4. Open Source programmers also tend to program with themselves as an intended audience, rather than the general public.
I don't understand this at all, what is the problem? When did Joe User become more important than making the software do what you want? And making it free, Joe User can use it to his heart's content - within the terms of the licence under which you release it. Why is creating software to solve your problem a flaw? If your motto is "General public acceptance or death", it seems to become one..
5. Lastly, there is a widely known stubbornness by Open Source programmers in refusing to learn from what lessons proprietary software has to offer. ;)? But seriously, is it so? Stubborness in hating/flaming Microsoft, etc., perhaps, but surely not using ideas from them (the GUI, Mono, and so on)? If anything, I'd like to see even more divergence from "industry standard 'best practices'".
One problem might be lack of source
668.5
"You get what you pay for."
With very few exceptions any software publicly available for free is likely to suffer from the exact same problems, Open Source or not. I don't think this is an issue specific to Free Software, but rather software as a hobby. It just happens that there's a lot of Free Software being released as a hobbyist effort.
I Browse at +4 Flamebait
Open Source Sysadmin
Ignoring the problem as it relates to a medium to large vendor of Free Software for a second:
If I write an application to suit my needs, I will use alpha and beta versions myself, and address any problems that come up. There's no way I'm going to write test-cases and go through a formal testing procedure, because I'm not motivated to produce a mature and complete application...just to do the bare minimum to satisfy my needs.
As for "asking for input from random people who will use your app on the web", who better to do it? People who are using the software are on many disparate platforms, which may not all be available to a developer. Those same people have just as much interest in seeing problems fixed quickly as the developers..possibly more so. Why do proprietary software vendors release beta versions of their software for interested parties to evaluate? How are *they* any different? Because those betas are released under NDA and not to anyone who wants to use them?
Good question. The answer is that I am doing it for myself, but it can be useful to others. Before the age of the public internet I actually rewrote a couple utlitlities which are now free. I would have like to have just used one that soemone else had written or taken what they had done and change it to fit my purposes. Thats usually what I do with free software, so to be fair I release back what I've done with it. Usually people probley ignore my contributions, but some of it can be useful.The point is that we as a soceity advance faster if knowledge is free.
Well.. maybe. Or Maybe not. But Definitely not sort of.
Firstly, I think the author is WAY off with the comment that open source software is feature driven. I believe the contrary is true. Open source software is design driven because of one of her other points - it is made for other developers. You will not gain much in terms of bragging rights if your underlying architecture is sloppy, especially when everyone gets to look under the hood. And so what if is is made for other developers. I like the UNIX philosophy and the command line and so what if she doesn't! Open source software is kind of the kit car of the software world. If you are into cars you love to tinker but if you just want to go to the store you don't want to know where the manifold is. Its all about CHOICE.
rootsmith Inc.
If you don't like it, extend it, fix it, or hire someone to do so. Don't dump your personal application requirements on community members who are just trying to share what they have.
So what you're really saying is "hey, you didn't have to pay for it, so just sit there and shut up about how bad it is. We don't care about your problems with it and we're not going to fix it. If you think you know so much, why don't you go fix it?"
And people wonder why average users consider OSS proponents to be arrogant and egocentric?
Nothing pisses me off more than someone who demands the world for free, then bitches and whines because they can't have it without putting in an effort.
And some people, instead of putting in that effort, will choose to simply buy proprietary software right off the shelf that does what they want, how they want it, and without them needing to learn how to program in Perl, Python, C++, and learn the intricacies of vi. And Linux will remain within the reach of only those who have the technical wherewithall to use it or the stubborn patience to learn it (about 5% of the world) while everyone else goes and buys Windows. Linux users feel all smug, superior and happy while Microsoft laughs all the way to the bank.
But hey! Linux users can feel all smug, superior, and happy knowing that they "put in an effort." And that's what's really important at the end of the day, right?
To paraphrase you, nothing pisses me off more than someone so damned unbending and stubborn that they're willing to take a platform I believe in (Linux) and refuse to allow it to mature into something that could displace Microsoft. Instead, you'd prefer we return to the Bad Old Days when users had to conform to the software instead of the other way around, and everyone needed a Computer Science degree in order to work a PC. I'd prefer we move forward instead of backwards, embracing new users and accomodating them. You'd rather we just slap them around and chastise them for not picking up a C++ and learning how to program. Elitist, indeed. And ultimately self destructive.
In the end they will lay their freedom at our feet and say to us, Make us your slaves, but feed us. - Fyodor Dostoyevsky
How about insulting market speak passed off as documentation? For games, docs that are not included so they can be sold separately in hint books? Docs for motherboards? The worst documentation I've seen recently was for some blade servers from IBM. Among other things, IBM didn't make it clear the servers, intended for the US market, required 220 volts. Also don't care for the patronizing tone that tax program interfaces adopt.
Just ask Microsoft what Office is:
Microsoft Office XP Professional puts the features needed within easy reach at all times. Working alone, experience a smarter way to work. Working with others, collaborate more effectively. And increased reliability means never looking back - which is perfect, because your best results lie in front of you.
Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
I can't say I'd disagree with anything in the article.
The whole article is right on the money. It seems like the author does not hold any bias but approached open source with an open mind.
Considering the author is speaking about general trends, I'd say these concepts have one common basis: separation between the end user and the developer. Each of these problems can occur (in any project, "open" or "closed") when this separation exists. This feedback loop must exist for a project to be successful, and the article presents five clear reasons why.
1) User Interface Design
Feedback regarding the ease-of-use and intuitiveness of the interface must be communicated to the developer responsible for the UI. Otherwise, users are presented with an interface for which they had no input and therefore could not alter to better fit their needs.
2) Documentation
The developer responsible for documentation must make sure tasks performed by the end-user are fully explained and the information organized in a simple manner. In order to do this, the developer must interact with the end-user to ascertain how the software is actually used as well as the level of knowledge of the typical end user.
3) Feature-centric development
Users focus on how the software enables them to do what they need. When developers know exactly what users need, they can in turn focus their development on what is important to the end user. If they don't know what is important to the end user, then features which are important only to the developer have the opportunity to "creep" in.
4) Programming for the self
An open source project survives (by definition) because people use it. If developers program for themselves, then the usefulness of the application to end users can suffer (where developers are not the end user).
5) Religious blindness
End users are essential in this because they don't necessarily have the same viewpoints as the developer. They just want something that works. By telling the developers what works and what doesn't, the developers can balance their beliefs with the needs of the end user.
Now if only I could set it up in a "Neko" mode where it can play "chase the mouse" with the mouse pointer...that would be cool.
Note that what I am talking about has nothing to do with the help system. I suspect that the majority of the people who actually "like" the Office Assistants are probably fond of them for toy value, not as a way of searching for help. I seem to remember that the "Dogz" and "Catz" system toy programs were somewhat popular a few years back. Those programs still seem to exist... http://petz.ubi.com/.
Knowledge is power. Knowledge shared is power multiplied.
This is exactly the kind of misunderstanding that causes UI design to be swept under the rug by most open source projects. UI design is not a matter of pretty icons - its about avoiding creating software that actively discourages people from using it.
"It's Dot Com!"
text based config vs gui/app based config
/usr/local so perhaps that shouldn't be the default, or worse ONLY place the installer looks if the app in question is a plugin or some such.
Why is this is a debate or an issue? Why do most projects still get this wrong? Having configuration stored in a text file is absolutely the way to go, this has tons of benefits, probably the biggest and least mentioned is that the configuration can be passed around or backed up. So although you spend 3hrs configuring server x and services, you then backup the conf files to a floppy and pop them back in place the next time.
Text config is also the most flexible way to go, you always have the most power and control (or potential for it anyway) with text config. That's great, it covers half the battle.
What does that have to do with the absolutely neccesity to have a configuration program? At the cli I should have two options, the text file direct or ncurses configuration app which offers 99% of the functionality available to me by editing the file directly and does so in an intuitive manner. At the gui I also have two options, the gui based configuration app which works like the ncurses one and editing the file directly. Alot of projects come close (although usually they offer one or the other) but they make said app a one time shot, rather than say, letting me configure, and then *gasp* later modify rather than completely start over my existing config or manual modifications.... and this is produced by the same people who already wrote code to parse the config file and read in the values!
The other issue here is conformity, despite configuring dozens of apps via text file every day about once a week I encounter a new style/format of config file. We need to come up with a standard for this. We also need to work on defaults, I've yet to encounter a project with even vaguely reasonable defaults... defining reasonable as the most commonly used values. As an example, neither postfix nor sendmail actually come "out of the box" configured for the most common mail setup, to use the already set host value, and relay for the most commonly used private subnets (namely 192.168.1.0 and 192.168.0.0) and use mbox files. Other configurations are exceptions rather than the rule and 90% of those exceptions would require no more than a change to who to relay for so why don't these programs come with this default config out of the box?
Installer, binary, source, wizard...
I don't see a real question here either, the answer is all of the above again. The source code of course should be available but is hardly the format of consumption for end users. The binary should be available (at least an rpm that doesn't have dependencies or has them packaged with it) and an installer wizard which helps you arrive at your initial configuration, put things where they should go and install any dependencies which the program needs with just a few clicks or key punches (after all there should be an ncurses version of the installer as well). Nvidia has a good concept with downloading the source if the binary doesn't match the system which the app is being installed on.
Someday someone will figure out that there really aren't many distro's that make use of
Documentation
There should be some! Most I've seen doesn't cover the whole spectrum, either it's for idiots, or it's for programmers or the worst, it's outdated and inaccurate and/or wasn't even vaguely accurate when it was current. For an example, look to grub documentation on installing the bootloader from the native command prompt, you'll find two different general sets of commands to use, the most common method found on a google does not work on any version of grub I've EVER encountered but is faithfully repeated, the commands listed outright wrong.
Generally a basic, and advanced USER guide which don't reference source code or compiling at all. And then a seperate set of programmers documentation kept as curre
I agree with everything said in the paper. In fact, I have been arguing those exact same 5 points for several years now.
Admittedly, in the last few years there have been real strides made for free/open-source software -- the GNOME project is the most vivid example, keeping true to its philosophy of simple, usable programs. I am particularly fond of applications like Epiphany, SoundJuicer, and Totem, all of which take a simple, user-oriented approach toward the tasks they perform.
As for advice, I would say that more projects simply need to take the advice the author of this article gives. Spending more time trying to avoid the five pitfalls outlined in this article is really all they need to do -- the real problem is that they're usually just not aware of these issues, or if they are, they don't care. If they want to make their software usable by others, they need to fix the problems.
The one thing I disagree on is the lack of documentation. I don't disagree that documentation for most free/open-source projects is poor, but were the program intuitively designed, it would be unnecessary. How many people read the documentation for a Mac or Windows system? Not many. I'd rather the developers spend time making the program usable than documenting something that is not.
Did you read the part of "Religious Blindness?"
A maintainer of a Open Source or Free Software project is under NO OBLIGATION to fix anything, or even to guarantee that it works at all. It says so right in the standard disclaimer, its provided in the hopes that its useful, nothing more. If it doesn't work, the only person you can rely upon to fix it is yourself, and it is nothing but whining to expect someone else to ix it for you, so yes, they can just sit down and shut up if all they're going to do is whine and cry it doesn't work. For the record, good bug reports aren't whining, but even then you can't expect it to be fixed immediately.
The reason I mention the religious blindness is that it works both ways. The article uses it in rejection of all things closed and proprietary, but that implies the reverse, all things open and free are the only way. With this mind set, users of FOSS feel that it is their right to DEMAND that all software is free and the maintainers are REQUIRED to give all the same support to their little pet project as if it they when out and paid for it. Yes a linux user may feel smug in getting something to work right, and so they should, you should take pride in your accomplishments, and yes at the end of the day, the only thing that is important is if you learned something.
To paraphrase you, nothing pisses me off more then someone so damned blinded by their own beliefs that its their right to have FOSS given to them with all the work done for them, that they see a platform as a religion ("...I believe in (Linux)...") that exists to quelsh all that they are told is evil ("displace Microsoft"), refuse to realize that they have actually no right to expect anything from anyone, even if they released their work for anyone to use.
I think you'll find that most people do not follow the same religion as you do, that being putting your faith in the almighty RMS, and really do release software in the hopes that its useful, but with no warranty at all, and yes, they program for themselves. This is why Linux was released in the first place, remember Linux is 'just an engineer' not a blind disciple of RMS. If you really want a platform that was created for your religious beliefs, ie a platform I believe in (Linux) and refuse to allow it to mature into something that could displace Microsoft you should be using the GNU/HURD, but then again, you'd have to sit down and actually work out the problems yourself, I don't think the people working on it take to kindly to "OMG IT WONT READ OVER 2GB MAKE IT WORK", and they'll probably tell you to sit down, shut up and do it yourself, its not like you paid for it.
"I use a Mac because I'm just better than you are."
I'm pretty sure even Linus isn't that religious about this. I don't think your goal for Linux can be imposed on volunteers who might have other goals.
In the past, I'd make a concession at this point and say "it's a good goal anyway." Lots of people have that goal. But nowadays, I can't even concede that. I'm really thinking that Linux needs to extend its reach to power users and stop there. I don't think Linux should try to displace Microsoft. Instead, I think it should get comfortable being used by the 25% of the population that is fairly tech-savvy. Leave the other 75% alone. They come with too much baggage.
Well now this I agree with. I think the rudeness and discourtesy some developers show others is a big problem. I just don't think the solution is to be doormats. For better or worse, the Open Source model puts developers on par with end-users. This becomes collaborative, and both sides must cooperate. If one side is rude or demanding, the other has every right to walk away. If that means a project run by assholes ends up stuck in a niche of a niche and never gains market share, so be it. If that means a project gains huge market share but deliberately draws the line at 50% of the population and says "we're fine with the smart half, but we're not going to be able to accomodate the other half" then so be it.
As usual, I think there are courteous ways to say no (such as "I'm sorry, but that's a lot of development time and we have no one to spare") and there are rude ways (such as "build it yourself noob").
My Greasemonkey scripts for Digg &
I say, "What's wrong with that?"
Is there some inviolate law that says people have to program for others for free (as in "with no charge")? I hear Marx muttering from his grave, "...from the programmer to the end user...".
If you don't like what you get without charge, then either expend the effort to change it, or pay someone to do it for you. I don't expect doctors to treat me for free, or lawyers to represent me for free, so why is there this perception that those that provide software without charge should somehow be obliged to meet some arbitrary whim?
Granted, ease of use translates into popularity translates into greater support, and those that care about software popularity might make the effort to consider usability issues. Hint: that may not be the prime developer of a particular piece of software.
Linux was not created for your benefit or mine: it was created by Linus Torvalds for himself. Of course, others with similar interests shared and contributed to that effort, and the synergy is amazing. But the fact that it is useful to you or I is happy coincidence.
Elitist, indeed. And ultimately self destructive.
You know, I have a brother in law that is seriously into motorcycles. He goes on and on about minutae of bikes that I barely understand. Elitist? Perhaps. But, he does not require or expect me to share his interest or desires. And, I do not expect him to explain things to "my level". Why is it, then, that we expect open source and free software programmers to "owe" something to society? Ironic how free software, wrongly criticized for being "communist" suffers under accusers far more "red" than it's protagonists.
"Ultimately self destructive?" I suppose if a popularity contest or some measure of market share is the issue, the argument might hold a drop of water. But, that isn't the issue, and never was. If free software requires popularity, it is only because opponents of the philosophy behind it would seek to use the force of corporatist-purchased government law and force to extinguish it's fire. Frankly, with IBM and others "on side", I don't think we need to worry about that.
I am not a free software or open source zealot. I believe that the only way to produce mass-market user-interacting software is with the kind of market research that can only be funded by providers of proprietary software. That said, there are large underlying components of such software that could be leveraged in other areas and will soon be supplanted by free alternatives, commoditizing them at zero cost to end users. The line has been drawn between effective free operating systems and non-free applications and services. The question is how much will it move into the application space? My bet: "Not very much."
Free office suites and web browsers will exist, of course, but will generally play the "compatibilty catch up game" with their most popular non-free counterparts. They will be standards-complient and Microsoft-incompatible. Maddeningly, standard non-conforming software will continue it's popular ride. The market, after all, is not made up of a majority that can evaluate the benefits of the free vs. non-free alternatives: they get their decision-making input from TV. I've yet to see a television ad for Apache (notwithstanding in the context of IBM hardware and support).
You could've hired me.
Ack...yes, yes...v. bad analogy, but it was only intended to be humourful. Apologies to PETA/RSPCA etc.
Maybe a better one is...the difference between sex between consenting adults trying for a baby and sex between consenting adults who just want to spread some love in the world.
A pre-requisite of a program being Free Software is that the source is open, this is pre-supposed by the 2nd and 4th freedoms. The reason for the source of Free Software being open is ideological.
The reason for "Open Source"(N.B. capitals) software having open source is one of practicality/necessity/development methodology.
She clouds the issue, well aware of the "political" implications of doing so, why? Why not just drop the capitals from Open Source? Or better still, use the respective terms as befits the situation.Instead she relegates Free Software to a footnote and expounds on the "sociology"(hah!) of Open Source software.
Ya know...is all...
If you don't like it, extend it, fix it, or hire someone to do so. Don't dump your personal application requirements on community members who are just trying to share what they have.
So what you're really saying is "hey, you didn't have to pay for it, so just sit there and shut up about how bad it is. We don't care about your problems with it and we're not going to fix it. If you think you know so much, why don't you go fix it?"
Why, yes. That's exactly what they're saying.
And why not?
People ARE getting their very useful stuff for free.
The authors wrote it to handle the problems THEY care about.
It took a lot of work to get it that far. Making it easy to use and fitting it into a common interface style with a bunch of similar problems is a LOT of extra work. Satisfying every critic takes still more - and is often impossible.
If the problem YOU care about is ease-of-use, why DON'T you do something about it, rather than bitching? Source is there. Have at it!
Put in all that extra work, do a GOOD job on it, and the original author might just adopt it into the future mainline and give you major contributor credit. If he doesn't, publish your patches, or write a wrapper. Or FORK the bastard and port his future changes into your fork as he releases 'em. (Either that will be easy, or you didn't make your changes well, which might explain why he didn't merge your stuff.) If your version is enough easier to use than the original, yours will be the one that's widely adopted.
A little constructive criticism may be handy if the authors' designs are awkward to use but easily fixed. But when fixing them would take lots of work, constant whining without contributing labor is just a pain in the butt. And it's more likely to make the author drop the project than spend still more effort changing it to conform to YOUR preferences.
When somebody says "If you think you know so much, why don't you go fix it?" HE'S JUST INVITED YOU TO JOIN THE PROJECT!
Put up or shut up!
And people wonder why average users consider OSS proponents to be arrogant and egocentric?
What do you expect? These are people with exceptional skills who are working, not for free, but for ego-strokes. Of COURSE you get arrogant egocentrics. They're in it for themselves, to make software THEY like. If they make an exceptionally good tool that achieves wide adoption on its merits they've got a lot to be arrogant about.
Get used to it.
If you want it done YOUR way you have to PAY for it - in coin, in work, in resource contributions, or in encouragement. TANSTAAFL.
And if you're going to live off other people's charity, biting the hand that feeds you just makes you hungrier.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
There are a few things that ive noticed that could really improve the visibility of open source software (imho, as always):
.nfo files here, more like a complete - end - all - be - all of information right inside a mini browser that pulls in things like data from google.com via a webservice and www.everything2.com for simple word definitions. Something that could educate joe blow as he went.
a.) SourceForgeMart
an open source client for any platform, that hooks into a "trusted" source, such as sourceforge, and allows joe bloe user to click and install over the web in one shot. I know, i know, they can click on a link, download, find the exe/zip, execute it, config it, and then run it, but if you want to ensure the future of open source, usability for the masses is crucial. MS is going to have a really hard time selling "MS Widget X" when joe blow can just open their SourceForgeMart browser, search on a topic, and click on "Get It", and then be using it in under 30 seconds. the ultimate in on demand computing, and in reality, what comcast/blockbuster want to do with movies. If that were to occur, and the "SourceForgeMart" browser became as common as the web browser (or was incorporated into one), ruling the desktop would not even be an issue.
b.) user interfaces
lets face it, as much as we all love Teh Gimp, its user interface could use some work. It can be clumsy, but as superficial as it is, I really believe that is what is holding it back. I keep wandering back to adobe ps, as much as i hate to say it. User interfaces have to become a focus in open source land. Some people are going to kick and scream "real geeks dont need shiny icons"; they need to face the fact ---
the user interface is the "merchandizing" of the open source world. it is the marketing, the distrobution channel, the shiny salesman that greets the user everyday, and as I've learned the hard way as an entrepreneur, these things are very important if you want to keep on keeping on.
c.) Documentation and User Manuals
when someone else gets something right, you have to tip your hat to them; MS got documentation right with VS.NET; its built in, autogenerated (hate to be the company that was selling that as a plugin before VS.NET, ouch) --- open source needs to take that to the next step, and create a framework that not only plugs into sourceforge/freshmeat, but its complete and integrates itself into those shiny new user interfaces that all you open source people are building after reading point b (sic). I could see it being composed via a web tool integrated into source forge and being delivered via a web inteface/service into the app as needed. And we arent just talking
If someone were to create this standardized documentation and article/help publication framework (ive commercially done something similar...), made a renewed (and even standardized? no?) commitment to shiny interfaces, and wrapped it all up in the SourceForgeMart (TM) browser, I believe thats what they call a "Turnkey Solution"
/Ant
The author gives some arguments why Open Source Software cannot be used by the common people. Is she implying our goal is to achief world domination?
Well, I like OSS, I use it all the time, but I see no reason why non-geeks should do so too. The only really bad thing about proprietary software is that most of it is owned by one company. And that causes problems when it comes to defining standards. But if it wasn't for the proprietary Word, Excell and Windows Media documents: why would we care that 95% of all computer users are using proprietary software? Does it hurt us? Most open source programmers have no advantage by the number of users. TV stations are being payed according to the number of viewers, OSS isn't. When a programmer uses OSS, and he adds code to the project, then we have win-win situation. But if 100 milion simple users use OSS, we're not getting payed, we're not getting any new code, but only millions of mails with questions that are already answered in the READMEs, FAQs or documentation. So to me it's not important that everbody uses OSS, the only important thing is that companies and OSS developers can agree on some standards, so that it's possible, and will keep being possible in the future, for users of different software to communicate with each other.
This is one lame signature, please read the message above instead.
Fundamentals of hackerdom include fixing annoying things, automating everything, and generally trying to be as lazy as possible, while still writing the best software one can write. However, there are many reasons to write software for other people. One of them is cash, but it's certainly not the only one.
You want your local library/university/whatever to have a website (or a better one), but they aren't interested, because that'd cost money, but they MIGHT agree that there's something to be corrected, and they MIGHT allow you to deliver a new one, and you might want to do it for free, just to make the site more usable for yourself.
Here comes the first conflict though. While you ultimately want to please yourself, you have to please the "lesser masses" too, because suchs organizations are not going to install a system which only geeks can use, and even if they did, they probably won't be interested in supporting it. So here, you have to please the "masses" just to please yourself.
Another example would be IRC. You like to chat to people with IRC? Or how about email? You want to handle most of your communication with email and IRC. But here again is a problem. Everybody you want to chat with, whether technical or not, must be able to use (and often install too) an IRC client and an email (or at least one of those). So by implementing a more usable (to masses) IRC/Email clients, you can encourage people to contact you by those channels, and once again, you ultimately have to write software for others, to please yourself.
There are countless examples why it's a good idea to write opensource stuff for not only yourself, because in todays world, we communicate so much. You don't like Word .doc's? Well, the best way to prevent people from using them is unfortunately by providing them with a free word processor which provides some important benefits (to masses) over Word.
I claim, that in many cases, writing usable software for masses can ultimately make life easier for you. So in a sense, you are still writing for yourself, just more indirectly.
Software should be free as in speech, but if we also get some free beer, all the better.
Why am I calling it flamebait? Because of the 5 problems he describes, not a single one was unique to open source software development.
User interface design. I've seen some truly horrendous user interfaces coming out of non-OSS companies. He points to MacOS X as a shining beacon of "UI done right" and I have to agree. But that's Apple. They're very good at it. Not all companies are as good as Apple. Not even all MacOS application developers are that good!
Documentation. He slams OSS as providing a mixed bag of documentation. Non-OSS is exactly the same! I've worked on non-OSS which is poorly documented, and I've worked on non-OSS which is brilliantly documented. In fact the OSS UNIX-like docos blows away the majority of non-OSS UNIX competition. That's one reason why almost all the non-OSS UNIX companies are kaput; their offerings were considerably worse than Linux!
Feature-centric development. Has he forgotten that the bloated-does-everything application was the hallmark of non-OSS development for years? He rightly accuses some OSS developers of repeating the same mistake, but this is a bad design habit being carried over from the largely non-OSS PC OS and PC apps market. It has nothing to do with OSS specifically.
Programming for the self. This one really takes the cake for nonsense. Has this guy ever worked with Cadence? Or Oracle? Or Paradigm? Those apps are extremely difficult to ramp up with so they have the exact same issues that he describes for OSS. What does this specifically have to do with OSS? Once again, absolutely nothing.
Religious blindness. Lest we forget, the term "zealot" was first used to describe Mac users and later Amiga users. I realise I've just invoked Godwin's corollary (the person who first says "zealot" loses the argument) but the shoe fits. All platforms have their religious nutcases. Once again, not OSS specific.
It was a flamebait article designed to invoke angry responses. The 5 problems he listed were not fundamental problems with OSS. If they were, then all OSS projects would exhibit those 5 problems. The fact that some OSS projects don't have those 5 problems is proof that they're not fundamental to OSS development. The fact that some non-OSS projects do have those 5 problems is proof that they're issues with all software development, not just OSS.
What he has described are 5 pitfalls that all projects, OSS and non-OSS, sometimes fall into. If he had rewritten the paper as "A number of pitfalls that OSS projects would do well to avoid" then he would have had a winner. If had even written it as "some OSS projects have these undesirable qualities" then that would be OK. However written in the sweeping over-generalised sense, that those 5 problems are fundamental to OSS and therefore inescapable, it's inciteful nonsense.
A few folks have touched on this, but it seems nobody really wants to say it.
... it was a mess! Since that time the average ability of users has gone DOWN, and Open Source and free software have fragmented much like the VB3 apps.
Whenever you take a collection of small applications and try to turn them into wide-spread, useful tools, you need to change the small applications so they conform to standards and can be used by the masses.
Everything needs to look the same, everything needs to act the same, and everything needs to be done graphically. Yes, the elite know you can hop out to a prompt and do certain things with certain apps, but the regular users don't, and assume the program doesn't do it if there's nothing graphical (and obvious).
Does anyone remember what VB apps looked like with VB3? Everyone was doing their own thing: some programmers used certain tools, others used only basic tools, some programmers used the Form_Load event as their Sub_Main (and basically turned it into a non-graphical program)
Don't get me wrong - standards are boring. They take all the fun out of everything (unless you consider standardization fun). But they're a necessary boring.
Winners tell stories while losers yell deal.
I think the problem with "programming for the self" has mainly to do with the fact that people not wearing enough hats ... no, I mean, people who don't say enough "thank you" to the developers who kindly provide what it is for you to take for granted. Most free software or open source projects are started for the programmer to solve his/her own itch. The audience is narrow, and features are biased. There is much for improvement. However, many users don't express gratitude, yet continue to demand if something doesn't quite work for them. The developers really aren't asking much, but a nice simple, "thank you." After you say that magic word, then you may ask, "but if you don't mind, could you also improve the software in this way or that?" I'm sure the person will be more than happy to do it for you. Remember that nobody is working for you, not even for free. This is not what free software is all about.
Before I posted this comment, I did a search on Slashdot on the word "thank" but found no stories or comments. I'm a bit curious as to why people don't recognize the importance of expressing gratutide.
I'd like to say to all of you, thank you all for creating free software for us to use. And thank you those who created Slashdot.
I'd much like to see that one day, courtesy will become the main driving force behind free or open source software.
I once had a signature.
As a programmer with over 24 years of experience going back to writing code on pads and entering it using on an IBM 029 punch to submit to a card reader under VS/9 on Univac's IBM mainframe clone back in the late 1970s and early 1980s, to using VB 6 and Delphi today, I can say, based on my own experience of both how I have written programs and how I've used other people's, both on Linux systems and on Windows, that the author is dead-on right about the unfortunate problems open-source applications have.
This is a sore spot even on proprietary applications. At one place where I was working, my supervisor (the lead programmer) and I had very serious differences of opinion when I mentioned the book The Inmates are Running the Asylum in which I agreed with its premise that in most cases interface design of applications is being done by people who do not know what they are doing and haven't thought about how the end-user is going to use the application, and in some cases the errors in the way the design of certain applications have been done have killed people! As an open-source application (usually) has even fewer resources than a commercial proprietary one, they tend to be even worse on their interfaces.
When you're writing an application for yourself, you often omit things that you don't think you'll need later, like comments in code, or making the thing look pretty or easy to use. Commercial proprietary applications (generally) have to be easy for the "dumb user" (this is how the typical programmer sees the customer) to work with when they are shown it for evaluation or they won't agree that the product is acceptable and his boss won't sign a purchase order for it, which means it won't get bought (unless the seller knows the right people to bribe and/or blackmail). When the programmer who is writing the code of an open source application is also the primary customer the product is going to be produced as it is even if no other person in the world will ever use it.
This is a universal problem with all software that has been around from the start; programmers in general hate with a passion having to write documentation. The only difference is on an application that is funded by someone they can either order the programmer to write docs (as part of his job), or hire someone to do so. I'm sorry to say that when the program you are writing is a labor of love (as opposed something you do because you're paid to get it accomplished), the production of documentation tends to be like getting a man to be responsible for using contraception during sex: it stops the flow of the action and it's not as much fun!
Note that this doesn't mean commercial apps always get good documentation. The stuff there often sucks as bad or worse than some open source apps.
The lessons of history teach us - if they teach us anything - that nobody learns the lessons that history teaches us.
When I fixed my code last week, I half assed it. I only put bounds checking on one pointer, figuring that management didn't care what network neighbors would exploit.
Seriously, motivation in commercial software is a huge problem too. As a business, Microsoft only pursues security to the extent it increases profit. The mass market has demonstrated that it will mostly tolerate insecure code and so M$ keeps churning out--you guessed it--insecure code.
With their resources, Microsoft could have every buffer overflow fixed inside of a month. But currently, the competition (open source or otherwise) isn't enough of a threat to justify that expense.
If you want Windows fixed, get your friends to install Linux.
From the article:
The systemic, fundamental flaw with her analysis is that there is no united "open source" goal from which to be held back!
The assumption that all free and open source developers share the principal goal of supplanting or competing directly with more traditional software is just wrong.
For some projects, it may be true, but clearly not for others. Do the authors of ghostview want to supplant acrobat reader? I don't think so. Do the authors of the Gimp want to compete directly with photoshop? Perhaps.
Do Star Office and Open Office developers want to erode Microsoft's share of the office-suite world? You bet.
Do the mingw people want to compete with visual C++ (or whatever Microsoft's latest c++ compiler is called)? I don't think so.
In general, do you think GNU people want to compete with anybody? I don't. I think they just want to be free to create the kind of software they like.
It seems to me that there are a huge variety of goals out there, and in many cases, competing with commercial software is not one of them. In other cases it is. But in my opinion only newbies and idealists believe that free software should try to or will eventually take over the world and put closed software out of business.
What free sofware does is put pressure on commercial software. For example, I'm sure one of the reasons that Microsoft fixed the TCP/IP stack in its newer OS's is because the Linux and BSD stacks are so good. (In fact, I've heard people say that Microsoft just lifted the stack from some BSD variant. I don't know if that is true.) Microsoft also took a lot of heat for stability, once again due to the stability of various Unix-like OS's running on the same hardware. This has forced Microsoft to improve. Finally, now, Microsoft is taking tons of heat on security. We'll see how they react. (In my opinion, this already makes Linux and the BSD's a complete success. They forced Microsoft to compete!)
And of course, Linux is sort of like the blob. Microsoft tries to fight it off on some narrow front, but it just expands around that area and pushes in somewhere else. Whether it's servers, PDA's, the embedded market, or 64-bit systems, or gaming consoles, Linux is there, making life difficult for Microsoft, not out of malice, but just because it is what it is.
Anyway, just my $0.02.
MM
--
By including this sig, the copyright holders of this work or collection unreservedly place it in the public domain.
The author of this article fell into the very temping trap of least effort: not actually giving any examples whatsoever to back up her points. The only example (Firefox) is basically an admission that her points are not universal.
What's more, it is easy to argue (with examples) that all of the points in the article except for "programming for the self" are far, far more prominent in the proprietary software world than in the open-source software world. As for "programming for the self," there isn't an example and it's only true in a small subset of open-source projects.
So what can you expect? With no examples, no programs even mentioned in passing, and basing the entire article on a seemily-fictional piece of software called Project X... there's simply no content.
Yup. However, (as I'm sure the poster you're replying to understands), for proprietary software, arrogantly chastising the user and slapping them around a bit is a viable business model. Just ask Microsoft....
It is that attitude (the one exhibitted by the poster you were replying to), that that stymies the growth of open source software. Combine that attitude with lousey code and non-existant documentation and you have a death knell... Gates would be proud.
"The Internet is made of cats."
To quote the article: The result is . . . the rest of the world begins to associate "Open Source" with software that's only accessible to the technocratic elite.
I say, "What's wrong with that?"
Answer: nothing, if the software is not intended for use by anyone but its authors and the elite.
However, if we want "the rest of the world" to adopt and love an open source solution over an old proprietary one, then inaccessibility is bad. You cannot convert the world to the open source gospel if you water you give them to drink of leaves them thirstier than before. You must give them to drink of the water of eternal . . . no, wait -- that's a _different_ gospel.
But here's a point: Resisting efforts to legally erradicate open source software requires popularity. If our numbers are small enough, our rights can be taken away.
"We reject as false the choice between our safety and our ideals." --The American President (20.1.2009)
I think your analogy here is flawed. I have a friend who likes to rebuild automobile engines. He's very good at it, and very into it. He can and does go on and on about the merits of this model, this engine over that... stuff that I care little about, and cannot claim to fully understand. What I do know is that when he has "built" a car, it will run and run well. I can drive it. I can accomplish my own purposes with it.
I would rather have him give me a beater that he has rebuilt than go out and buy a new car. Not only is it cheaper, but I have a much higher degree of confidence the vehicle than I do in one that just rolled off the assembly line. And chances are it will perform better.
He does what he does because he likes it, often at his own expense. He feels he owes it to himself to do a good job. It's a point of pride. He does not expect me to learn to rebuild an engine in order to drive one of his cars, although if I want to rebuild an engine, he'd be happy to show me how.
If I apply those precepts to software development, I produce software that is "driveable" by anyone with basic driving skills. It's not about the Open Source community "owing" me anything, it's very simply that if they produce something that is too much hassle to use, no one will use it. Some developers don't have a problem with that. I personally think it's just short-sited and basically ignorant. If you don't care about your users, go back to coding for windows. Your product will be short-lived, and useless to the majority of the community, anyway.
Bottom line is, I don't think we need fewer users. I think we need fewer developers. I don't need L33Tist crap software, free or otherwise. It's simpler just to write it myself than to clean up some kiddie's mess.
If there is going to be a body of usable Open Source Software, it's not going to be produced by a bunch of whiners crying "I don't owe you anything", it's going to be produced by developers who take pride in doing a thing right. As in any other field...
"The Internet is made of cats."
I'm not sure how this relates to the ease-of-use issue. I can see how having multiple small well-designed programs can solve a problem better than one large monolithic program. But that doesn't really scale to the GUI world.
For example, I'd rather run Thunderbird to read my mail, news, and RSS feeds (through an extension) all in one place than run a mail reader, a news reader, and an RSS reader seperately.
Similarly, I'd rather run Gaim than Yahoo! Messenger, AIM, ICQ, and MSN seperately. I get a consistent interface, and I use fewer system resources.
How do these things apply to the whole "small tool that does one thing and does it well" paradigm?
WeRelate.org - wiki-based genealogy
1. Answer: nothing, if the software is not intended for use by anyone but its authors and the elite.
This is generally the case from the perspective of people who write software to solve a particular problem.
2. However, if we want "the rest of the world" to adopt and love an open source solution over an old proprietary one, then inaccessibility is bad.
True, but those doing the evangelizing are often not those doing the developing! Granted, there are some exceptions (Desktop development, the whole GNU effort), but high-profile evangelizing generally is divorced from development -- those ranting the most are often those developing the least and presume to suggest what developers should do. One can "suggest" all they want, but unless they have an agreement with a developer, that's all they have a moral right to do.
3. Resisting efforts to legally erradicate open source software requires popularity. If our numbers are small enough, our rights can be taken away.
Well, not according to the U.S. Constitution (if you happen to live in the U.S.A.), even as it's being Patriot Acted to death. But the point is a good one. Still, a small movement tends to be not worth the while to attack, and a large one is beyond legislative attack. The vulnerability occurs at the midpoint, just when something is starting to "take off".
I think the open source movement has advanced beyond that stage -- it offers enough cost savings to cost-sensitive organizations to be "kept legal". IBM isn't in this for the philosophical aspects, you know.
The greatest danger, though, is in an attack on the free software movement. By driving a wedge between open source and free software, one can vilify one as extreme, while grudgingly tolerating the other. I can imagine laws passed that permit certain combinations of open and closed code that the GPL might arguably forbid, under pressure from industry to "mine" GPL-licensed software to "reduce costs", and stave off "layoffs". Yes, this would likely be illegal in the context of present copyright law, but who says the law is internally consistent?
It is espescially dangerous when people are quite willing to use non-free applications on free operating systems, or vice-versa; or when the notion that a closed kernel module might not be acceptable to a future kernel license causes concern to those who want to use it.
Personally, I think these kinds of combinations of free and non-free software are acceptable -- the GPL draws quite a useful line, as unclear as it may be when it comes to the notion of plugins and non-free dynamically linked extentions to free code (and vice-versa). In any case, people will want to make them for reasons of sheer convenience. Nevertheless, the right of people to use the GPL, or an even more stricter free software licence, if they choose, should not be infringed.
But, I am not convinced that making open source software popular will help in this area -- it's a philosophical and moral debate, and not a pragmatic one: open source will always be more convenient that completely free software (particularly that with a license stricter than the GPL 2.0 -- GPL 3.0, perhaps?) simply because it admits a coexistance with non-free software, albeit perhaps subject to GPL restrictions. Just look at the popularity of Debian vs. Red Hat vs. Suse distributions. Debian, true to the free software philosophy is the dark horse, and I'm not entirely convinced that it is due to UI ease of use issues.
So, while I don't think that open source software is going away any time soon, I do think that free software might come under the legislative attack you descrbe, and the force to counter it would be philosophical argument not popularity, since few would understand the difference between the two. While popular open source software can help the free software movement (and I think open source is popular enought to survive legislative attack), I don't think it will be enough to protect it unless the philosophical differences between the two are understood.
You could've hired me.