I’m one of two developers on an open source project. I’m going to try to be as vague as possible about the project, because the stimulus of this post is some developer politics that aren’t particularly important. However, some background is required for some issues that I wish to bring up. I’ve been a part of this project for about two months now, and have gradually been introducing bigger and more intrusive changes. Recently, the other developer has begun to disagree with some of my commits, and as of today has informed me (in no uncertain terms) that I should stick to certain key areas of the source code, and avoid touching anything else. If I have changes I want to make outside of my designated area, I should send a patch, which he will modify to his satisfaction and check it in.
Personally, I find this grating. I’ve poured my soul into this project for the past two months, and I feel like I’ve got a really good handle on the code base. I’m happy to discuss changes I want to make or have made, but this feels like I’m on probation because my attempts to improve the project conflicted with the lead developer’s vision.
Let’s ignore whether either of us in the right here, and concentrate on what possible courses of action I have available to me. I can:
- suck it up and keep working for the project’s benefit
- pout and refuse to contribute under these conditions
- fork the project, and take control of my own destiny
Option 3 is often touted as a fundamental right of any Free Software developer. Since the code is completely open, anyone can take a snapshot of a project and make it their own. This is a drastic measure, but sometimes a necessary one in cases where a hostile developer is actively stifling further work. Leaving aside the question of the right choice in this situation, I realized today the problem with forking that is not considered by most people who evangelize Free Software’s benefits: the brand.
The project of which I am a part has a brand. We receive 20-30 downloads per day, there is a Sourceforge page, a bug tracker, user forums, and more. The lead developer is in control of all of this, meaning that a fork will lose it all. This severely limits the efficacy of a fork – why bother working on something if nobody’s going to use it? Any user will almost certainly find the original project before coming across my fork, so there’s precious little motivation for me besides “I want to be my own boss.”
While this is an isolated incident, and I haven’t spoken to anybody else about it, I would be interested to find out whether this is a legitimate concern for other projects. The right to fork is great, but it’s wasted if there’s too much tying you down.
Posted on December 7th, 2008 by Josh Matthews
Filed under: rants