Sunday, August 12, 2007

Getting Out of a Coding Slump: The Art of Code Noodling

On Software DesignI'm not sure about other developers, but sometimes I think I'm sort of a "manic-depressive" coder. I will go though great bursts of productivity, only to hit a "coding block" at some point. I can get sick of working on one thing for too long, or even one product, and I just need a change. What this really is is a kind of coding burnout, which can really kill my productivity if I let it.

One thing that I've found over the years that really helps me get out of these slumps is something I call "code noodling." Those familiar with jam bands like Phish probably know what noodling is in some context. It's sort of a free-form, experimental, unscripted way of playing music on stage, but I do this when writing code.

How so? Well, I like to prototype and design pieces of code. I will often have unimplemented ideas floating around in my head and I've found that when I hit a slump, these ideas are great ways to put me back on the productivity track. When I work on something product related, like something for a new feature, noodlings give me a nice change of pace while at the same time allowing me to make progress on an overall product roadmap.

The new widescreen option and the "summary" table view in MacGourmet 2.2 are good examples of this. I'd been noodling around with them for quite some time, trying out different ways of doing things, etc. There are actually several things going on there that will be incorporated into additional new features in the future. At some point, a lot of my noodlings result in new features. I've found that this is often the case. I start playing around with ideas, and eventually they are "done" and ready to be incorporated into a product.

MacGourmet is actually the result of a noodling. At one time it was just a small idea I was playing with. Three years later it's how I pay the bills. I've been doing a lot of code noodling lately, not really because of a slump, but because I've been working on a lot of new things at once. Expect them to bear lots of fruit before too long.

Labels:

0 Comments:

Post a Comment

<< Home