Software by the day

These days I am working intensely on a software project. When I get into this mode, I have a particular, and somewhat eccentric, way of working.

Rather than use a software version control program (like a normal person would), every day I copy the entire software base, all the lines of code, into a new folder. So I end up with a trail of folders, each somewhat different from the last, and each named for the date I was working on it.

This is not nearly as flexible as version control software. For example, if I get stuck, I can’t simply “roll back” to what I was doing an hour before. And yet I find it very satisfying. Recently I’ve started to understand why.

A day is a very natural marker of progress. In the morning the Sun goes up, in the evening it goes down, and that day will never come again. For example, when you take a cross-country journey, you tend to think of the places you visited on any given day. In a sense, that city belongs to that day. If one day you found yourself in some fascinating city, then that day becomes important in your memory.

And I’ve come to realize that by giving each day its own little narrative, I am somehow putting the days into a kind of competition with each other. On Wednesday I added this cool feature. Then on Friday I fixed that nasty bug.

I realize it’s not very logical, but it works. By asking each day to bring me something new or exciting, I think I’m getting a lot more done.

One thought on “Software by the day”

  1. Actually, I’ll bet if you did switch to using version control software (even just once a day), you’d enjoy it. Given your proclivity for written prose, the checkin comments serve as a running diary of the thought process involved. And you can share your work – in process – with just a couple clicks of the mouse via something like github.com

    (Of course, not everybody’s into commit messages: http://xkcd.com/1296/ )

Leave a Reply

Your email address will not be published. Required fields are marked *