Forks are Evil!!!!11eleventy one

Yesterday I noted how good and useful forks in Open Source Projects could be.  Well, it turns out I was horribly wrong and I'm using this space to admit it:

Forks are the highest order of evil and a plague on our society.

First, it's a way to divide the attention of the community.  Instead of having a single project/effort to watch, the community has to evaluate both and figure out which one works for them.  If there are feature differences – or module support differences – they'll have to figure out which ones do or don't work… or worse, which ones partially work.

Next, it could introduce an unfriendly competitor to your team.  How the fork comes about is a key consideration.  If the fork occured because the project is dead/inactive, that's one thing.  If the fork is an exploratory branch that goes off on its own with the intention of re-merging someday, that could be useful and beneficial. If the fork came about because of an internal power struggle, fundamental difference in strategies, or just a personality clash in the team, the fork will not be accepted positively.

Finally, a fork can split the team itself.  If the fork came about under poor conditions or because of a personality clash, the team may take sides and split accordingly.  This could make a contentious situation and break things unpleasantly.  Things that may normally be taken as "cooperatively-competitive" could be taken as vindictive and petty.  Team members that were formerly active in the forums, mailing lists, etc may have their access revoked and be actively blocked from any access.  Depending on how much of this spills into the public and/or happens on public forums, it can reflect poorly on whichever team is considered "core".

Then again… maybe forks can be a good thing.

Are you interested in API Design? Check out our new book "A Practical Approach to API Design." In it, we cover the basics on why you might need an API, how to get started on modeling your API, and finally some design patterns and anti-patterns to be aware of. Available now from LeanPub