Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Recently I was looking at an open source project to contribute to however after going through the ugly code base (which seems to break quite a bit) and reading some things about the current maintainer I decided it would be a good fit for me.

Right now my thinking is to just start a new project with the same goal but using a different set of technologies that I think fit the problem better, the only reason stopping me is avoiding second system effect given the fact the system is live and works.

I could contribute to the other project and in doing so avoid essentially creating two different solutions to the same problem or I could solve the problem the way I think it should be solved and then see which system gets more traction. Is there some prior art to these circumstances that I should be aware of when considering this decision?

share|improve this question
Why are you wanting to contribute, why start from scratch? If its for learning, great go ahead. If however you think a different tech stack and starting from scratch will make a better product, I suggest some reading up on "Things not to do" and "Legacy Code Issues" before diving in. (Hint - Every programmer things the code he is looking at is unreliable crap and that he can do much better using a different/new technology stack.) – mattnz Feb 19 '13 at 22:07
up vote 1 down vote accepted

Have the best of both worlds. Fork the project. As long as you're not wanting to switch to a more permissive license(such as GPL to BSD), it's all legal. This is what open source is all about!

By forking:

  1. You'll have the existing project as a starting point
  2. You have complete control over the project
  3. You can "contribute back" your changes to the existing project if they'll accep tthem
  4. You can brand it the way you want
share|improve this answer
Thanks for the response, a couple of points : Basically I would pick a different technology stack so contributing back would be impossible. Essentially it's more about starting a new project to solve an existing problem solved poorly or trying to make the existing solution better. – ahjmorton Feb 19 '13 at 19:23
@ahjmorton well, it depends on how bad the existing solution sucks and how much time you have to get a new solution to a similar state of "working" then. No one can answer this for you – Earlz Feb 19 '13 at 19:26
Thanks, that was the information I needed – ahjmorton Feb 19 '13 at 19:42

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.