- Home
- Ellen Ullman
Close to the Machine_Technophilia and Its Discontents Page 3
Close to the Machine_Technophilia and Its Discontents Read online
Page 3
I thought about Danny and Mark and Joel. Somehow I couldn’t see them in this well-run team of players. But the woman was a vice president at a very large credit-card corporation. She got paid to talk this way. “Corporate users,” I thought. They live where software edges into business. Corporate end users: wildebeests of the programming food chain, consumers, roaming perilously far from the machine.
I realized I was thinking this because I was practically an end user myself, working on the AIDS project, and I had a deep need to distance myself from anything remotely resembling corporate systems. I’m a software engineer, I kept telling myself, an engineer. I had spent too long at this—nineteen years—to give up my technical credentials just yet.
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.
The vice president went on to describe her development process. “Everything we do starts from a complete requirements analysis.”
I imagined months, years of meetings; reams of paper. Flowcharts. Spreadsheets.
“Then it moves to the systems analysts, who turn those requirements into system objectives and timelines.”
More meetings, documents, flowcharts, spreadsheets. Dataset listings. Equipment requirements. Proposed configuration drawings.
“User departments then review the system functional specification.”
Contentious meetings. Users trying to articulate needs that don’t fit neatly into all the flowcharts and drawings. Compromises. Promises of “future development” to take unaddressed needs into account.
“Then it moves to programming,” said the vice president.
She swirled the glass, inhaled the nose, took a sip of the Bordeaux. “For us, programming is the smallest part of the process. Lovely wine,” she said. I nodded vague agreement out of courtesy. The vice president and I at least shared a taste for red wine and a fondness for wearing all black. “Since we go through all the right steps, eighty to ninety percent of the systems we specify go on to successful deployment.”
She was triumphant. She drained her glass.
Still, I thought of the place where “it moves to programming.” I asked and found out that the vice president didn’t see much of the programmers; they were levels beneath her; they worked in a building a ten-minute drive from her office. When “it moved to programming,” it literally moved, far away from her, into some realm where other managers had to deal with the special species of human being known as programmers. I noticed how, perhaps unconsciously, the movement to programming was where the vice president stopped to drink the wine. I noticed how quickly she moved from programming to “deployment”—there, done, success. In that place she ran over so quickly was a dimly understood process: programmers turning the many pages of specifications into a foreign language called code.
“If managing programmers were so easy, there wouldn’t be so many books on the subject,” I said, trying not to sound defensive.
“Uhmm,” she demurred. “Quite possibly.”
Here I was on more certain ground. I knew no one can manage programmers. “A project leader I know once said that managing programmers is like trying to herd cats.”
“Uhmm,” she demurred again. “Clever.”
“I mean, you don’t want them to stop being cats,” I kept on bravely. “You don’t want obedient dogs. You want all that weird strangeness that makes a good programmer. On the other hand, you do have to get them somehow moving in the same direction.”
“Clever,” she murmured again, her focus beginning to roam around the room.
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.
Then I remembered that she probably had no fears or doubts around me. All she knew about me is what I’d told her: that I’m a software engineer. I’m no one.
I thought of her programmers sitting in their cubicles, surrounded by the well-dressed swirl of analysts and managers. The “system” comes to them done on paper, in English. “All” they have to do is write the code. But somewhere in that translation between the paper and the code, the clarity breaks down. The world as humans understand it and the world as it must be explained to computers come together in the programmer in a strange state of disjunction.
The project begins in the programmer’s mind with the beauty of a crystal. I remember the feel of a system at the early stages of programming, when the knowledge I am to represent in code seems lovely in its structuredness. For a time, the world is a calm, mathematical place. Human and machine seem attuned to a cut-diamond-like state of grace. Once in my life I tried methamphetamine: that speed high is the only state that approximates the feel of a project at its inception. Yes, I understand. Yes, it can be done. Yes, how straightforward. Oh yes. I see.
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.1 In the painstaking working out of the specification, line by code line, the programmer confronts all the hidden workings of human thinking.
Now begins a process of frustration. The programmer goes back to the analysts with questions, the analysts to the users, the users to their managers, the managers back to the analysts, the analysts to the programmers. It turns out that some things are just not understood. No one knows the answers to some questions. Or worse, there are too many answers. A long list of exceptional situations is revealed, things that occur very rarely but that occur all the same. Should these be programmed? Yes, of course. How else will the system do the work human beings need to accomplish? Details and exceptions accumulate. Soon the beautiful crystal must be recut. This lovely edge and that one are gone. The whole graceful structure loses coherence. What began in a state of grace soon reveals itself to be a jumble. The human mind, as it turns out, is messy.
What has happened to the team so affably described by the vice president? The process moving so smoothly from left to right that it could be described without spilling a drop of red wine? It has become a struggle against disorder. A battle of wills. A testing of endurance. Requirements muddle up; changes are needed immediately. Meanwhile, no one has changed the system deadline.
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 hu
man 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.
The goal now is not whatever all the analysts first set out to do; the goal becomes the creation of the system itself. Any ethics or morals or second thoughts, any questions or muddles or exceptions, all dissolve into a junky Nike-mind: Just do it. If I just sit here and code, you think, I can make something run. When the humans come back to talk changes, I can just run the program. Show them: Here. Look at this. See? This is not just talk. This runs. Whatever you might say, whatever the consequences, all you have are words and what I have is this, this thing I’ve built, this operational system. Talk all you want, but this thing here: it works.
Weeks later, I visited the vice president in her office. Behind her desk was a view of the salt fields edging San Francisco Bay. A watery atmosphere hovered over the bay, and the eastern hills were just visible through mist. I watched seabirds out fishing, planes lowering over the water on their way to the airport. High up in this tower, past the protocols of guards and security badges, was a sense of wideness and largeness, calm and distance.
The vice president was in charge of reengineering the company’s global transaction processing. The vast network of banks, automated tellers, clearinghouses, computers, phone lines—all of which go into sending a single credit-card transaction around the globe—was her domain. Last Christmas Eve, her department processed seventy two million transactions. Three billion dollars whirred electronically across states, nations, oceans, and air. The very electronic backbone of capitalism: a universe of transactions, imagined money circulating on a planetary scale.
“If it all breaks down,” she said, “the banks can’t balance their accounts.” She was surprisingly matter-of-fact about this catastrophe. “They might do business for a day, but they won’t know what they’re doing.”
A wave of nausea washed over me: I imagined what it would feel like to leave a bug lying around and wind up being responsible for shutting down banks around the world.
“Can I meet the programmers who work on this system?”
She was uncertain for a moment. Then: “Well, yes. Maybe. Why not?”
“How many of them are there?”
“Three.”
“Only three?” Another wave of nausea: the odds of being the one responsible for shutting down world banking were just increased to one in three.
The vice president laughed. “We’re lucky to have them. The system is written in assembler.”
“It’s in assembler?” I felt a true, physical sickness. “Assembler?” Low-level code. One step above machine language. Hard to write, harder to change. Over time, the comments begin to outnumber the programming statements, but it does no good. No one can read it anyway. “How old is the system?”
“Fifteen years.”
“Fifteen years! Oh, my God … .”
I reconsidered the vice president, in her plain but excellent suit, whose billions in electronic funds were riding around the planet atop fifteen-year-old assembler code. Suddenly, I forgave her for saying that “programming is the smallest part of the process.” I understood her not wanting to dwell on the slip-space between the seventy two million transactions and the tangled human-built logic they must traverse. No, it’s best just not to think too much about the people who wrote the code. Just let it all “go off to programming.” Let three lucky programmers take care of it. There: Gone. Done. Deployed.
When the vice president saw my sympathies, she relaxed. Now she wanted to talk to me about all the “groovy new technologies” being tried out by a special programming group. Multitiered client-server, object-oriented systems, consumer networks—all the cool stuff that was on the opposite side of the universe from her fifteen-year-old assembler code.
“We need all that new technology to handle the complexity,” she said. “The number of transactions is growing geometrically. The number of variables—the banks, their needs—keeps accelerating. We want the programmers to go off and be creative with all this new stuff,” she said.
She was happy for a moment, imagining her domain growing yet wider, yet busier, yet groovier. We both sat back and let the sexy glow of new technology overtake us. Then her mood took an abrupt shift. “But the programmers, the programmers … .”
She stopped, a dark look on her face.
“The problem is the programmers. Especially the ones working with the new stuff. Nobody can figure out how to manage them.”
We sat quietly. The slip-space opened before us. The world and its transactions sat on one side. The programmers, the weird strange unherdable cats, roamed freely on the other. The vice president had peered into the abyss. Then she stepped back.
“Don’t tell anyone I said that,” she said.
Twenty years before my meeting with the vice president, I was a communist. I joined an underground party.2 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.
We are all hooked on the global network now, I tell myself, hooked to it and hooked on it. The new drug: the instant, the now, the worldwide. A line from an old Rolling Stones’ song and an ad for an on-line newspaper keep running through my head:
War, children,
it’s just a shot away, it’s just a shot away.3
The entire world
is just a click away.4
The global network is only the newest form of revolution, I think. Maybe it’s only revolution we’re addicted to. Maybe the form never matters—socialism, rock and roll, drugs, market capitalism, electronic commerce—who cares, as long as it’s the edgy thing that’s happening in one’s own time. Maybe every generation produces a certain number of people who want change—change in its most drastic form. And socialism, with its quaint decades of guerrilla war, its old-fashioned virtues of steadfastness, its generation-long construction of a “new man”—is all too hopelessly pokey for us now. Everything goes faster these days. Electronic product cycles are six months long; commerce thinks in quarters. Is patience still a virtue? Why wait? Why not make ten million in five years at a software company, then create your own personal, private world on a hill atop Seattle? Then everything you want, the entire world, will be just a click away.
And maybe, when I think of it, it’s not such a great distance from communist cadre to software engineer. I may have joined the party to further social justice, but a deeper attraction could have been to a process, a system, a program. I’m inclined to think I always believed in the machine. For what was Marx’s “dialectic” of history in all its inevitability but a mechanism surely rolling toward the future? What were his “stages” of capitalism but the algor
ithm of a program that no one could ever quite get to run?
And who was Karl Marx but the original technophile? Wasn’t he the great materialist—the man who believed that our thoughts are determined by our machinery? Work in a factory on machines that divide the work into pieces, and—voilà!—you are ready to see the social nature of labor, ready to be converted from wage slave to proletarian soldier. Consciousness is superstructure, we leftists used to say, and the machinery of economic life is the “base.” The machines decide where we are in history, and what we can be.
During my days in the party, we used to say that Marxism-Leninism was a “science.” And the party was its “machine.” And when the world did not conform to our ideas of it—when we had to face the chaotic forces that made people believe something or want something or do something—we behaved just like programmers. We moved closer to the machine. Confronting the messiness of human life, we tried to simplify it. Encountering the dark corners of the mind, where all sorts of things lived in a jumble, we tightened the rules, controlled our behavior, watched what we said. We were supposed to want to be “cogs in a wheel.”5
When the Soviet Union began to crumble, and the newspapers wrote about the men who controlled the empire, I couldn’t help noticing how many of them had been trained as engineers. Our country is ruled by lawyers, I thought, theirs by engineers. Engineers. Of course. If socialism must be “constructed” (as we said in the party), if history is a force as irrefutable as gravity, if a “new man” must be built over generations, if the machine of state must be smashed and replaced with a better one, who better to do the job than an engineer?
“I’m a software engineer,” I reassured myself when I met the vice president, “an engineer.”