In Lewis Carroll's Alice in Wonderland, Alice falls
into a pool of her own tears (don't ask) and eventually makes her way to shore
amid a crowd of animals. One of them, a bird
called a Dodo (which was extinct long before Carroll published his work in 1865)
suggested that they all dry out by running a caucus-race. The Dodo marked out an irregular course, and
everyone "began running when they liked, and left off when they liked, so
that it was not easy to know when the race was over." The ensuing chaos was echoed in Democratic
politics last week.
Last Monday, Feb. 3, the Iowa Democratic Party inadvertently
staged a caucus-race of its own when precinct leaders in the 1,700 or so Democratic
caucus sites tried to use a new smartphone app to report their results to
headquarters. To make a long and
nail-biting night short, the app failed, and it took another day or longer before
the nation learned the results of the very first official 2020 party selection
process for the Democratic nominee.
Numerous analysts and commentators have opined on what went
wrong and why, and as I'm no software expert, I will take their word that the
cause was a combination of factors: a programming
flaw that led to serious inaccuracies in the transmitted data; a failure to
test the app thoroughly before deploying it; and a user-hostile interface that
required chairpersons to download auxiliary apps and/or change obscure phone
settings to get it to work. In view of
the fact that the people using the app were not software experts, but volunteers
from many walks of life, it's not surprising in retrospect that something went
wrong.
One commentator I read remarked that sometimes the
old-fashioned telephone is better than a newfangled app, noting that the
Associated Press election-night results that serve as the national gold
standard for election news are still reported by human beings over the
telephone to a central location, where they are collated and disseminated to
news outlets. When it became clear that
the app wasn't working, the Iowa precinct chairs resorted to phoning, but the
headquarters phone bank was not prepared for such an onslaught of calls, and
most callers just got a busy signal.
At no time were the actual vote tallies at risk of being
lost. The whole problem was one of
communication, and not just on the night of the caucuses. Reports indicate that the app was developed
in haste and without adequate testing. Its
deployment was marked by insufficient training of volunteers, many of whom
weren't able to get the thing to run on their phones easily even after they
followed the instructions. As a result,
the very leading edge of what will be a long and twisting road for the
Democratic candidates for nomination from here to the national election night
next November was blunted by needless confusion and delay.
Software engineering as a discipline is one of the younger
divisions of engineering, and in contrast to the older fields such as civil and
mechanical engineering, traditions and standards for it are fairly new and
still in a state of flux. It is still a
discipline in which people without college degrees can make viable careers, as
many a high-school nerd who fell in love with coding can attest. And this is not to say that a college degree
is a guarantee of professional integrity.
The most such a degree can do is expose the student to a standard set of
educational experiences that include a warning about the wider implications of
what software engineers do, and how to take responsibility for the potential
for failure that any act of programming entails.
In the absence of any detailed information about the firm
that developed the failed app, all we can do is look at the results. Unlike product rollouts, election and caucus
dates are firmly entrenched in the calendar. It looks like whoever had the bright idea to
get an app developed for this purpose either didn't have the idea soon enough,
or wasn't able to get the process rolling until just a few months before it had
to be used.
One of the reasons I'm in academia rather than industry is
the fact that I don't work that well under time pressure. Other people, including some software
developers, thrive on it, and if so that's fine for them. But there are limits to any speedup of work,
and even if the software itself had been flawless, the time remaining between
when the developers said it was ready to be deployed and the caucus date itself
may not have been long enough to allow for adequate training. It's difficult to get volunteers together for
a purely auxiliary thing like software training. It begins to sound too much like a job. So that may be one reason that training was
neglected.
And when the full magnitude of the disaster became obvious,
there was evidently no Plan B in place.
I don't know how much it would have cost for the headquarters to have
hired enough phone-answerers to handle telephoned-in results just in case the
app didn't work, but it would have been money well spent. The rule that ocean-going vessels must have
enough lifeboats for everybody wasn't adopted until after the Titanic
sank with all the people who couldn't get on the inadequate number of
lifeboats. If your primary system fails,
a secondary system that works only halfway isn't much better than no system at
all.
In the event, the absence of results enabled all the candidates
to claim victory for a while that night, just as at the end of Alice's Caucus-Race,
the Dodo said, "Everybody has won, and all must have
prizes." The losers last Monday,
unfortunately, were not only the candidates who came in behind the eventual
winner, but everybody who wanted to know the results right away.
Sources: I
referred to a New York Times opinion piece by Charlie Warzel at https://www.nytimes.com/2020/02/04/opinion/iowa-caucus-app.html
and articles at https://www.nbcnews.com/tech/security/iowa-caucus-app-was-rushed-flawed-beginning-experts-say-n1131216
and https://gritdaily.com/iowa-caucus-tech-disaster/. I thank Michael Cook of Mercatornet.com for
suggesting this topic and drawing my attention to the Times piece.
No comments:
Post a Comment