Close to the Machine: Technophilia and Its Discontents

Programmers spend their careers writing. Mostly code though, not prose. It’s a surprise (and a treat) to find a programmer like Ullman who has just as strong a command of English as she does C++.

Close to the Machine is a short and endearing book about programming. It’s not about software architecture or project management, but an honest look at the messy process of producing software artifacts. Ullman reminds me that most people in the business of creating software are complicated humans finding comfort in the simplicity of software.

“Simple software” is a bit of an oxymoron, but the entire memoir reminded me of a quote:

If you think [computer science] is complicated you’ve never tried to understand a person.

Anyway, I’ll do you a service and share some quotes from Ullman. The writing is much better than mine.

Jaron Lanier on where to look to understand the Internet in its present form (this is the introduction to the memoir):

The Internet remembers its own digital traces, though less perfectly than is widely understood. As the digital sphere began to rise, the old world didn’t know what was important enough to record in the emergent nerdosphere, and the Internet wasn’t really there yet to start its own sort of obsessive quantity-oriented recording. So there is a lost lull from just before the storm. It’s hard to get a fix on what computer culture was like in the years before it was networked and went pop. Yet that is where we must look if we are to find the fetal dragon, the fractal seed that would soon overwhelm the interstices between all recordable experiences.

Ullman on the physical conditions of long, late night programming sessions:

He is as near to naked despair as has ever been shown to me by anyone not in a film. Here, in that place, we have no shame. He has seen me sleeping on the floor, drooling. We have both seen Danny’s puffy white midsection – young as he is, it’s a pity – when he stripped to his underwear in the heat of the machine room. I have seen Joel’s dandruff, light coating of cat fur on his clothes, noticed things about his body I should not. And I’m sure he’s seen my sticky hair, noticed how dull I look without make-up, caught sight of other details too intimate to mention. Still, none of this matters anymore. Our bodies were abandoned long ago, reduced to hunger and sleeplessness and the ravages of sitting for hours at a keyboard and a mouse. Our physical selves have been battered away. Now we know each other in one way and one way only: the code.

Ullman on software engineers meeting with the end users of their software:

The end users I was so ashamed of came late in the system development process. I didn’t meet them until the software was half-written. This is not how these things are supposed to go – the system is not supposed to predate the people who will use it – but it often goes that way anyhow.

I started to panic. Before this meeting, the users existed only in my mind, projections, all mine. They were abstractions, the initiators of tasks that set off remote procedure calls; triggers to a set of logical and machine events that ended in an update to a relational database on a central server. Now I was confronted with their fleshly existence. And now I had to think about the actual existence of the people who used the services delivered by the users’ agencies, sick people who were no fools, who would do what they needed to do to get pills, food vouchers, a place to sleep.

Ullman on meeting executives in the software industry:

But beyond any techno-ego considerations, I was simply terrified of this woman. She reminded me of everything I’m not: WASP, pleasant in social situations, effective at corporate meetings. Next to her, I felt hopelessly Jewish, obsessed, driven. A woman like this would never display obsession, would never panic the first time she met her end users across a conference table. I used to be amazed at high-level corporate managers and officers. I wondered, “How do they suppress their complications, doubts, and worries? How do they present this mild, certain, straightforward demeanor?” After many years, I understood there was no suppression to it: they really were people without many complications.

And after Ullman asks her about something technical:

There it was: the thing that makes me so afraid of high-level managers. That impenetrable surface, the apparent lack of complication, doubt, even curiosity. Was she covering discomfort, ignorance, fear of appearing ignorant? Or was she simply bored by me? There was no way I could know. Extrapolating from myself, I thought: What a marvelous ability to affect self-assurance! What superb management of professionally undesirable traits! I longed for such ability to hide my feelings. I imagined someday I would sit in a meeting and be transparent as water, quietly emanating authority.

Ullman on the act of programming itself:

Then something happens. As the months of coding go on, the irregularities of human thinking start to emerge. You write some code, and suddenly there are dark, unspecified areas. All the pages of careful documents, and still, between the sentences, something is missing. Human thinking can skip over a great deal, leap over small misunderstandings, can contain ifs and buts in untroubled corners of the mind. But the machine has no corners. Despite all the attempts to see the computer as a brain, the machine has no foreground or background. It cannot simultaneously do something and withhold for later something that remains unknown. In the painstaking working out of the specification, line by code line, the programmer confronts all the hidden workings of human thinking.

The programmer, who needs clarity, who must talk all day to a machine that demands declarations, hunkers down into a low-grade annoyance. It is here that the stereotype of the programmer, sitting in a dim room, growling from behind Coke cans, has its origins. The disorder of the desk, the floor; the yellow Post-it notes everywhere; the whiteboards covered with scrawl: all this is the outward manifestation of the messiness of human thought. The messiness cannot go into the program; it piles up around the programmer.Soon the programmer has no choice but to retreat into some private interior space, closer to the machine, where things can be accomplished. The machine begins to seem friendlier than the analysts, the users, the managers. The real-world reflection of the program – who cares anymore? Guide an X-ray machine or target a missile; print a budget or a dossier; run a city subway or a disk-drive read/write arm: it all begins to blur. The system has crossed the membrane – the great filter of logic, instruction by instruction – where it has been cleansed of its linkages to actual human life.

Ullman on the conflict between an individual’s politics and the software they work on:

Twenty years before my meeting with the vice president, I was a communist. I joined an underground party. I took a nom de guerre. If I had been clever enough to write a bug fatal to world banking, I would have been promoted to party leadership, hailed as a heroine of the revolution. Nothing would have pleased me more than slipping in a well-placed bit of mislogic and – crash! – down comes Transnational Capitalism one Christmas Eve. Now the thought terrifies me. The wave of nausea I felt in the vice president’s office, the real fear of being responsible for her system, followed me around for days. And still, try as I might, I can’t envision a world where all the credit cards stop working. The life of normal people – buying groceries, paying bills – would unravel into confusion overnight. What has happened to me, and what has happened to the world? My old leftist beliefs now seem as anomalous and faintly ridiculous as a masked Sub-commandante Marcos, Zapatista rebel, son of a furniture-store owner, emerging from the Mexican jungles to post his demands on the Internet.

On the stability of software artifacts:

We can’t live without cash machines the way we can’t live without natural gas, I thought. There is no way back. This is the fragility of what passes for regular life in the electronic era. We may surround that gas line with fancy moldings, all decorated with curlicues, yet it remains what it is: a slim pipe full of explosives.

Software engineers need arrogance and humility:

And in those slow moments while their vision of future Jerry was sketched across the whiteboards – intranet, Internet, cool, hip, and happening – I knew I had utterly and completely lost that arrogance in myself. I missed it. Suddenly and inexplicably, I wanted my arrogance back. I wanted to go back to the time when I thought that, if I tinkered a bit, I could make anything work.

Oh, Ellen, I was thinking, What a great fake you are. I was thinking this because, even as I was raising such excellent issues, I knew it was all beside the point. What I was really thinking was: I have never written an intranet program in my life, I have never hacked on one, I have never even seen one. What I was really feeling was panic.

There is only one way to deal with this humiliation: bow your head, let go of the idea that you know anything, and ask politely of this new machine, “How do you wish to be operated?” If you accept your ignorance, if you really admit to yourself that everything you know is now useless, the new machine will be good to you and tell you: here is how to operate me.

Ullman on remote work (I want to comment, this was in 1997. She was very prescient.):

But the virtual life of techno-business requires something even more than inspiration. What is mandatory is that you present to the world the appearance of actual existence. You must seem to be a company in the usual sense of the word, with an office full of humming enterprise. Nothing is stranger than sitting in dirty sweatpants and picking up the ringing phone to say “Ellen Ullman speaking” in a mature, efficient voice. It is as if I have projected myself into another universe, where I am dressed in a blazer and slacks and my hair is washed, some place completely discontinuous with the universe I inhabit in sweats. While I speak on the phone – to a client, a CEO – I am aware that I have thrown my voice correctly, that they have seen me as I wished to be seen: a clever, enterprising woman sitting at a fine desk. To hang up then is almost painful. Click. I return to myself: creature swimming alone in puddles of time.

And, in endless rounds of deconstruction, the company selling the equipment may itself simply be an entity with an 800 number, suppliers, and subcontractors. It orders bits of hardware from other companies (each with its own 800 numbers and subcontractors), assembles things in cases, puts them in boxes, advertises, and lets someone else answer the phone. Behold: the modern global corporation.

But what difference does it make: Why should I care about a company’s physical coordinates? What does it matter if the person I’m talking to is sitting in the basement of corporate headquarters or at home thousands of miles away? The telephone, the fax, the computer network reach everywhere, don’t they?

My work hours have leaked into all parts of the day and week. Eight in the morning, ten at night, Saturday at noon, Sundays: I am never not working. Even when I’m not actually doing something that could be called work, I might get started any minute. So everything is an interruption – a call from a friend, an invitation to lunch – everything must be refused because it is possible that from one moment to the next I will get back to something.

I’ve turned on the television, a familiar noise to help me concentrate. Now and then, I’m aware that I’ve tuned into Ricki Lake, a program I watched for the first time when my father was dying in the hospital. What drifts back at me is the horrible boredom of death, which no one ever talks about, but which exists all the same: the hours spent sitting on a hard plastic chair in a tiny hospital room while the television, ignored by the dying, plays on for those attending. For a moment, the boredom of death and the dullness of work intersect. Am I earning a living, I wonder, or just trying to fill a very large, self-made solitude?

In the afternoons, I see us virtuals emerge blinking into the sunlight. In the dead hours after 3 PM, we haunt cafés and local restaurants. We run into each other at the FedEx drop-box or the copy shop. They, like me, have a freshly laundered look, just come out of pajamas or sweat pants, just showered and dressed.I recognize my virtual colleagues by their overatten-tion to little interactions with waiters and cashiers, a supersensitivity that has come from too much time spent alone. We’ve been in a machine-mediated world – computers and e-mail, phones and faxes – and suddenly we’re in a world where people lumber up and down the steps of buses, walk in and out of stores, have actual in-person conversations. All this has been going on while I was in another universe: that’s what comes to us with a force like the too-bright sun or a stiff wind off the bay. We do our business, drop off the overnight packet, clip together the xeroxes, and hurry home.

Sometimes I think about taking a real job, with a real company. So what if my virtual company is what everyone imagines is a perfect life? I’m no different from anyone else: I want the security, routine, and camaraderie of the office. At the AIDS project, I watched a year and a half pass in the comforting round of holidays. One day there were spiders hanging from the ceiling and witches on the wall; the next, Indian corn and leaves pinned to the windows, like a grade-school classroom in the coziness of fall; later, blinking lights on the reception desk, the tree, the holiday party. I think it would be relaxing to take a job, have the soothing circle of the seasons go ’round you, go someplace where they’ll understand if you get sick or just tired.Then I remember: I was once a devoted employee. I stayed at a software company for two years, left, went back. Contented in that real-company sort of way, I thought I would stay forever. But one day I arrived late to work from a dentist’s appointment to find my colleagues heading toward me with their belongings in cardboard boxes. The software company had been swallowed up by a much larger one. Only a small maintenance crew would be left. My project and all the others had been killed, and what remained of two years of my group’s work was backed up by someone in a hurry. Later it turned out that the back-up format was unreadable.

Ullman on the satisfaction of programming:

They arranged a demonstration of their work for the entire company. They put out cake, ice cream, champagne. The worried sales and finance people did their best to be impressed. In the middle of the demo, I realized how fortunate we were to be engineers. How lucky for us to be people who built things and took our satisfactions from humming machines and running programs. We certainly wouldn’t mind if the company went public and we all got fabulously rich. But the important thing was right in front of us. We had started with some scratchings on a whiteboard and built this: this operational program, this functional thing. “And look,” said the lead, demonstrating his handiwork, “You just click here, drag here, and click here-”
“And it works,” I said.
“Yeah,” he said, exhaling the word in a long breath of contentment, then standing back, exultant. “Yeah, it works.”