Monday, March 28, 2011

When to merge open source projects?

Example: 2 of our top 3 users are working in almost equivalent projects (I don't know them in depth, maybe I'm wrong):

Marc Gravell's Protobuf-Net

Jon Skeet's DotNet-Protobuf

Jokes about Jon Skeet apart, and dreaming with an prideless ideal world (sorry guys, I am not accusing you of being arrogant, is a fact that every programmer must defend his own code), wouldn't it be a great opportunity to join efforts?

I am not saying that the community should decide what an individual must do, I just want you to raise pro and cons of merging projects, and what projects must have to be subject of such analysis.

From stackoverflow
  • Starting a new project without a thorough research of the available solutions and without taking into serious consideration the possibility to join an existing project, is something that the community should frown upon more emphatically. Maybe a programmer's education should include some discussion on the cost of effort duplication.

    Having said that, experimenting with different approaches to solve the same problem is healthy, and once a programmer has some toy code, we should thank him for making it available to the public regardless of the existence of similar projects.

    I think that the authors should seriously consider a merge if:

    • one design has proven clearly superior to the other
    • one community is being more active than the other
    • both projects share the same ideas on future directions
    • the work required to merge the two codebases is feasible
  • Merging should happen when it is overall beneficial. For example, if either or both of the projects:

    • Are too weak to survive on their own (not enough active development to keep up with technology changes); or...
    • Could provide good synergy through overlapping (i.e. not fully identical) functionalities.

    However, there isn't anything wrong with having two strong projects that both do the same thing - it can help to encourage innovation as they try to be better than each other.

0 comments:

Post a Comment