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.
On February 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 speed-up 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.
Karl D. Stephan is a professor of electrical engineering at Texas State University in San Marcos, Texas. This article has been republished, with permission, from his blog Engineering Ethics, which is a MercatorNet partner site. His ebook Ethical and Otherwise: Engineering In the Headlines is available in Kindle format and also in the iTunes store.