Plumbing Chops

In my line of work I am often reminded of this brilliant passage from  Ellen Ullman's "The Bug" (which I reviewed earlier):

"Programming starts out like it's going to be architecture--all black
lines on white paper, theoretical and abstract and spatial and
up-in-the-head. Then, right around the time you have to get something
fucking working, it has this nasty tendency to turn into plumbing.

...

It's more like you're hired as a plumber to work in an old house
full of ancient, leaky pipes laid out by some long-gone plumbers who
were even weirder than you are. Most of the time you spend scratching
your head and thinking: Why the fuck did they do that?"

To take the metaphor a little bit further, let me bring up one actual plumbing nightmare that I faced when I was renovating my apartment. One of the contractors clumsily knocked  off a valve on a piece of  water piping that did not have a local shutoff. The only shutoff was in the basement, and required turning off the water for the entire line. And the super, who could do the shutoff  was not in for a couple of days.

Another contractor knew exactly what to do in that case. He created something that he called a "chop" (I found out later that the term is Ukrainian). It's a conical piece of wood, shaped like a fat pencil that is hammered into the hole in the pipe. In a couple of minutes the wood swells up and completely plugs the leak. Add some duct tape around it, and you got a very good temporary plug that is almost as strong as the unbroken pipe.  It makes the worst permanent solution (wood rots), but the best temporary one (it can be applied without taking the whole system down and is reasonably strong).

Chops, or as they are called in English - thru-hull plugs, are a maritime invention: they are used for emergency repairs on boats. These days you can even buy a ready made set.

People think of software as of something static. Well, dynamic websites are more like a ships out at sea. Sometimes you have to patch them up in a storm. And then a good, strong "chop" is the best you can hope for until you can repair the leak permanently. And you are going to sink unless there's somebody around who knows how to make a "chop".

Average: 4.5 (2 votes)

Comments

Thu, 04/03/2008 - 01:12 — Brian Dunbar (not verified)

I've got a few paragraphs from 'Close to the Machine' printed out and hanging on my cube wall - right where drive-bys can read it while they're waiting for me.

I'm on the other end of the IT house - I admin systems. But some days it does feel a lot like plumbi

Mon, 04/07/2008 - 16:32 — deadprogrammer (not verified)

I'm kind of worried - after "The Bug" Ullman was nowhere to be found: no essays, no nothing... I hope she's all right.

Tue, 04/22/2008 - 11:18 — John (not verified)

I got intrigued by the plumbing metaphor, since that's exactly how a friend and I see our jobs... When I read your post, I went, "whoa, I thought it was just us!" :-)

Anyway, I got a copy of the book from a local library, and am most of the way through it. For all of its technical goodness, I'm perplexed by two things:

1. Why does Ethan feel the need to go home to dial in to his simulation? It's running at the office, after all. In fact, in the latter parts of the book, he takes Berta home with him, to show her the simulation -- even though they were at work to begin with.

2. Why/how does the core dump not help him? In my experience, the most useful part of a core is the stack trace... And in fact, when developing in non-C languages (like Java), the stack trace is all you generally get. The fact that he doesn't know how to read/use the rest of the core file seems like it ought to be no big deal.

Anyway, thanks for turning me on to this book. The first half, or so, up until (and through) the part where Berta learns to program feels kind of like looking in a mirror. I see my experience, my thoughts, in the words on the page. It's uncanny, almost.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options




 Subscribe in a reader