The merits of a fresh start

It’s hard to start over. Make a clean break. Go back to the very beginning and build things from the ground up. I experience it all the time in web development. Most of the time, starting over from scratch in this field is seen in a negative light. “Reinventing the wheel” is the standard metaphor. Why do something you’ve (or someone else has) already done all over again? Better to take what you’ve already built once or twice or a hundred times before and just reuse what you can, tweak as needed, give it a fresh coat of paint (so to speak) and call it a day — to keep the clichés coming, fast and furious. Check.

But… on the other hand… did you really do it the best you could on the very first try? Is it another coat of paint on a sturdy, reliable structure that’s stood the test of time, or just another layer of lipstick on the pig? Well, for better or worse that’s what I do, most of the time. It’s what most of us do. Because even if we have the chance, starting over from the beginning means a lot more work, and isn’t what we’ve already got, good enough?

Maybe. But is “good enough” really good enough? Really?

Today my 5-year-old son was bored. BOOOOORED. And he asked me what he could do. I spotted on the shelf above my desk the bulk Legos I had purchased several months ago to keep on my desk at my old job. They’ve pretty much just been sitting in their containers since I’ve been working from home, and I decided it was time to break them out.

So we sat at the table and started building. I had packed them somewhat hastily back when I left that job, and they were still mostly clumped together into the odd, improbable configurations I always liked to build when I was sitting at my desk mulling over a coding problem.

As we began putting the Legos together, I mostly kept these proto-creations and just added on to them or made slight modifications. It seemed too time-consuming and counterproductive to take them all apart and start over again. But then I stepped away for a few minutes, and when I returned, I discovered he had completely disassembled them all. Everything. Nothing but individual pieces, and we had to start over.

I grabbed a few pieces and began to imagine the configuration of whatever it might be that I was about to build. And then the ideas began to flow. I started seeing arrangements I never would have imagined — or, more precisely, bothered to imagine — otherwise. The end result was probably one of the most interesting and (dare I say it) whimsical Lego creations I’ve ever come up with. (And I don’t use the word “whimsical” lightly. Or at all.)

And it never would have happened if I hadn’t gone back to square one and started over.

Thanks, kid. Those of you who are registered users can see more pictures from our Lego project here.

Time tracking methods for the freelancer

I’ve been a full-time freelancer for about 6 weeks now, and one of the challenges an independent worker faces is tracking time, most notably for the purpose of being able to bill clients for it! My business isn’t big yet, and the number of projects I’m working on is easily manageable with a few text files and a little dedicated mental real estate, so I don’t have a formal tracking system set up yet.

Since I’m a web developer, and in particular since I’m looking for opportunities to work more with frameworks (most specifically CakePHP), my intention at the outset was to devote my first couple of weeks to building my own feature-rich project tracking web app, but the real projects started piling on more quickly than I expected, and within a couple of days I had to set that project aside.

Today I was thinking more about keeping myself organized, so I took a few minutes to research pre-built, web-based (so I can work with them both on my iPhone and my computer) time tracking tools. I still haven’t found the ideal solution, but I did find a radically different approach that I find extremely compelling, especially since I already have a couple of buckets of Legos on my desk. Unfortunately I also have a couple of kids who are frequently in close proximity, and the risk of inadvertent data tampering is just too great for me to use this method myself.