The life of a developer is a weird one, I grant you that. Of all tradesmen/artists/scientists/engineers (depending on how you think of it), we are the only ones who can manifest an idea from inside our head as a thing in the real world that others can touch, feel, see, and experience, but the thing itself is no more real than the idea in our head was in the first place. It's just a stream of electrons flitting around in a machine, and all we do is tell them whether to go left or right. Bit-fiddling - a strange occupation, to be sure.

The frustrations are there. I've been doing this for over 30 years now, and I still feel the same; "I wish I had time to make this better!" At this point, if I can go back and look at something I wrote 6 months ago without slapping myself in the head and asking myself, "What was I thinking!!", then I know I've become complacent. If I ever stop learning how to write a better program, then I will know that I am finally, truly dead.

There is always a way to do it better. There is enough time to do it well enough. The trick is always to find the place that's 'good enough for now', and then be able to stop. If you can't do that, then you wind up with "Duke Nukem II", the mega-game that never was, or the "super-Vax" that would have re-made the mini-computer industry - if they had ever finalized any design. They coined the name 'creeping perfectionitis' as a disease, because it is - the inability to stop.

It would be great if programming was always that voyage of discovery where you know where you want to be and you know where you are, but you just haven't figured out how to get there from here yet. That's such a wonderful trip. In the end, however, no matter what your occupation is, there is always the **** work that comes with it.

I'm sure for a vintner, the wonder and joy is in trying new varieties of grapes, new techniques, new ideas, and finding ways to make better and more fascinating wines. The art in the craft is what makes it something you can love. But unless you are going to be the only person who ever drinks the wine, there is the inevitable day when the thing you must do is shove a cork into a bottle - not the sexiest job. That isn't good or bad. That just is - and it is for everyone. A painter must inevitably wash his brush. A musician must inevitably clean his instrument. An architect must inevitably try to explain to a carpenter why the joist has to be just *so*. A doctor must inevitably stand aside a allow death its dominion.

And programmers? We must inevitably sit there and run the same chunk of code every way from Sunday, over and over again, until we're confident that it will do what it is supposed to do, and then write the instructions explaining how everything works. Yeah, that sucks. Big time. I know how beautiful it is, and I frankly don't know or care if anybody else even *can* understand. These things are like my children, and I love them because they are a part of me. If, however, I am a part of something larger than myself, then I must 'take one for the team', as it were, and do the **** work, if for no better reason than precisely because I *am not* the only person drinking the wine smile Perhaps it helps that I came from a poor family, so when there was something that had to be done and you were the person standing there, you did the work.

Perhaps the thing that is wrong with the world isn't that we don't have the freedom to do solely and exclusively that which we love, but rather that a lot of people lose sight of what they are doing, and what the work is actually about. The truth and beauty of our work in in the thing itself. The *value* of it is in what it means to *others*. That's why they pay us. I still look at my paycheque thinking, "It's good that they don't know I'd do this for free!"


Sic gorgiamos allos subjectatos nunc