Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question

migrated from stackoverflow.com Nov 12 '12 at 13:20

This question came from our site for professional and enthusiast programmers.

marked as duplicate by ChrisF Nov 12 '12 at 15:27

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

add comment

3 Answers

up vote 8 down vote accepted

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.

share|improve this answer
    
+1, I completely aggree. Once a piece of software works, other developers can reasonably improve it (fix bugs, write extensions, etc.). But while it is still in an early stage, it's very unlikely that anybody but the original developer(s) can and will provide useful input. In the worst case, there is even some ambiguity where the project is heading (do we work on a SAP or a Quicken replacement?). –  user281377 Nov 12 '12 at 15:11
    
Thanks, that's great! I hadn't even considered other options like private development. –  QuasarDonkey Nov 12 '12 at 20:01
add comment

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.

  1. 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.
  2. 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

  1. 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.

share|improve this answer
    
Thanks. There is a demand for the software, and I already have some volunteers. I'm more worried about the design/architecture not being ready yet, and then being locked in to flawed design for some components, since much of the code is still prototype. –  QuasarDonkey Nov 12 '12 at 3:17
    
Then, this is not about open sourcing the code. It is more how you design the software. Don't worry for showing the world even you know the code is ugly. Because... no one will care :) People are more concern on end product, not code. –  Cheok Yan Cheng Nov 12 '12 at 3:21
add comment

You should open source early (yesterday) and commit often.

share|improve this answer
    
+1. But note that this alone will not help with "not feasible for me to complete the project alone". You'll somehow need to attract other people's attention. (Open sourcing it seems like a necessary precondition) –  Thilo Nov 12 '12 at 2:46
    
why do you think so? –  gnat Nov 12 '12 at 13:46
    
-1. At least give a small motivation. –  jgauffin Nov 12 '12 at 15:21
    
I think that an edit did not make it over with the transition; oh well. –  Skylar Saveland Nov 12 '12 at 22:07
add comment

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