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

Long story short, I've spent the last two years in an entirely new career, transitioning from academia to a data analyst role (working towards a data scientist). Before starting at my current company, I knew next to nothing about coding, save for teaching myself SQL for a few hours per week over a couple of months. Besides SQL, I have since become conversant in Perl, have used PHP a bit here and there, and have made some headway into learning other languages (primarily Java and C). So, I still have a lot of catch-up work to do.

In order to teach myself things, I've built a few side projects--a lot more sophisticated than "Hello World, my name is $name.", but not as complicated as, say, Minecraft or a device driver. I'd like to release the code for them in order to learn from constructive feedback and to build a portfolio to sit alongside my resume. However, a lot of these things are works in progress and, to be honest, I feel some trepidation at putting code out there for all to see that's not completely, 100% "done" and polished.

Am I worrying over nothing? If not, is there some minimal polish threshold a project should have before releasing it as open source?

share|improve this question

closed as primarily opinion-based by Ixrec, durron597, GlenH7, MichaelT, Snowman May 23 '15 at 4:12

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 5 down vote accepted

The things you need to worry about are:

  • Can I build it in one step?
  • Is there a clear description of the purpose for the project?
  • Are the working features known?

If your project does 100% of what it's been coded to do, then release it. You'll probably never get to the point where you are 100% satisfied with it and never want to improve it.

It would also be great to make sure they have Unit tests as that is also a form of documentation and proof that your project is "good."

In all seriousness though if your projects are very specific to things you've worked on in the past most people won't find them unless you go out of your way to link to it from other forums. But if it solves a problem current developers are having it has the potential to take off.

share|improve this answer

As long as your project builds and has documentation on what works and what is broken or to be done, I consider that it can be released as an alpha/beta.

In fact, this is what many open-source projects do; if your work has potential to solve a larger problem, this can attract developers to work on the missing/incomplete features.

share|improve this answer

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