Release Early, Release Often

One of the main mantras of open source development (perhaps more specifically extreme programming) is "release early, release often." The basic idea is to get your product out to your users as soon as possible and as often as possible in order to generate rapid feedback cycles. In many situations this works well, but it's hard, especially for perfectionist like myself. Read on for more musings...

Recently I discovered a bit of a link between why I am not blogging as much as I would like and why I'm not releasing (or contributing) to open source software as much as I like. It's all about the idea of 'release early and release often' which is apparently really hard for me. I suppose I'm a bit of a perfectionist. I like things polished before I present them to others. For example, I want my code to be not only functional, but often beautiful too (in that logical, mathematical sense). Even at my work place, I tend to burn a lot of cycles over gettings things 'just right' before I release the works to everyone else.

I'm discovering more and more that I need to let go and focus more on releasing my work early rather than holding on to it until I feel it's finished. One reason is because, for me, it's never quite finished. Another reason is that as long as I hold on to my work, it's not benefiting anyone else. So I need to calm down, humble myself, and offer up my efforts to the public sooner.

The same goes for blogging. Too often I sit around thinking about what I want to write, but never actually posting it because I end up wanting to write a proper thesis. I suppose I'm too tied to the phrase:

If you're going to do something, do it right.

Which for me often meant really completing a project before releasing it, or polishing an article before publishing it. However, in open source development, and increasingly so many other forms of work and expression, releasing to the public is not the same as finishing a project.

That's not to say that this is an excuse for shoddy work -- that you can always fix it later in any situation. I still believe there are times when you need to do that polishing and deliver a final product. When you finally ship that new massive online role-playing game, the product should be well past beta.

So there's certainly a balance to find. I suppose my thoughts today turn to recognizing that I'm a little to hesitant to release a beta, to just get something out there for users to look at. Anyone have any thoughts or suggestions for overcoming this bad habit?

Posted by J Aaron Farr at September 18, 2003 02:16 PM
Comments

J Aaron,

I have a suggestion for releasing...it's a point of view.
Just think of how you were created. You are not or never will be a finished product...much in the same way that your creator will never be a finished product. Change is vital to our existence. Why then, should your work be a finished product? Oh, impossible my friend. Remember that you may always improve, but never fully polish. For the wind will always beat down and toss you about so that you may be smoothed over by the waves of improvement yet again.

and one more thing...were you not given talents to share them? Are you only burying your talents? Why not invest like the good servants in that story of old.

Peace be with you.

Posted by: chica bonita at October 16, 2003 12:57 PM