Archive for November 2006

A handful of thoughts

Some thoughts that have been going through my mind lately…

In writing software, it seems like there are two distinct creative philosophies: planned vs. organic. With the first, you blueprint the whole project out in advance, thinking through everything as much as possible, sketching out the program with broad strokes first. You then go through the blueprint and implement it. The second philosophy takes a more laid-back approach, starting with the bare minimum and then letting the needs of the users define the design. It’s an iterative process, something more grown than engineered.

As is often the case in life, both of these methods have their place. For me, the general flow of a project should be organic (if possible), but the details should be planned. Let me explain.

When writing software, you often don’t know what’s best for the user. You have ideas, sure, but you don’t know for certain. Rather than bloat the software up with unnecessary features, it’s better to let the project’s requirements evolve as you proceed. Experience will dictate the course.

Down in the trenches, however, it helps a lot to have a plan. Not a long-term plan, mind you, but a right-here-and-now list of what needs to happen in the next hour or day. Yes, I can code without a plan, but my thinking gets murky and there’s only so much state you can hold in your mind before you start to lose things. Writing out a list of to-do items, along with pseudocode for whatever it is I’m working on, has proven invaluable.

My other lifesaver is freewriting. If I get stuck, I open up my work log in Google Docs and start writing about what I’m working on, raising questions that need to be answered, describing obstacles in my path, trying to map out the next few steps so I don’t stay bogged down. It’s worked almost every time. And when it doesn’t work, I know it’s time to take a break and do something else for a bit — read a book, draw, take a walk — anything to recharge the batteries.

Oh, and I’m going to try to be better about posting here more than once a month. :)

A stitch in time

At work last week my boss was about to purchase a piece of software for a substantial sum. When he told me about it, I almost laughed at the ludicrous price. “They said it took about $6,000 worth of labor,” he said. Completely outrageous. So I coded up a program in Ruby that does pretty much the same thing (all the parts that matter to us) in just a handful of hours. I hate overpriced software.