Perfect Workmanship

Perfect workmanship is expensive. Why? Because it means starting over or laboriously fixing tiny little imperfections. Joel Spolsky describes this very nicely in his article about craftsmanship:

“The moral of the story is sometimes fixing a 1% defect takes 500% effort. This is not unique to software, no sirree, now that I’m managing all these construction projects I can tell you that. Last week, finally, our contractor finally put the finishing touches on the new Fog Creek offices. This consisted of installing shiny blue acrylic on the front doors, surrounded by aluminium trim with a screw every 20 cm. If you look closely at the picture, the aluminium trim goes all the way around each door. Where the doors meet, there are two pieces of vertical trim right next to each other. You can’t tell this from the picture, but the screws in the middle strips are almost but not exactly lined up. They are, maybe, 2 millimeters off. The carpenter working on this measured carefully, but he was installing the trim while the doors were on the ground, not mounted in place, and when the doors were mounted, “oops,” it became clear that the screws were not exactly lined up.”

I was recently reading a book by Tracy Kidder called “House”. It’s a great book by the same Tracy Kidder who wrote “The Soul of a New Machine”. “The Soul” is a book about computer architects and builders. “House” is about their counterparts in the business of building houses. In one book Kidder describes the extremely stressful process of designing and building an Eclipse MV/8000 minicomputer. In the other he describes the similarly stressful process of designing and building a Greek Revival house.

Both books read like a work of fiction, but they are absolutely factual, written about real people and real products. It’s very strange to be able to go and look up characters that became so familiar thanks to those two books. Steve Wallach from “The Soul” went on to form his own company, Convex Computer, sold it to HP in 1995 and is now a venture capitalist. You can even look up what he looks like now.

Bill Rawn from “The House” heads a big architectural firm of his own. Going there and seeing the buildings that he’s built after the house in the book is somewhat strange: he feels like a literary character, yet there he is, many years later after the events of the book took place. Souweine House, Amherst, MA is listed in the awards section of the website, but unfortunately there is no photo of it.

Interesting to note that while the Eclipse minicomputers are probably worthless now, the Souvweine House must be worth a tidy sum of money.

While building the Souweine house, the builders made a mistake concerning the frieze, an important architectural element. They go on to fix it, but in order to do it perfectly, they’d have to rip everything out and start anew, which is just like in Joel’s door trim case is prohibitively expensive.

“Jonathan feels sorry for the trouble the frieze caused, but not for the little imperfection it represents. No one else will see it, but Bill has said that even when repaired, the frieze won’t quite reproduce his intentions. Orthodox Jews have a tradition that until the Temple in Jerusalem is rebuilt, they will not erect a house or a building without giving it one deliberate imperfection. Though not a member of the Orhodox branch of Judaism, Johnathan believes in the inevitability of imperfection. So why not celebrate it? “There’s a flaw in the house …,” he says, and flashes a smile, a shooting star of a smile, “… which the pernicious part of me sort of likes.””

By the way, I can’t pass up mentioning my favorite, but apparetly later edited out, quote about Kidder. “For a woman, Tracy really know her stuff and gets into a great amount of hardware detail”. What do you think the source for it is?

The Fug

I think of my life as one long developing and debugging session. I try to improve my software and hardware, fight bloat, load more data in my databases, find new algorithms for doing things. And of course my life is full of little bugs, inefficiencies, crashes and weird behavior. Instead of making coding my way of life I try to make my way of life be more like coding.

There are three classics of the genre of the heroic computer geek saga. First there’s Tracy Kidder’s “The Soul Of a New Machine“. Second is Douglas Coupland’s “Microserfs“. Third is G. Pascal Zachary’s Show-Stopper!. Pascal’s first name which he hides behind the initial “G” is Gregg. Yep, Gregg.

Now I would like to add another book to the list. It’s Ellen Ullman’s “The Bug“.

To describe what these books are about I need to borrow a name of Cordwainer Smith’s short story – The Burning of the Brain. Or Harlan Ellison’s I Have No Mouth and I Must Scream. Those are the things that come to mind when I think about the heroes of these books.

Also comes to mind the episode of NYPD Blue where a doctor tells detective Simone that there is a possibility that the LVAD (Left Ventricular Assist Device) balloon pump might start “chewing up” his body. A poor choice of a metaphor in that case, but a very good one to describe what happens to the bodies and minds of the heroes of these books, be they real life superhuman engineers like Dave Cutler and Steve Wallach or more human but fictional protagonists of “Microserfs” and “The Bug”.

“The Bug” has three main characters. A tester on her way of breaking out from the cocoon of useless liberal arts degree holder and becoming a QA engineer not only in title but in life; a miserable antisocial software engineer in a fight of his life; and a software bug called The Jester.

At work I use Joel Spolsky’s most excellent bug tracking application called FogBugz. My project manager started calling especially nasty bugs “fugs”. Well, The Jester is a “fug” to the power of 10. To get the feeling of vertigo, the sense of spiraling into an abyss that “The Bug” invokes, i suggest listening to a piece titled “Spiral” on John Coltraine’s famous “Giant Steps”.

And here’s my favorite quote from the book:
“Look, Levin. 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.
“No, no. Lemme think,” Harry interrupted himself. “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?”
“Why the fuck did they?” Ethan said.
Which appeared to amuse Harry to no end. “Oh, you know,” he went on, laughing hoarsely, “they didn’t understand whatever the fuck had come before them, and they just had to get something working in some ridiculous time. Hey, software is just a shitload of pipe fitting you do to get something the hell working. Me,” he said, holding up his chewed, nail-torn hands as if for evidence, “I’m just a plumber.” “