Possible Duplicate:
Is it OK to push my code to GitHub while it is still in early development?
I’ve been working on a hobby project for a few months now; it’s clocking in at over 15000 source lines of code. A number of people have expressed interest in joining development, and I have full intentions of going open source, since it would not be feasible for me to complete the project alone. I’m just not sure when to open-source it.
For context, I’ve notice many successful open source projects, such as the Linux kernel, had considerable work done before they were open-sourced.
In my case, I’d been planning on open-sourcing it after I complete all the underlying libraries and overall architecture. Is this a mistake; should I just release it right now?
I’m worried that since certain critical underlying components haven’t been finalized, if people build a large codebase around them, it will be very difficult to change or fix things later. On the other hand, it’s a very large project that will require multiple developers to complete in a reasonable time.
So when is the right time during development to go open source?
Preferably, I’d like to hear from some folks who have started their own projects.
0
I’m going to go against the consensus here and suggest that now is not a good time for open-sourcing this project.
The reason why is that the project is quite clearly not yet in a “fit for stated purpose” condition; if you open-source it now you will be inundated with requests along the lines of “component XYZ is not working, fix it please”. It doesn’t really matter if you’ve stated this up-front, you’re still going to get these, and they’re going to detract from whatever work you’re currently completing on it.
Other requests you’re going to get will be of the “plz send codez” variety, as well as a fair mixture of “your project is great but it would be better if it included component ABC and this is so easy to implement it’ll only take you 5 minutes and everything will be better then” (ha!) – you’ll get these anyway even after you release a full product, but they will be especially annoying now.
None of this is denying that open-sourcing early is a good thing; just that for your project where it’s currently at, that boat has already sailed. So if you’re already past the point at which you can open-source as early as possible, then it’s better to hold off a little more.
Options available to you now would include battening down your hatches and bringing things to a reasonable working state before going public (but be careful this doesn’t take too long), doing some source-code-only releases, or inviting interested parties (and you’ve already got some – that’s great!) to join in a private development effort until such a time as it’s ready to go public.
2
I started JStock – Free Stock Market Software few years ago. My advice is, Open source when you get started. Don’t wait!
By open sourcing it early, you will have the following expectations.
- You are given chance to publish your project at a high traffic website like SourceForge.net. (I would recommend SourceForge over GitHub, as it focuses on publishing open source project. GitHub is more focusing on code collaboration) It helps to gain visibility. Your project starts to attract more end users, without too much cost.
- End users will be more forgiving, and trust your software, if it is open source, compared to closed source. With that, you will attract more end users.
There are some catcha. Open source early doesn’t mean you will attract more contributors. Working on open source doesn’t have direct monetary reward. What open source contributors are really looking for is
- A software platform, with good number of end users, which can demonstrate their software development skill. Open source developers don’t work for free either. They need something in return. If not monetary, they need recognition and honor. An open source project with good number of end users able to deliver those.
Hence, attract end users first with a reasonable good product, then attract good contributors to build amazingly great product.
2
You should open source early (yesterday) and commit often.
4