A US software jockey helps create the technical infrastructure for the election of the century - in South Africa.
There wasn't enough time. Not just for building the computer systems, but for everything. The schedule was insane. It was as if we were trying to build a nationwide banking system in six weeks, in a huge, politically unstable country where terrorist bombings are routine. Open 9,000 branch offices all on the same day, run for four days, and then shut down - without losing anybody's money.
Our task, in April 1994, was to help South Africa prepare for its first multiracial elections. The enormous responsibility of these elections would rest with the Independent Electoral Commission, where I would work on computer systems. As a software jockey from the US, and a member of Computer Professionals for Social Responsibility (CPSR), I would be loaned to the South African Commission from the CPSR Computers and Elections project, which assists the US Federal Election commission with voting equipment standards, analyzes elections, and gives advice on election security. Fellow CPSR member Bob Wilcox and I have been running the project for seven years.
In March, I got a phone call from the International Foundation for Electoral Systems, which sends technical and other experts to "difficult" elections, often in the Third World. Were we interested in helping with software for the South African elections? Of course we were - how could we turn down the opportunity to work on the election of the century?
The challenge would be daunting. The South African electorate, newly swelled with the enfranchisement of the huge black majority, was estimated at 25 million, but there was no census to show where they lived. How would we tell people where to vote if we didn't even know where they were? How would we make sure we sent out enough ballots and election workers if we could only guess how many people would show up at the polls? Just directing voters and workers to polling places was difficult with addresses as makeshift as the facilities themselves. (One polling site was officially called "the tent behind Bob's house.") Ballot boxes, polling equipment, entire counting stations, and millions of ballots had to be deployed in a country that encompassed sprawling urban leviathans as well as outposts a day's drive from a telephone. Worse, the elections had only been announced five months earlier. What would normally take a year to complete had to be done in 20 days.
To keep track of these mammoth, frenzied, and changing circumstances, South Africa would need massive databases to follow people, places, and equipment. And massive databases to record protests, incidents of violence, and the election results themselves. Software was needed to manage these databases, enter new information, and produce reports. The task would have been impossible without computers, but even with the technology we could still only hope we'd bought enough time. A common South African expression - "The wheels come off it," meaning something has become a fiasco - seemed to preface far too many conversations around the commission.
I arrived at Jan Smuts airport 20 days before counting started and drove to Johannesburg. April is autumn in South Africa - the rainy season is over, and the weather is pleasant. Like a street hustler, Jo'berg is friendly, threadbare, and menacing. The center of South Africa's mining region, Jo'berg is called the "City of Gold" because its modern, graceful towers were bought with precious ores from beneath the surrounding plateau. But depressed gold prices, a drought, and sanctions have taken their toll. The wealthy white suburbs are tidy and peaceful, but the city itself is run-down and dangerous. The streets reek of garbage and urine. Muggings are common after dark.
I didn't have much time to worry about Jo'berg's decline, however. After I checked into the hotel, I went over to the Independent Electoral Commission headquarters to get started. That's where I would work every day for the next 25 days, an average of 16 hours each, scattered around the clock in an irregular blur. I didn't go through jet lag, I just went to work.
The commission, headquartered in a 10-story building five blocks from our hotel, was a caricature of a busy office building. People were charging around and shouting at each other 24 hours a day. A constant stream of new faces and equipment poured into every office. People shared desks. People shared chairs. The phones were always ringing, the faxes faxing, the elevators jammed, and the air heavy with air-conditioned sweat. The commission didn't hum, it roared - sometimes painfully loud.
Applications were being written and deployed daily, if not hourly, including systems to track 200,000 elections employees, 9,000 polling locations, warehouses full of equipment, and the voting results themselves. Because I was one of the few software people with elections experience, I was quickly assigned to design the vote tabulation system.
This was no small task. In recent white-only elections, the results from the entire country had been produced on a Lotus spreadsheet. But with the black majority swelling the number of voters from about 2 million to 25 million people, this election wasn't a spreadsheet problem. Voting was to take place over three days, from April 26 through 28 and was later extended a day. On the evening of the last day, the polls would close, and all the ballot boxes would be trucked to counting centers to be tallied.
There were roughly 1,000 counting centers. As each batch of ballots was counted, a tally sheet would be filled out, showing the votes for each party. This sheet would then be faxed to the commission. We expected an average of 25 batches from each center, which meant 25,000 tally sheets. It would have taken a month and a half, day and night, to fax these tally sheets on one fax machine. Fortunately, we had dozens at the commission dedicated to receiving the forms.
The tabulation system processed these faxes and entered them into the database. Another program then totaled the results per party and passed these results to a transmission program that sent them to the world's news media. As the count progressed hour by hour, new election results would appear on millions of TV screens minutes after we had received them.
All of these programs for tabulation were written by a small software group inside the Election Administration Directorate. It was the dawn patrol of software. Beside me, there were two other Americans: forms whiz Mario Tejada and Michael Yard: ex-minister, ex-flower child, expert in databases. The South Africans included Etienne Posthumus, a 22-year-old software wonder boy. We worked elbow-to-elbow on laptops set up on rickety, folding metal tables. Power failures sometimes left us working by the light of our screens. A foxhole wouldn't have been a bit more intimate.
We dressed as we pleased, worked the weirdest hours in the building, and survived on Brazilian coffee, Coke, and strange candy bars. I'm not sure how much confidence a bunch of caffeine- and sugar-hyped hackers in dirty jeans inspired, but nobody gave us trouble. Maybe they were afraid to ask.
With 13 days until the count, we of the dawn patrol had designed a software architecture and a paper flow for tabulation. We built databases tracking parties and results. The databases for voting and counting centers should have been complete, but new centers had to be added as huge new chunks of population were uncovered and as prospective centers were bombed or burned down.
"It's a quiet day," a commissioner told me, his dry Scandinavian humor belying the grave situation. "Only one [commission] office was bombed today."
Eleven days before the count, and only a week before voting started, the commission was awash in rumors that the Inkatha Freedom Party, the Zulu political party of some two million voters, would now be participating in the elections. Around 10 a.m. on April 19, I was told to be ready for an unspecified "additional party." By 1 p.m., I got the official word: Inkatha was in. Now there were 19 parties in the national election. The problem was, however, that the ballots had 18 parties printed on them; tally forms for counting all the ballots had 18 boxes; computer input screens for these forms had 18 fields; and - you guessed it - electronic records for transmitting results to the news media were built for 18 parties.
The ballots - larger than this magazine page with full four-color pictures of each party's flag and leader beside its box - had been printed weeks earlier in England. It was too late to reprint these elaborate sheets, so a sticker with the Inkatha flag and a picture of the Zulu party leader, Chief Mangosuthu Gatsha Buthelezi, would be affixed. It was also too late to reprint all the thousands of tally forms, so Inkatha's name would be added by hand. The computer screens and the electronic transmission form could be fixed, but it took time, and the software had to have the parties in same order as the paper forms. Except now we didn't know what those tally sheets would look like. I talked to Lisa Thornton, who was coordinating work on Inkatha. She was meeting with the commission at 5 p.m. to figure out how to get tens of millions of stickers printed and distributed in a matter of days. She'd try to get me answers after the meeting, but she couldn't promise anything. There was so much to do.
"Less than the amount of work emergency-room doctors and nurses and undertakers would have to do otherwise," I said.
"Yes, of course," she said. "This is good news, but - "
"How much more good news can we stand?"
Now, almost the entire political spectrum was participating in the elections; it was all the more important that the elections be credible. It was like living on camera. Billions of people would watch every gesture, every line of code. The whole election funneled through our work. It was as if I were working in a sandwich shop, and God walked in and said, "The fate of 40 million people depends on the salami submarine I'm ordering, and hold the onions." Everything was doable, but the stakes were high enough to be unreal.
Late that night, there was a thunderstorm. I got to the hotel just ahead of the rain, and wrote input routines on my laptop in the dark, watching the lightning. The rain washed away much of Jo'berg's grime and reek. By now I was pacing myself, working only 14-hour days. I would need my strength when counting started.
The next day we completed the data structures, and I got an input system running that expected 19 parties.
With a week left, Bob and I took a rare evening off (which is to say we quit at about 9 p.m.) and went to a party. We returned very late, and I stayed up to do a little work. Consequently, I was sleeping in the hotel the next morning when a white man reportedly left a car containing about 200 pounds of plastic explosives on Bree Street, a block away. The explosion rocked the hotel and wounded 100, killing nine. It was the largest car bomb in South African history.
I immediately thought the bomb might have been targeting the commission - sabotaging it would have delayed the elections and probably started a civil war - but when I called the offices there, Mario answered the phone. I went to a window and looked down on the destruction. A cloud of smoke rose languidly from the bomb site. A water main was broken, carrying the red soil away, resembling a river of blood. There were shattered windows on all sides, and the storefronts were destroyed. The roof on one building had collapsed. Bob and I went out to investigate. It was at once calm and threatening, like being inside the barrel of a gun. Twisted cars were strewn about like neglected toys. Nothing remained of the bomb car.
That night, I was wakened by another bomb directly outside the hotel. The hotel was full of foreigners, mostly election observers, and someone was trying to scare us off. I felt like a sleeping target.
Four days before the count, the old South Africa vanished when, at midnight, officials lowered its flag at the Parliament building in Pretoria and hoisted a colorful new one: black, green, gold, blue, red, and white, incorporating the colors from every South African political party.
Voting started the next day. Counting wouldn't start until all voting was finished, in four days, but, feeling this was the last opportunity for violence to derail the elections, everyone was edgy. The authorities ran extra patrols of bomb-sniffing dogs through the commission, and most of us went home early, although I didn't feel much safer in the hotel.
By counting day, everything was ready to go, despite some last minute database changes demanded by our supervisor. About 11 p.m., the first results trickled in.
By 1 a.m., we were reporting a million votes cast. But that struck me as too few - the results weren't being reported fast enough, so I was called upstairs to report on progress. Because of the database changes, we were reporting only half our results to the South African press. The other half couldn't be reported until a tricky program called the Summarizer, which totaled the votes for each party and cross-checked the totals, was fixed to account for the database changes. We were sitting on close to a million votes that weren't being reported to the world. I agreed to have this fixed by 2:30.
I went back downstairs to a scene of total chaos. Not only did we have a nasty software fix ahead of us, but now the server was refusing connections, so only about a dozen of the 24 data entry stations were working. Faxed tally sheets from the counting centers - hundreds of thousands of votes - were piling up, and the world was waiting. The whole election was inside that server, and if it was sick we could lose everything if we touched it. It was a pretty scary situation, but I decided we'd have to reboot it anyway. We got it down at about 2 a.m.
Geva Patz was working on the server. He found a hardware fault, pulled the offending unit, and managed to get the server back up in 15 minutes. All the data entry stations worked flawlessly. Neil Cawse fixed the Summarizer in a shade over 15 minutes. There had been no data feed to the media for half an hour, and they would start to scream any minute. We turned the live data feed to the world back on. If any of the sleep-deprived programmers working on the Summarizer had made a mistake, it would show up on millions of TV screens in a few minutes, probably as drastically wrong results. We went over to the transmitting computer and held our breath as we watched the vote totals. Through bleary eyes, we saw reasonable numbers of votes scrolling across the screen. I stayed until Mario and Etienne showed up mid-morning.
Two days later, with results from all over the country showing them getting close to two-thirds of the vote, the African National Congress declared victory. Several of us from the commission crashed the victory party, which was across the street at the Carlton Hotel. Only a month earlier, people had been hacked to death here by machete-wielding rioters. That night, Jo'berg had emptied its population onto the streets, and both the commission and the Carlton were surrounded by a sea of exuberant black faces. I waded in, carrying four paper South African flags - of black, green, gold, blue, red, and white.
As I rounded the corner of the hotel, a middle-aged woman wearing a scarf was thrown against me by the crowd. She saw at my flags, looked at me excitedly, and asked, "May I have one?"
I obliged without hesitation, aware of the irony: it was her country, but I was handing out the flags.