I do a great deal of programming for PainScience.com, so much that I have somehow become An Actual Programmer over the last decade. I really like the best parts of it, but usually I’m putting out fires and working with extremely limited time and I frequently hate it. Sometimes I catch myself thinking that programming is more frustrating than other kinds of work. There might be some truth in that — code is very brittle, and can fail spectacularly with literally a single wrong character.
Or it could be self-pitying bullshit.
A friend of mine, who runs a drilling company and has a lot of heavy equipment, sent me this photo today:
That’s his smallest, baby excavator. It had broken down in his narrow driveway through the forest, completely blocking it, and so of course it had to be lifted out before anyone could come home, or leave. You can't nudge an excavator out of the way with an SUV. One of those jobs that just cannot wait! So much for getting anything else done with the day.
Murphy’s law afflicts all human endeavours, and code and machines are probably both about equally exasperating. It’s been a long time since I’ve fixed motorcycles, but I still remember how it consisted almost entirely of slogging through all the crazymaking ironic coincidences, such as:
- You’ve got the manual for a nearly identical bike, but of course the one significant difference in models is the one you need to know about.
- This entire job depends on having one tiny part that was just here. You tear the shop apart, but you don’t find it until it falls out of your shirt pocket into your scrambled eggs the next morning.
- Oops, I stripped that screw! So now I can’t continue until I buy a new tool… which isn’t in stock locally… and will turn out to be the wrong tool when I finally get it!
It was at least as much about fighting entropy than the actual work. It was always two steps backward for every step forward, which is pretty much what coding feels like. And a whole lot of other things.