Ruminations

A lot happens before ideas become solutions.




At ElixWare we want to bring you more than just great, affordable software. We want to let you know how and why we do what we do.

Our Ruminations blog will bring you insights into how we got here and some of the things we consider when trying to help you run your business. We hope it gives you a better understanding of how we strive to better serve your needs.

Testing 1, 2, 3

A vote for belts and suspenders

A Toe In The Rubicon
After trying to avoid it since we started this blog, the time has finally arrived. This post is about politics. Kind of.

Monday was the official starting pistol of the 2020 presidential primary season. Iowa held their caucuses and the results surprised everyone. At least the fact that there were no results did.

In the United States we're used to almost instant results. Not necessarily the moment the polls close, but usually shortly thereafter. In close races it may take a few hours to get things sorted out, but while we're waiting we all know how close things are. But not this time. This time the only thing we know is that most precincts are blaming an app.

Count Me In
The Iowa Democratic Party spent over $60k for an app to help local precincts count and report the results of their caucuses. On the surface this seems like a good, and a bad, idea.

The good part is obvious: a controlled data environment with limited access should result in secure data and fast reporting. Emphasis on "should".

The bad part is even more obvious: election results should always have paper ballot backups. More emphasis on "always".

Fortunately the Iowa caucus organizers claim to have paper ballot backups, but they don't seem to have had a backup plan. Dead horse alert: normally I would quote Eisenhower here, but in this case a plan should have been in place and ready to go.

Iowa isn't the only early primary state that plans on using an app. Nevada also plans to use the same app for their caucus results later this month. After spending over $50k on the app I'd be willing to bet that today the Nevada State Democratic Party is testing it like there's no tomorrow.

Technology To The Rescue
For most tech people, and many regular people, a technological solution almost always seems like a good idea. Really, what could possibly go wrong?

Getting things right is important. Especially when the occasion is important, dangerous or if the world is watching. A good rule of thumb is "the more consequential something is the more redundancy should be employed".

Elections are important, and can be complex (e.g., ranked-choice voting). They're arguably more complex than pants (and possibly more important) but less complex than a space mission. I'm not claiming (yet) that elections can be as complex as a space mission, but even pants have an option for a belt and suspenders so why not elections?

The Less You Know
Recently a test of online voting in King County, WA began. It runs from January, 22nd through February 11nd. Though ground breaking in the US, e-voting has been happening in Geneva, Switzerland since 2003 and has been slowly expanding into other Swiss cantons. In fact, e-voting has been happening long enough that in 2019 Swiss politicians and computer experts launched an initiative to ban e-voting for security reasons.

E-voting is where I start grousing that elections can start to rival the complexity of a space mission. Hacking and election interference is a serious concern, and that doesn't even include the perils of online voting.

I'll be honest, I've done some research and some rough work on this subject. Someone like me could disrupt state and/or national online elections to a significant enough degree as to render the results contestable. Yes, the election commissions could take reactive countermeasures to prevent some methods of interference, but not during the election. There are no do overs for elections, so fixing it afterwards involves a barn door idiom.

I'll cover more about e-voting and all it entails in a future post.

Test, Rinse, Repeat
When it comes to software development, security should always be the first consideration. Next comes stability & reliability. That one-two punch can often knock out a project before it ever gets off the drawing board. Without both security and stability your data integrity comes into question. That kind of sounds like the Iowa caucuses app results.

Software testing comes in many forms. While coding, we do a lot of smoke testing and sanity testing. But testing shouldn't stop there. There's unit testing, regression testing, stress testing and many other types of testing. This may sound like a lot of testing, but keep in mind that software, like elections, is more complex than pants.

Each project needs different types of testing in different measures. And you know who shouldn't do the final testing? The programmer(s) who wrote the code. Not because they'd make sure the software passed the tests, but because their knowledge of how the software works can unconsciously influence how they test it.

The best testers are people who know what the software is suppose to do and nothing else. They should be motivated by a bounty on each and every bug they find, including cosmetic bugs. And the test results should be reviewed by these types of testers as well (though they should never review their own test results). There should be bounties on any bad data or errant results they find.

Declaring A Winner
I'm going to go out on a limb and declare that no matter which candidate ends up winning the Iowa caucuses, the loser is definitely the Iowa Democratic Party (who seem to have found their pants around their ankles). And let's not forget Shadow, Inc, the authors of the Iowa caucus app.

If paper is good enough for money it's good enough for ballots. Just don't let that baby feeding robot insert the ballots into the optical ballot scanner.

prev post: Your Business - Budgets

next post: Your Business - Supply Chain Security


more posts by this author

more posts in this section

Contact Us

ElixWare Software Solutions
solutions@elixware.com
P: (859) 644-2771

Social

About Us

We are a small team with a lot of experience, specializing in software development, design, and workflow, process & project management. We are fiercely dedicated to helping you do what you do best — run your business — without getting bogged down in the mountains of paper and hours of screen time required to do it. We are equally dedicated to protecting your privacy and your data. Learn more about our privacy policy.