News from Michigan.
The Republican Party of Michigan held a press conference Friday afternoon and revealed six thousand Republican votes were calculated for Democrats after a software glitch. That software was used in dozens of counties around the state.
“In Antrim County, ballots were counted for Democrats that were meant for Republicans, causing a 6000 vote swing against our candidates. The county clerk came forward and said, ‘tabulating software glitched and caused a miscalculation of the votes.’ Since then, we have now discovered that 47 counties used this same software in the same capacity,” Michigan GOP Chairwoman Laura Cox said.
Software does not “glitch.” That is a lie.
In order to set the stage for what I’m about to say, let me divert for a moment to an analogy. A former colleague of mine, a fellow registered professional engineer like me, was sitting before attorneys and being questioned for jury duty. Apparently, the attorney was working a case where, I guess, someone took Otis elevator to court over an elevator malfunction (I don’t know of other elevator companies, so I just threw in Otis).
The attorney asked my colleague, “Do you believe that elevators can fall for no reason?” My colleague replied, “No. There will always be a reason for what happens. It might be a brake malfunction due to failure of some component, poor maintenance, or something else. It might take a formal root cause analysis to ascertain the reason for the failure. But an elevator cannot fall for no reason.” My colleague was dismissed until the attorney found enough jurors who believed that elevators can fall for no apparent reason.
The mathematics of ballot counting is simple. We’re not solving differential equations in Python (something I’ve done). This is addition, and elementary school children learn to do it at a young age.
Furthermore, let’s assume that the software is written in Python (it could be another language, but this will suffice for the purpose). If a programmer wrote a piece of code that said of some given data set, for every ballot for candidate A, sumA += 1, it cannot possibly be interpreted as for every ballot cast for candidate A, sumB += 1. It doesn’t work that way unless it is intentional.
Ah, you say, but Python doesn’t compile. The coding could have been written in C++. Okay, but any C++ compiler that produced a result like this would have been found out within a day of releasing the compiler and would have been panned by the engineering and scientific community. The company doing something like that would go bankrupt. Compilers don’t produce errors like that. Problems that severe are worked out long before release of the new version.
Things in coding that produce wrong answers aren’t called “glitches.” They are called bugs, and coders work very hard to fix code bugs. Many times, code doesn’t compile with bugs. But if it does and an incorrect computation makes its way into the coding, this is the fault of the coder.
A coder would not make the error of adding the sum of A to the sum of B unless it was intentional. What the county clerk wants you to believe is that coding has “glitches,” or hiccups, or has anthropomorphic characteristics like “bad hair days.” For no obvious reason, it just does something wrong. Or for no apparent reason, it does things one way today, and another way tomorrow. The county clerk wants you to believe that elevators can just fall for no reason.
There is no such thing as a “computer glitch, twitch, scratch, sneeze, bad hair day,” or otherwise. It doesn’t work that way. The people promulgating that myth think you’re stupid and that coding doesn’t work right unless it has had its coffee that morning.