Paul Graham writes about “How to do what you love”… It’s quite a good piece but the best bit is hidden down near the end. He suggests that a good way to “stay honest with yourself” about dreams to do something other than your “day job” is to Always Produce; that is, don’t just talk about it or think about it, produce physical artefacts.
This is excellent advice and it can be applied to pretty much everything you do.
The act of producing something concrete from your ideas helps to focus and guide them and gives you something solid to return to if you have to step away from the project for a while. Ideally you should produce something complete; but scribbled notes are better than no notes, though a nicely presented set of ideas is better still. Likewise, code that’s safe inside CVS and that can be rebuilt on demand is better than something quickly thrown together but even something quick and dirty is better than a hand wavey “I could do that if I wanted” attitude.
I’m pretty good at producing code artefacts from my ideas and less good at producing something for the ideas that don’t have an obvious solution in code. I often end up with libraries of code that were used to blaze a trail towards last year’s “latest idea” but less often have detailed notes on the other ideas that didn’t make it as far as code.
This is something that I still need to work on and I like the fact that I can now pin it on a simple idea; Always Produce!