What Does It Mean To Be an Open Source Author?
lolococo writes to tell us that Laurent Cohen, founder of the open source project JPPF (Java Parallel Processing Framework), has decided to share what life is like for an open source contributor in general and little bit about what that means. "There came a time of coding, releasing, coding, releasing. The project started gathering some momentum, as a small community of users started to use it, but why was it not working in this case, or why did it not have this feature, or how could I do this, etc...? You get the drift. Oh my, now I had to start interacting with other folks! What was I to do? That started a (thankfully short) period of intense existential self-questioning. What was the purpose of this project? Why did I actually open-source it? I resolved this by deciding unilaterally that it would be a free contribution, for whomever would be interested enough to look into it. I also decided that it was my personal responsibility to support these brave folks into using the project, and to make it, as much as possible, a happy experience for them."
I have come down thoroughly on the side of The Cathedral in my development methodology, because I feel that The Bazaar doesn't serve the needs of end-users. It unnecessarily subjects them to buggy, incomplete software.
I can see how The Bazaar would work well for highly technical users, for development tools, text editors and the like, but not for an audio application.
I was up all night last night trying to figure out how to use OpenOffice to print address labels from a database. When I couldn't get it to work, I downloaded the 3.0.0 Beta, only to find that all the same bugs were still there.
It didn't appear to me that the label printing function had been touched by the developers at all between 2.4.0 and 3.0.0, with the exception of a native OS X print job dialog for the Mac version.
Folks, this is a supposedly mature, full-featured and commercial-quality office productivity application, published by one of the world's largest computer companies, yet one cannot do even such a basic task as printing labels from a database?
That's just inexcusible!
I've done quite a lot of work on Ogg Frog, but it's still in a primitive state, and there are lots of bugs. I fear that if I released it, not even the version I have now, but future snapshots, it would get uploaded to all the shareware sites, where it would be downloaded by unsuspecting novice users, who would find it unpleasant to use.
That wouldn't serve their needs, and further, it would give me and my project a bad reputation. Quite likely I wouldn't get a second chance: my wife now flatly refuses to use Free Software, having had such bad experiences herself with Mozilla, The Gimp, and OpenOffice.
I know that I have the greatest chance of success if I wait until I have something rock-solid before I make its first public release.
Now, that doesn't mean the software isn't being tested, or that real end-users aren't giving me feedback. I have a small circle of testers, both end users and other developers, who are testing it for me - privately.
And that's how I think every Free and Open Source Software project ought to be run.
It does mean I get a lot of crap for not releasing yet, as evidenced by Kuro5hin's A Trolled Englishman. But it's a small price to pay for what I am confident will be my ultimate success.
Request your free CD of my piano music.
I believe there are two types of open source authors. The first one is the hobbiest. I think the author of this article belongs to this group. Sort of a socialistic approach. Do work for the benefit of the community.
The second is a more capitalistic reason behind open source. Companies are big sponsores of open source. Companies can derive revenue through selling support, selling hardware or supporting an open source piece and selling a close source piece of software. Ubuntu, mySQL and google are for profit companies that support open source and derive revenue from it. For example linux kernel modules are often open sourced, so hardware manufacturers can sell more parts. Often open source advocates overlook the benefit from for profit companies that build a business around open source and in some instances alienate them. The GPLv3 for example has a clause often refered to "anti-tivoization", yet they followed the rules of the GPLv2 and release
the source code to the users.
My point is that the life of a open source contributer isn't always lonely guy in a basement somewhere turning out code hoping to get recognition. It could be a cushie desk job at google.
I mainly write tools dealing with games and game related file formats (used for mod creation, amongst other things), and some programs on the side regarding audiovisual analysis.
While some may find the release early, release often model to work, it's too incomplete for me and I don't use it myself. What I do is:
- Do some research, grab some documentation
- Write the program to be fully functional, commenting the functions along the way
- Release the code along with the program once it is finished and thoroughly tested
- Sit back and see if any users are experiencing difficulties or come across bugs, and release the new version of the binary and source code with the fixes/changes
In short, I believe in releasing complete, stable software, and providing the source for it if anyone wants to expand it or see how a certain part is done. And, going along with Crawford's issue with OOorg, a thing like that will not pop up -- because the program wouldn't be released half-finished (let alone be in it's third version!).For me, it's 100% self-serving. I used no license whatsoever, so that's the best I can expect.
Whenever I try out an app on a handheld that has some features that look suspiciously similar to my work, it makes me well up with self-delusional pride that, just maybe, that's my 45 minutes of actual work in there somewhere.
I've never written software (IANAP?) so I can't relate directly, but I've seen the term "author" used for someone who writes code before.
I'm curious: is this the best term to use? Is "author" a term of art in the the software world? Do those of you who create software prefer any other descriptor? Why "author" and not "composer" or "creator", "programmer" or "engineer"? I'm not aware of the various strata of people who code, but I'm pretty sure that the world of software "designers" shakes out categorically just like other fields. In music, there's "composer", or "songwriter" (which mean very different things) and "engineer" and "producer" (which can mean all sorts of things). In film it gets even crazier with "production assistant" and "producer", "director" (which can overlap), "set designer" and "art director" which can mean lots of different things, too. And of course, "best boy" which turns out to mean something quite different from what I thought when I was a movie-loving teenager.
So, would Laurent Cohen also use "author", do you think? I'm really interested in hearing from you software wizards and conjurers.
You are welcome on my lawn.
And I suspect if they included all those real-world lessons that we'll see far less CS graduates, from the sheer boredom. But I wish they had included those courses in my CS curriculum because now I would be doing something else, other than programming. I realized after I started working that programming for a small semester project is very different from programming in the real world and if I had gotten the entire picture I would have said, "this looks interesting, but there is too much stuff other than programming that I have to do that I absolutely don't care about... I think I will pass." But of course not too much highly ranked CS departments will allow this because it's not theoretical enough.
I think this is also why there are so many open source programmers, because their day job just don't allow them to do what they love, or they don't have a significant role.