[computer-go] Open Source project

Ron Goldman rgoldman at cs.stanford.edu
Sat Aug 5 16:00:02 PDT 2006


On Aug 5, 2006, at 4:56 AM, Mark Boon wrote:
> Another thing that became clear to me quickly is that I had thought  
> about this project almost entirely in computer-Go technical terms,  
> whereas there are a large number of organisational and project- 
> management issues to address as well. To do this well, I'll need to  
> do quite some organisational work first.

Welcome to the world of open source! For the last 7 years I've been  
advising various project groups at Sun Microsystems in how to  
contribute to or run an open source project. At the first Jini  
community meeting, one developer remarked, "Is Jini a technology or a  
sociology experiment?"

Karl Fogel's book is a great resource to those wanting to do open  
source. If I may also recommend a book I co-wrote, check out  
"Innovation Happens Elsewhere: Open Source as Business Strategy"  
online at http://dreamsongs.com/IHE/. Our book is more oriented to  
businesses thinking about participating in the open source world, but  
check out the Licensing chapter or the ones on "How To Build  
Momentum" & "What To Avoid".

One of the key points about open source is that it is an engine that  
allows a community of people to improve some artifact. Open source is  
like evolution, which means that it requires something that's alive.  
Many open source projects are started by someone with an idea they  
think is interesting. If enough other folks also think the idea is  
interesting they will join a discussion, contribute their own ideas  
and refine them. But in most such cases the project dies because no  
one contributes any code, just lots of talking.

The most successful open source projects start by someone  
contributing a working program that is useful to a larger group. The  
original contributor has a vision of where they want development to  
go, and is willing to put in the effort to develop in public. The  
general rule of thumb is that if a 1000 people use the program, maybe  
100 might participate on a mailing list, 10 of which might contribute  
bug fixes or minor enhancements, and, if you're lucky, 1 or 2 will do  
significant work---though maybe not along the roadmap the original  
developer envisioned.

So I suggest you start your project around your already public  
library; it might eventually be entirely rewritten, but for now it  
gives people a real starting point to work from. Then as a next step  
building enough of a framework for a (dumb) Go playing engine using  
the library gets you to having a "complete" application that people  
can then tinker with. Participation in the Mozilla project took off  
only after there was a working browser---the original Netscape code  
didn't compile into a running browser and as such was not that  
attractive. Open source development works best when there is a low  
barrier to entry and people can get the code, make a small change,  
and see the results.

Best of luck to you.

-- Ron --

p.s. Licenses can be a religious issue for F/OSS, just as the choice  
of programming languages can be for developers. You have specific  
goals so starting your project under a BSD/MIT/Apache license, using  
Java, seems most appropriate. Some folks may choose not to  
participate because of your license/language choice, but that will be  
the case no matter what you choose.



More information about the computer-go mailing list