Programming as Art

Found some excellent computing links today. Tim Bray’s site is a cornucopia of riches.

There I found an essay by Paul Graham on programming. I found myself imitating Meg Ryan while reading this essay, much to the bemusement of my cow orkers. A couple standout grafs:

As far as I know, when painters worked together on a painting, they never worked on the same parts. It was common for the master to paint the principal figures and for assistants to paint the others and the background. But you never had one guy painting over the work of another.

I think this is the right model for collaboration in software too. Don’t push it too far. When a piece of code is being hacked by three or four different people, no one of whom really owns it, it will end up being like a common-room. It will tend to feel bleak and abandoned, and accumulate cruft. The right way to collaborate, I think, is to divide projects into sharply defined modules, each with a definite owner, and with interfaces between them that are as carefully designed and, if possible, as articulated as programming languages.

This is something that has been troubling me for some time. As my company has gotten bigger, some of our code has come to resemble a spoiled commons. As I’m one of only two originators of the code, this causes me some regret.