Saturday, January 24, 2009

Fear of releasing code

Alright, so this post is going to be all Captain Emo. I wanted to write about something I've realized I do, with the hope that if someone else is unfortunate enough to have the same habit that maybe they'll realize it as well.

I sometimes have a ridiculously irrational fear of actually finishing up & releasing my personal projects.

Of course, it doesn't manifest itself as transparently as "oh, crap, people might see my code & think I punch puppies". It's much more of a "gosh, I just don't know if it's really tested enough yet" or "why don't I add a few more features first" or "I'll just tweak the API a bit" or even the insidious "I'll work on that tomorrow". Oh yes, "tomorrow" being that wonderful code word for "maybe around the time I start laying golden eggs". Sometimes I've even thrown out a good chunk of work I had finished because I thought of a "better way" which mysteriously never gets coded up.

Here's the important point I've been thinking about: something is only perfect if it doesn't exist. If you want to actually accomplish anything, you're going to release stuff that is buggy, non-optimal, & might not even compile on anyone else's machine. That's okay. It can get fixed!

I've never lost respect for someone because of a bug in a library. I've only gained respect for them when they fix it. I'm probably not the only one who feels that way.


Antoine said...

I'm pretty sure that my release of XHB couold be pretty.

In fact, everything I have planned for the next release (0.1.*) is just there to be prettier.

This tunred out to be kinda cool, because I figure putting out more releases makes the project more noticeable.

Antoine said...

Er, I meant "could be prettier."

Thats what I get for releasing my posts too soon without proper review.

Anonymous said...

You're far from alone there, Antoine. Thanks for telling it how it is.

Aim to make a few mistakes. :-)

Anonymous said...

Nice post, thanks!

Anonymous said...

This reminds me of another recent post: Taming Perfectionism.

Anonymous said...


Ha! I have precisely the opposite issue... Open source is [at the early stages] all good and all for fun, so release early and often [and all that]... and I release too early and too often...

Seriously: IMO the key is to release late enough that your software is _credible_, but not so early that your software is crap and unusable. Putting aside Linux and PostgreSQL, the objective of Open Source software is to give something back to the community and [hopefully] for the community to engage with the piece of software. If done well, the community engages with your piece of software and helps drive it forward. The key phrase there is "helps drive it forward". Perfect software needs no help, so, if you want help, you need to release imperfect software...

"If you want to actually accomplish anything, you're going to release stuff that is buggy"
Interesting how we berate Microsoft for the same thinking. Yes, we pay them money, but...

Unknown said...

My Chemical Romance!

With your black eye shadow combine, I am....CAPTAIN EMO.

That is all.

Anonymous said...

My first step about fear of releasing code was realizing that only people who really need it are going to bother to look.

So hardly anyone uses my stuff, I don't care. I enjoy getting emails about it though.