[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