Tag: Software bugs

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.” “

A wrong assumption that most people make when debugging: a bug has a higher probability of hiding in complex and esoteric places. This may be true about roaches — they are more likely to be found in hard to reach places, but not about code. Code bugs are not afraid of light — they are just as likely to be in plain view.