Posted by cajo
on June 27, 2004 at 4:21 PM PDT
The recent java.net milestone of its 1000th project started me thinking. I am proudly a free (or open source) software developer. For those of you considering starting an open source project; I'd like to offer you the benefit my experiences. I also welcome and invite the java.net community, both project developers, and community members, to share their experiences.
Why become an open source developer? I think there are probably as many answers to this question as there are developers. I can only tell you about my decisions. I have been actively developing software professionally for nearly twenty years. I feel, as it is with many of us; it is not only my profession, but also my passion, and my hobby. I delight in learning useful new technologies. In the mid-90's, Java struck me like nothing I had seen before. I began to realize that the network could actually become the computer! (If anyone still remembers that slogan)
I was a very enthusiastic, and early adopter of the nascent 'object-oriented' technology. Having done a lot of assembly language network programming, I immediately saw the benefits it offered in many cases, compared to modular 'procedurally-oriented' programming. I saw in the Java environment, an opportunity to turn networked physical machines, into logical 'objects'. I spent several years actively exploring, and developing the concept; and it steadily continued to astound me. I searched the net exhaustively: did such an approach to simple dynamic clustering of machines already exist? As far as I could tell, it did not. For a moment, selfishness set in; I thought hey, I could lock this down, and cash in!
However, after a lot of consideration, my personal motivation to open the source was that the benefit realized by greater cooperation, was more valuable to me than financial gain. I thought I was already a lucky guy, enjoying an excellent standard of living, and standing on the shoulders of giants. I felt a need to 'give-back', and to help advance the state of the art. I also thought community input would make the framework even better; as I certainly do not have a monopoly on good ideas. Besides, I personally knew I wouldn't have the heart to exclude users of this technology, though I could willingly fight to keep it free for everyone.
Once I decided to create a project; a strange multitude of concerns set in. First I felt a strong sense of urgency. I worried that if I delayed, some company might come up with a similar technique, and assert proprietary rights. I worked day and night, on my most dreaded of tasks: thorough documentation. I knew without that, the project stood no chance at all. Next I realized that even more importantly; people would need an example: simple, extensive, and fully functional. I found this to be even more challenging than the documentation!
Finally: My project site was ready.
Next came fears to which I think every open source project leader can relate:
- Would people flame my work?
- Even worse; would some company steal it?
- Much worse; would no one care?
Fortunately, I can say none of these came to pass. To my delight, initial reception was very positive. However, the challenges were far from over. At times, community input was so active; I worried that I would not be able to keep up. I was after all, doing this on my personal time, and for no money. These typically seemed followed by periods of such light activity; I thought the project had died altogether.
My next issue was how to get the word out; especially with no marketing budget. Every successful design requires mindshare, every bit as much as innovation. Adopting a framework requires not only awareness, but effort on the part of developers. Here I believe open source excels on both sides of the equation: Projects have to be genuinely interesting to justify so much effort, and the community is actively looking for good new ideas.
Developing an open source project requires a lot of time and effort. It certainly is not for everyone. I believe it is as challenging as bringing a commercial product to market. However, if you have an interesting idea, and community spirit, I unhesitatingly urge you to do it. I strongly encourage everyone to investigate, use, and contribute to open source software. I think it is both a social responsibility, and our legacy. As a project owner, I feel deeply indebted to my project's contributors, members, and users.
Rest assured, you will find me working on my project , for the long haul.