Open Source for Dummies?
GNUpowerSoul asks: "I have been working for several years on a large open source library. Ever since we made our first public release three years ago, we have found that the majority of our users seem to have no experience whatsoever with open source ideas and conventions. We have had to dumb down our documentation considerably (to the point where we have multiple pages to describe in excruciating detail the usual 'configure; make; make install' step). Has anyone else had experience in how to deal with a user community who doesn't understand the 'normal' practices for open source projects?"
get rid of the ./configure, make, make install, and change it to a simple "install" script that handles all those tasks automagically.
The usual 'configure; make; make install' step should not exist! This is the single most awful thing about Linux. God help the user that has a dependency problem.
Binaries should just slide on in. At worst your install program should do any voodoo required.
Ready to be modded into oblivian now,
Bill (who started on V7 Unix thank you very much)
bamph
GNU software installation procedures are the least user-friendly of all those I've used. They generally go like this:
./configure
./configure
./configure
./configure;make;make install recursions.
Download software.
Search for documentation - find incomplete and poorly written docs that assume too much.
research and correct 15 badly documented error conditions.
identify 3 totally undocumented errors.
join project mailing list and post question.
be roundly flamed and referred to FAQ
post references showing errors are not documented in FAQ
be roundly flamed and referred to list archives
search list archives for several days
post again asking for specific references to archives
Acerbic but kindly guru finds comment written in swahili that is only in the CVS version you can't access, and translates it for you in a private Email.
remove a single character from the configure script
edit the makefile to correct unwarranted assumptions about file locations, system capabilities, network architecture, etc.
make
correct typos introduced by prior editing (D'OH!)
make
research and correct 7 errors caused by missing libaries (these libraries are normally required only by Welsh Morris dancers, but for some reason your GNU software won't compile without them).
make
research and attempt to correct 3 errors caused by having a different version of gcc than the software authors.
make
give up on correcting the errors and go download the precise version of gcc used by the developers.
make
cheer like nobody's watching, which they aren't because it is five O'clock in the morning.
make install
Congratulations! You have sucessfully built your GNU software. This amazingly powerful software will now run incredibly smoothly and accurately for unbelievable lengths of time. (Unless it's a 2.4 linux kernel, in which case it'll be obsolete by Monday when the latest remote root exploit comes out, or whenever Linus decides to replace a major subsystem wholesale in the middle of a "stable" kernel series.)
After a few years of living comfortably with your smoothly running, reliable, low maintenance GNU software, you'll break even on the pain and suffering quotient.
I recently configured heartbeat and I've done most of the uber-GNU utilities that don't deign to have man pages (info is so much better, the only way it could be more user friendly is if it required all input in Common Lisp) so it's just barely possible I might have some idea what I'm talking about. On the other claw, I may be stark raving bonkers from too many
This is a bit of a problem for open source, because most open source developers don't really think about end users (and if they do, think about them as "lusers"). And if they do, they tend to think the end users are as smart and experienced as they are, which is seldom true. So open source programs tend to get written for, well, programmers. If they work for other people too, that's viewed more as an added bonus that a requirement. I'm not mentioning this simply as a rant, but because you may be suffering from this yourself. And, more constructively, thinking about your program as a whole in this way may help you to improve it even more by making it useful to an even wider array of people.
You've just discovered that the people wanting to use your resource arn't the same people you expected to want to use your resource.
Creating documentation to meet the needs of your users is educating your users, it isn't dumbing anything down.
Go here to create your own Slashdot dis