March 20, 2007

...Learn TDD with Codemanship

Maintenance Turns Back The Clock

Last weekend I finally got around to sorting out an old Fender Stratocaster electric guitar that had been gathering dust in my office/music room for a few years.

There was a loose connection in the wiring that meant no signal was reaching the amplifier. I have a fair few guitars - most of them nicer than the Fender - so I never bothered to fix the problem. I also didn't have a spare flight case for it, so it sat exposed to the moist air and dust and changing temperatures of my flat for 3 years.

And inevitably, the strings oxidised, the dust gathered, the neck warped and the fretboard grew a thin, grubby coating on top of the oil and sweat from my fingers as I'd played it. Then a couple of weeks ago I went to a jam session with one of my nice, pointy heavy metal-style guitars and felt completely out of place among all the Fender-likes and Gibson-likes - y'know, a proper blues and rock electric guitar.

So I thought "time to dust of the strat". Only it was a little more work than a once-over with a duster. I soldered the connections back and tested the signal. I took off the strings. Cleaned and polished the neck with a special wax. Buffed up the hardware and the frets with metal polish. Cleaned the scractchboard and pickups and knobs. Got to work with my tool kit on the truss rod to sort out the curvature on the neck. Replaced the strings, tuned them up. Sorted out the intonation at the bridge. A proper overhaul!

It's not as good as new, but it's much, much better than it was. I spent a whole day fixing it up. And I do love that classic Stratocaster sound, even if the damn things go out of tune when you so much as look at the strings.

The stratocaster now sits in my living room, plugged in to a BOSS portable 8-track recorder and ready to play. And last night I looked at it, admiring my handiwork, and a thought occured to me: this guitar looks younger. But I'm not quite sure what I mean by "younger".

If I showed you a picture of the same guitar, one taken before I repaired it and cleaned it up, and another taken afterwards when it was all shiny and clean, and I asked you "which guitar is younger", you may well point to the after picture.

We are exceptionally good at recognising decay and we automatically assume that more decay means greater age. How do we do that? What are the signs we pick up on? Could we apply the same process of recognition to code?

And what of the process of maintenance? Is maintenance the process of turning back the clock by reversing the signs of aging? Is a refactoring necessarily something that makes code "younger"?
Posted 14 years, 8 months ago on March 20, 2007