[Metroactive Books]

[ Books Index | Silicon Valley | Metroactive Home | Archives ]

Buy 'The Bug' by Ellen Ullman.

[whitespace]

Ellen Ullman appears Tuesday (June 10) at 7:30pm at Barnes & Noble, 5353 Almaden Expwy.,San Jose. (408.979.0611)

The complete Metro/Ellen Ullman interview

Michael Gant talks to author Ellen Ullman about her new novel, 'The Bug,' the coding life and the prospects for another tech boom

By Michael S. Gant

Metro: What prompted you to switch from nonfiction, like your memoir Close to the Machine, to fiction in your novel The Bug.

Ullman: I had initially designed this story to be an essay. I had thought I would write a novella-length essay about a bug I had had when I was a programmer in the mid-'80s. I sat down to write it, and it wasn't turning out very successfully. I had just written a memoir, and I just thought I was tired of talking about my own life in memoir terms.

I felt there were things I wanted to explore that I couldn't do out of my own experience. And also some of the things that were actually going on in my life weren't that interesting, I thought, to anybody but me, so it wasn't making for a good story.

So, after many false starts, I thought what if I try this as fiction. This would give me a freer hand to rearrange events and introduce other points of view--and set it more precisely and make it more of a story.

If I had any regrets with my first book--and of course I did--the main one for me was that it didn't have a sustained narrative arc all the way through. And I sort of gave myself a test to say, well, can I now write something that sustains a story from beginning to end. So bit by bit, it turned into fiction.

Metro: Did you find certain similarities or differences between writing fiction and writing code?

Ullman: I found it extraordinarily different. First of all, writing code has an almost compulsive quality of engagement. You write, you compile, you test. You write, you compile , you test. It just goes round and round in a very tight loop. You have this constant feedback of the machine. It's more nerve-racking in a sense that you're trying to translate in a way between human thought and the way that can be expressed to a machine. And there's something fundamentally nerve-racking about that. There's a quality of engagement that's very tight.

One hopes that writing would feel that compulsively engaged, but at least for me, it was harder to enter into that deep engaged state, because you're alone with yourself, you have to stimulate yourself, you don't have a machine coming back and telling you when it works. Only you know--or you think you know--when it works. And that's a lot harder to tell.

The other part of it has to do with the fact that code isn't really designed to be expressive. Its goal is to produce something that works, that functions. The purpose of writing--especially fiction or essays--is that it not just transmit a factoid but that it, hopefully, relays a sense of experience and a sensibility. And in that sense you want it to be expressive in a way that code simply can't.

And also code is hugely collaborative. You wrote your own little bit of it by yourself, but the making of a program or a system is an enormously collaborative process, with all kinds of outside factors impinging upon what you're doing. I guess if you had to find it more like writing, I guess journalism on a daily paper would be more like it: where you have specific things to do on a specific time frame, and you're chasing events. It's nothing to me like writing a novel or an essay.

Metro: Did you find the solo act of liberating as opposed to the collaborative nature of writing code?

Ullman: Yeah, it was liberating [laughs]. Software projects are very frustrating in that regard. Not only do you have trouble doing your own work well, the requirements will keep changing. Pieces of it that you are relying upon from other people may be early or late or not be what you expected. And there are always clients or customers pulling you one way. And product managers another. And prospective clients another. It's much more compromising than people would imagine.

It's actually more of a political process. I think that people talk about programming as if it's this logical thing, and yes, maybe at the level of individual modules or functions or objects. But as a piece of software or program or system, it is a political process with lots of people having their constituencies.

Metro: Which means that you don't have to go into one of those harrowing manager/programmer meetings that you describe in your book.

Ullman: Ideally, you want an editor at the end, and there is a collaborative process. But that happens much later. Ultimately the actual setting down of the first write-through of the material, you're pretty much on your own--[along with] your nearest and dearest, people you trust, to give you opinions along the way. And that's a small group of people.

Metro: Do you do much code writing these days?

Ullman: No, I don't. When I was writing The Bug, there are code samples in it, which I put them in there as illustrations. People can look at them or not. I put them in there because there has been a lot of nonsense written about code and what it is. It would take a lot of the mysticism of it if people could just see a piece of code, just get a visual frame for its appearance on the page instead of thinking about it in an abstract sense.

So I wrote those, and then I found myself thinking, what are these pieces connected to? And there I was at the MacDowell Colony and ostensibly writing the last two chapters (I did draft the final two chapters there), and I spent days writing code. I had a little compiler on my laptop, but I thought, no, I just have to stop doing this, because once I start doing this I won't write fiction--I won't write; I'll write much less. Because the code has a way of swallowing me up.

Metro: Could you call it an addiction?

Ullman: Compulsion would be closer, not addiction. I don't know if even compulsion is the word. It just engages a different part of my brain that goes into these churning cycles, and that's very pleasurable, and it just eats up time. And I just decided I could not do both.

Metro: Why did you decide to set the novel in 1984?

Ullman: That's about the time frame it happened to me. It is based on my experience as a programmer, and it's based on a bug had as a programmer.

Remember, it started as an essay. That's the short answer. It started as a factual piece about something that had happened to me in the mid-'80s, a bug that I'd had for a year that I could not solve, that was intermittent, that made me doubt that I've have anything right.

Then once I decided to fictionalize it, I decided not to bring it into the present, because I really wanted to write a historical technical book. A lot of what's written about technology treats it as if it's everlastingly new. And computer technology is not now new anymore.

The first generation of computer pioneers are already dying off--or have died off. People who programmed in the '40s and the '50s. We are in a third generation of programmers right now. I felt there needed to be some sense of longevity about this. That there wasn't always Microsoft winders. There were things that existed before this that people struggled to make.

The other part is that to try to set it as something new would have been hopeless. In Closer to the Machine, I identified a version of C++--I can't remembered what I used, 4.1, 4.2--and then someone said to me at a reading or a talk somewhere, 'Gee, you shouldn't have put the version number in there, because by the time the book came out it was up to 5 or 6.' And it dated it for me.

And I think, if you're trying to write a novel about technology--since novels do take years to write--trying to have it be new, would be like trying to write a technical or how-to book. I mean, the books from O'Reilley and Assoc. are, what, updated every six months. You would have to have a new version every six months just to keep up on these things. So I decided not even to bother getting on that cycle.

Metro: Would you ever consider writing about the tech bubble?

Ullman: There's a little bit in there. I wrote a brief op-ed piece in the Times last week about the lost of continuity among programming generations that's happening because of the great personnel slaughter that's happening since the bust. I think I probably will. I am writing essays. Right now, it's good to let time pass a bit. It needs to be looked back at in remembrance, in context. As I said, I don't want to be chasing events.

I still live in the middle of what used to be called Multimedia Gulch, south of Market in San Francisco. I lived there before the boom and I'm there after the bust. And it's a daunting feeling--while the boom was going on, it was unreal and we all knew it. We'd sit there and look at all the buildings getting thrown down overnight, and the restaurants so packed you couldn't get in, the bars overflowing into the streets on Thursday nights, and go, like, God, this is weird. You couldn't rent a tiny office in the most awful building, and suddenly, it's all gone. The restaurants have closed, the bars are dark or empty, there's nothing but "available" and "for-lease" signs everywhere you look. The collapse was kind of breathtaking once it actually happened. Even though you knew it was coming, it was hard to believe the rapidity with which everything just disappeared.

Metro: Do you think it will come back in anything like the same way?

Ullman: I think something will come back but not like that. I think we're going to get back on what we call a normal growth curve for technology.

Now there are two things going on. We're having a recession and the Internet bust. I think a lot of the reason corporations are not buying now is that they just went through a huge replacement cycle because of Y2K. A lot of the reasons the Y2K bug didn't happen--besides the efforts of huge teams of dedicated programmers--is that corporations took that as an opportunity to scrap a lot of old systems and update them and that meant new computers, new operating systems, databases, everything. And so it's going to take a while--especially given the recessionary climate--for that to wash out.

Essentially, sooner or later--you can't keep a computer for more than four or five years, you just can't--those will have to get replaced. And I do believe a kind of normal growth curve will return, but not that asymptotic climb. that was really abnormal. We haven't had something like that since--what?--the '20s.

Those are pretty rare events, and gladly so. I don't think I would like to see another mania like that. It discredits whatever industry it happens to. Think of tulips. It has unfortunately discredited a lot of the value that of course still remains in computing technologies. It gives everything a bad taste for a while. I don't think manias are helpful, so I hope that doesn't come back.

I would like to see a return to normal growth--reasonable investment in things that have a reasonable chance of succeeding of making money, of drawing customers to them--that would be nice to see. I know a lot of people who don't have jobs--a lot of people with years of achievements who are on the sidelines right now. I'd like to see them and their experiences drawn back into the industry. I think we're missing a lot with them outside it.

Metro: How did you get into programming

Ullman: I was an English major at Cornell, class of '70. I didn't graduate until 1971, because I took off a year. Before I graduated, I got involved with a group doing media, video. I was involved with community-access video. Portable video--in those days, it was the equivalent of personal computers, in the sense that here was this technology that had only been in the hands of large corporations that suddenly was available for some reasonable cost. And you could make interesting things with.

I got involved with a group in New York state that got some funding. I did some electronic-image generation. I saw people doing very early computer-aided animations, and I thought that was very swell, and I wondered how you did that. I wrote a little FORTRAN, but I never did anything directly with it at that point. There was no way to do this.

Eventually, I moved to San Francisco, I took various jobs: gas station attendant, switch board operator--talk about jobs that have been replaced by computers. Then at some point I had to take seriously earning a living. What did I know how to do: photography and programming. And programming was easier to get a job in. Business computing was just exploding at that point. It was a little bit equivalent to what happened in the Interment boom--here's a technology that needs lots of people suddenly, and there are not enough trained people to do it. So all kinds of interesting people got drawn into computer programming in the late '70s and early '80s.

Very few of the people I knew then had degrees in computer science. There was barely a computer science major. Most of those people were doing electrical engineering and weren't going to work at programming general ledgers and accounts payable. There were all sorts of opportunities to get jobs, so I did with a small software company. The fact that I had touched a computer before and knew what a compiler was recommended me, and I was given a job.

And I viewed it at that time as a way to earn a living to support my artistic habits. I really thought it was like waiting tables. Within months, that idea went out the window. I had no expectation that I would be so instantly engaged in this. And all my desires to do other things just really fell away. I was really swept away, and that's it. 20 years later and ...

Metro: What companies did you work for?

Ullman: Sybase, where I was the first engineer hired. The other companies were Sun, briefly Borland (a company that became Borland). I worked for a lot of small startup companies that you wouldn't know. There names escape me now.

Metro: Where did you get your bug?

Ullman: Sybase was the first networked--relational--database, and I worked on the front-end side of it. The first thing we had to do was build a windowing system, because there wasn't anything. Sun had something, but we elected not to use it.

Usually, the reason bugs persist is not that you can't find the reason for them. There is a long list of things programmers have to do, and they are prioritized, like as in the book: level 1, 2, 3. 4. You work on the level 1's first, and hopefully you can fix them more quickly than they appear, otherwise you tread water. This [bug] was my only level 1 that remained outstanding.

Even though it plagued me and I felt insane over it, my old boss (whom I'm still in contact with) was not even aware. He said, 'Well I knew you had some bug, but I wasn't worried about it.'

Metro: And what happened?

Ullman: Actually, I never found it, and I never realized I didn't find it until I wrote this book. I was sitting and writing this book and it is based on that bug, but it is not the same thing. And I thought, how did I fix that? And I sat down and worked it out for myself, and I went, holy smoke, no way what I did ever fixed that bug. I didn't have the code in front of me, but it seemed to me that I never really fixed the bug, but I do know that it disappeared.

Metro: SO it could still be latent?

Ullman: Well, I think that Sybase retired it within eight or 10 years. It could have been lurking there all that time. I even thought about changing the ending of the book, but I thought that would be a very unsatisfying ending. Oh, the bug just disappeared. Now that would be bad.

Metro: Wouldn't have the closure that comes form solving a mystery.

Ullman: It would be like, the killer got away and we didn't find out who did it, but there wouldn't be any more murders.

Metro: Are bugs inherent in the creation of programs?

Ullman: I think that we will always have bugs that will bedevil us. What we think of as computers now--at bottom it is a calculator. It goes, if true, go here. Underneath, it's a bunch of go-tos, jump instructions. Put something in a register, check a condition, jump somewhere if it's true, jump somewhere else if it's false. It's a pretty restricted way of thinking. What we know about life is that the way human beings think is more complicated than can be easily broken down into that kind of thinking.

If we only wanted computers to do general ledgers, we could get the bugs out, but we have more and more ambitions about what we want computers to do. As soon as we get to one application, and we have more or less shaken the bugs out of it and we've figured out how to break down this kind of thinking into the structured way we need to--whoops! here comes something like facial reconnection, voice recognition, speech, all the visual stuff we do with computers now. Our ambitions for computers keep getting greater, which is appropriate. And so again we have to go through the process of understanding how to express these things to this machine, which at heart really hasn't changed all that much since it was invented.

LINUX is considered new--it's based on UNIX, which was new, when, 1967? What is new is the kind of visual interfaces we have now, which require vast amounts of computing and programming.

There is just so much code. Code at every level, from the chip itself, to networks to operating systems, all kinds of devices inside the computer have their own code. it's just layer upon layer upon layer upon layer upon layer. Even if you shake the bugs out of one layer pretty well, once you put all these things together, there are so many possible permutations and all these interactions [that] for practical purposes, it's not possible to test all those conditions.

There's a mysterious bug in my IBM Thinkpad right now. It's happened three times in the year since I've had it. it's one of those bugs. And I imagine it will happen a few times more. But it's not bad enough for me to try and find it.

Metro: What are you working on now?

Ullman: I have started a new novel. Right now, I'm doing readings and things. I'm working on an essay for The American Scholar. The new novel is just in the early stages. I have a few thousand words written. It's about, I think: adoption, identity, genetics and the Holocaust. I think those are the four topics. But I'm not really sure yet.

Metro: With a computer component ...

Ullman: No, no computers, There will be one personality that will be similar, but no I don't want to write another novel about computers. The challenge of pleasing too many readers is hard. Programmers want me to get in there and explain every bit and byte thing that's going on. And for people who aren't technical, you don't want to do that. You want to give them just enough information so they know what's going on. But how do you know how much is just enough? If someone is not basically interested in computers, isn't really wanting to know what's going on inside a computer, it's hard to make the book interesting for them.

The reader doesn't have to be technical, but they do have to have a certain desire to know what's under the covers in a general way. To be fascinated by computers. and that limits what I can talk about in way.


Send a letter to the editor about this story to letters@metronews.com.

[ Silicon Valley | Metroactive Home | Archives ]


Web extra to the June 5-11, 2003 issue of Metro, Silicon Valley's Weekly Newspaper.

Copyright © Metro Publishing Inc. Metroactive is affiliated with the Boulevards Network.

For more information about the San Jose/Silicon Valley area, visit sanjose.com.