Release your code!

You know that piece of code that you wrote a while back? That webapp that you wrote to help organize some aspect of your life? That library you wrote to abstract away some details of a specific task? Release it! That’s right. Set it free!

One of the reasons I set up this website was to give me a way to “showcase” and release some of the code I had written over the last couple of years. I guess some part of me thought it would be as simple as tarring up the code and throwing it on the site. Well, it turns out it’s not that simple (at least for me), and that’s a good thing.

I’ve found that releasing code forces you to make it better! Over the last couple of days, I’ve found myself adding more test cases, fixing bugs, removing assumptions, bulking up the documentation, and cleaning up the code. In general, now that the code will be out there in the public eye, I want to make sure it represents my best effort. When I write code for my own use, I generally focus on keeping it clean, and making it work. I don’t usually write doc outside of the code. I sometimes make assumptions in the code based on the box that I know will be running the code. I put up with small bugs that don’t really cause that big of a problem. But at the same time, when I use somebody else’s code, I expect more. I expect good doc. I expect that the code doesn’t assume to be running in any specific environment or on any specific setup. I expect those small bugs to be fixed. So, I’ve found myself cleaning up the code to meet my own standards. And, this is great for the code.

Releasing code also engages the community. You never know who may be out there looking for something like what you have created. You could be helping your fellow man by providing a solution to a problem they could be experiencing, perhaps the same problem that prompted you to write the code in the first place. Engaging the community has several other benefits. In true open source fashion, if users feel that your code is missing something, they will often add it. If there are bugs in the code that you missed, sometimes they will get fixed. An increased user base will sometimes serve as a source of innovation. All of these end up making your code better.

So, in short, I’ve found that releasing your code makes it better! So, release that code!