The Democrats should have hired the software developers from Thunderbolt online casino to write their mobile app. If you have not already heard, the Iowa Caucuses (one type of version of Primary voting for the US President) happened on Monday, February 2, 2020, and it was a disaster. It is over 48+hours later, and the results of that election are still not known. Never in the history of modern day voting in the US (modern technology – cars and phones) has there been a disaster in voting as there was in Iowa during 2020.
What went wrong, and how can we, as software app developers learn from this mistake.
What is the traditional 80/20 rule for Software Engineering?
The 80/20 rule means that 80% of your bugs are going to exist in 20% of your code. Or one can say that a software developer is going to spend 80% of their time in 20% of their code. No matter what type of app you are developing, this statistic is probably on track.
What is Microsoft’s version of the 80/20 rule?
I don’t know if this is a proven fact or just an industry joke. “Microsoft releases its software when it is 80% bug-free and then depends on the end-users to find the last 20% of the bugs.” Their rationale is that the most common bugs are going to be found internally, and that will leave only the obscure bugs that the end-users are finding.
When an app developer is dealing with a non-critical system (word processor, games, etc.) that is not the end of the world. You may get negative comments in your product reviews, but most likely it is not going to make international news.
There are three situations where Microsoft’s version of the 80/20 do not apply
If you had asked me 20 years, I would have said that there were only 2 cases: somebody’s life is on the line; somebody’s money is on the line. But with software being used in the recording, calculation, and even actual voting in US Presidential elections, voting has to also be added to this category. As my father would say, “People vote for their pocketbooks”. And since a lot of health and safety issues are paid for with tax dollars, voting is also connected to the “somebody’s safety” category.
It is Thursday morning in Iowa, and the vote counting is still only at 96%. The votes should have been counted by 10:00 Monday night or the morning on Tuesday the latest.
Right now there is a 3 vote difference between the two lead candidates. Pete Buttigieg has 550 State Delegate Equivalents and Bernie Sanders with 547 State Delegate Equivalents. Iowa has 41 Democrat delegates up for grabs and 27 of them have already been allocated. That means that 14 delegates are up for grabs with the last 4% of the votes that have not yet been counted.
If the final count before the super delegates are allowed to vote (city mayors, state governors, state party leaders, top people in the DNC, etc.) … if the final count is within 14 votes, the situation is going to get ugly. I would say that if the final count is within 41 votes not including the super delegates, things are going to get ugly.
When I am talking ugly, I am talking about riots which equals property getting damaged and people getting hurt. Any more questions on why Microsoft’s version of the 80/20 rule cannot apply to any software that deals with voting?
What did the Democrats do wrong? They ran out of time.
The main problem that the Democrats had was that there was a hard deadline. The date of the election cannot be changed just because the software is not ready to go “live”. When a person is writing a game app, if bugs are found, the release date can be changed. The developer might lose some sales, but it is not the end of the world.
As for elections, not even the President of the United States has the authority to change election dates. It takes an act of Congress, and I am talking a major act of Congress — amendment to the US Constitution major — ⅔ vote in both houses of Congress major. The President of the United States does not even get a vote. That is how major it is.
Shadow, Inc. rushed their app to the market and it had major bugs in the software.
From a New York Times Article dated Feb 04, 2020: “Iowa Democratic Party says it will begin releasing results this afternoon”
The secrecy around the app this year came from the Iowa Democratic Party, which asked that even its name be withheld from the public…. Its creators had repeatedly questioned the need to keep it secret, especially from Iowa precincts where it would be used.…
There were concerns that the app would malfunction in areas with poor connectivity, or because of high bandwidth use, such as when many people tried to use it at the same time.
Let that sink in for a minute. The Democratic party knew BEFORE election day that there was a high probability that their app was going to fail on election day. Not only did they keep this information from the public, but they also failed to create a backup plan. Actually, they did create a backup plan. The backup plan failed as well due to human gross incompetence which I will talk about later in the article.
Democrat Problem 1 – Workers were not given any training
This app was not a game that somebody is choosing to install and run on their phone. It was a critical app where the end users did not have a choice in the app. Voting volunteers are a lot of times are senior citizens. Senior citizens love their country, but in many ways, they are fixed in their way of doing things. A lot of Senior Citizens use computers and smartphones and other technology. But for a lot of them, when anything looks even a little bit different, they panic.
Precinct leaders (people who were in charge of tallying the votes) had problems installing the software and logging into the software. If a precinct leader can’t install the app and can’t log into the app, the precinct leader is not going to use the app.
Backup plan A was calling in the results, but that process also failed due to both technical and human error — which I will talk more about later.
Backup plan B was driving the results over to Democrat headquarters, but precinct leaders were turned away from headquarters and their tally results were not accepted. Human error.
Not a backup plan, but happened anyways, precinct leaders in a last-ditch effort to submit their results mailed them without any tracking data by regular United States Post. In other words, the chain of evidence of the validity of the votes has been broken. Which means, if the votes are close, how does anybody prove who actually won or what actually lost? Once the precinct leaders put those vote tallies into the regular post, those votes became garbage and non-trustworthy.
2 – Data mismatch, load issues
There are more than 1600 voting precincts (voting locations) with potentially 700,000 registered Democratic voters in Iowa. All of that data, plus the summary data needed to get to the central location with a clear chain of evidence, so that if anything ends up in court, the evidence (citizen’s votes) are not corrupted.
At the local level, the app worked as expected and the data was stored correctly — when the app was actually used. But when that data was sent to the central location, only part of the data was being reported. In technical terms, there were load issues and data was being dropped.
Since the source code is not available in the public domain, I can only make guesses on what went wrong.
With a lot of apps, if the process is taking too long, the app times out and the data gets dropped. The data sent to the central server is invalid.
If an app takes too long, the user thinks that something is wrong and tries to restart the app. This can cause only partial data to be sent and processed. The data sent to the central server is invalid.
The server cannot handle the load in order to queue users properly. This why users were not even able to log into the app to even being to add the data locally, let alone send the data to the central computer.
Non-useful feedback to the user. If you know something is going to take a very long time, you need to tell the user. “You are X person in line. The expected wait time is X minutes. Please do not touch your phone while the data is being processed.”
The processes were being handled sequentially instead of concurrently (at the same time).
There was not enough computer power. Was only one “regular” computer trying to handle the whole state’s data at the same time?
3 – Andrew Yang’s team posted the private delegate telephone number onto a public forum (gross human incompetence)
Andrew Yang is a Democratic candidate for President of the United States. Yang advertises himself as an expert in technology, and he even made the claim that President Trump was at fault for what happened in Iowa, because if he was President .. Being an expert in technology, it would never have happened.
The truth was that Andrew Yang’s team published the private telephone number for the delegates to submit voting tally results onto a public forum. He intended to publish the general information number, but published the wrong number. That caused backup plan A to fail. The plan that involved precinct leaders phoning in their results.
There were 12 people who were assigned to handle 1600 phone calls from precinct leaders. On top of that, general information calls were going to lines that were supposed to be dedicated to calling voter tally results. These calls included:
- People yelling callers
- and general prank callers
Mr. Yang, the technology expert, forgot that a majority of hacking is done with social hacking. What is social hacking, you are asking? Social hacking is when somebody calls up claiming “We are Microsoft Technical Support and you have a virus on your computer. Please give me your username and password and I will remote log into your computer and remove it for you.”
One would think that nobody would be stupid enough to give somebody that cold calls them their username and password … and one would think that nobody would be stupid enough to publish on a public forum the private phone number for precinct leaders to phone in results … but yet, Andrew Yang’s team did, the candidate that claimed to be the “technology expert”.
4 – Precinct leader’s phone numbers were not whitelisted
If you have used Android’s recent version of their operating system Android Version 9.0, you will notice that they have a feature called “starred contacts”. There is also the feature to only allow calls to go through that are from “starred contacts”.
At Iowa DNC headquarters on the lines that were supposed to be reserved for precinct leaders to phone in results, each of the 1600+ precincts leaders should have registered two phone numbers (main number and backup number). Main numbers get put to the front of the phone queue. Backup numbers get put in the backup queue. Anybody else (aka journalists, prank calls, people yelling) get put to an outgoing only message.
Google’s Android is in the public domain, and priority queues and special ringtones have been a standard feature available from phone companies for a long time. If there was ever a situation where one would want to use a whitelist only system, accepting phone calls from precinct leaders submitting voting tally results is it. Plus it will help to ensure that somebody who is not a precinct leader is not trying to submit bogus data.
4 – Breakdown in communication, nobody assigned to real time PR (public relations)
During every day of the Trump impeachment trial, Fox News had a running blog post of what was going on in real time, including timestamps. It was fantastic.
If the Iowa DNC had just one person who was dedicated to PR (public relations) that was responsible for updating that post they would not have had the journalists calling in wasting valuable phone resources that were supposed to be reserved for precinct leaders calling in.
If you are wondering if this technology currently exists in the open-source market, the answer is yes it does. It is called Microblogging and WordPress is one of the many blogging software apps that includes the feature to Microblog. Have one person in charge of microblogging what is going on and all those calls from journalists asking the same questions will go away, because the journalists can just subscribe to the microblog.
Combine that with a whitelist and an outgoing message directly people to the microblog, and a huge chunk of those calls tying up the phone lines would have been solved.
5 – Making sending voting data through regular mail a criminal offence
Actually, only congress has the ability to make bills and the President has to sign those bills to make laws. But it should be a criminal offense (fines and jail time) to send voter data through regular mail. Just like any other evidence, there has to be a clear chain of transfer of evidence (signatures, under lock and key, etc).
We are three years into the Trump administration and the Democrats are still “contesting” the 2016 election results. Any vote that is not kept under lock and key is essentially garbage and would not stand up being contested in a court of law, and that is exactly what happened to all of those vote tallies that were sent through regular mail with no tracking information. They should have been sent by police escort to the DNC headquarters.
Yes, hiring police officers to play courier for the paper trail does cost money, but it is a lot less money than any potential future riots because the voters don’t trust the voting results and are angry.
This website deals with games. People reading this website are interested in playing games and maybe even developing games. In the area of games, the developer most likely is not going to be dealing with people’s lives being on the line, or money being on the line, or votes being on the line.
But the line between games and these areas is fuzzy.
Online casino games, like the games on the Thunderbolt online casino website involve money. Sometimes these sites deal with social gambling, where people play with “monopoly money”, but in other sites, the players are actually dealing with real money.
The same is true in the medical field. Games train future doctors, pilots, and even directing targeted medical treatments.
But even if your future goals in app development do not touch on these areas, you can still learn from Iowa’s mistakes.
You have to understand your end-user. If your end-user is a little old lady from Pasadena, your end-user is going to need a lot more handholding than her 14-year-old grandchild that tries out every new computer game on the market.
When designing an app that touches on different areas, you have to take into account all of the actors. In Iowa’s case, it was not just the client computer and the server computer. It was also …
- the general citizen who does not know where their voting location is
- the journalist who wants to know what is going on
- the kid playing prank calls (think of Bart Simpson from the Simpsons)
- person trying to malicious (robocalls to lock up phone lines)
- any citizen that just wants to yell
- nice citizen that wants to thank the sweet person at her voting location that went that extra mile helping them
- and most of all, the citizen who is casting their vote and does not want at the end of the process to have their vote viewed as garbage, because somebody did not think things through
Microsoft can get away with their own personal version of the 80/20 rule, but for the rest of us, the initial data plan has to include the traditional 80/20 rule of software development that a developer is going to spend 80% of his time working on 20% of the code — and plan accordingly.
Update – 72+ hours, 99% of the Iowa votes are in
We are not at 72 hours past the Iowa Caucuses and 99% of the votes are in.
The state party’s numbers showed that Pete Buttigieg would be awarded 564 SDEs, or state delegate equivalents, while Bernie Sanders would receive 562 SDEs. Sanders held a sizeable popular vote lead, though, and finished ahead of Buttigieg by a 43,671 to 37,557 vote margin. He fell behind in delegates due to Iowa’s unusual voting system that gave different delegate weights to different precincts.
After the “second alignment” — meaning the popular vote after the elimination of candidates who received less than 15 percent of the vote in the first round of caucusing — Sanders was still ahead of Buttigieg, 45,826 votes to 43,195
So Pete Buttigieg won the greatest number of delegates and Bernie Sanders won the popular vote. That means that there was no real winner, because some people believe that the delegate vote should be counted while others believe that the popular vote should be counted. On top of that, there is another problem.
Scott Santens, am Iowa precinct leader wrote the following twitter post.
With 100% of precincts reporting, I can faithfully say the Iowa results are bullshit. As a precinct captain in DM 06, I know for a fact the numbers reported for that district for every candidate who got more than 0 votes are wrong. 185 people caucused there. They say only 92 did.
If you are having trouble doing basic math, that means that 50% of the votes in Precinct 06 in Iowa are unaccounted for. What about the rest of the precincts?
There will always be some voters who will cast a vote for “nobody” (empty ballot) or “Mickey Mouse” or their sister-in-law, but are we are now saying that 50% “empty votes” is normal and expected. I don’t buy it. it reminds me too much of the movie “Brewster’s Millions”.
The movie were Brewster’s crazy uncle told him if could spend 1 million dollars within 30 days he would get 30 million dollars. So Brewster, as a joke, ran a campign for Mayor of NYC under the name “None of the above”. And of course, “None of the above” won with 50% of the votes. Brewster’s “none of the above” campaign makes a great movie, but our country has serious problems if “none of the above” actually wins the Democrat presidential nomination.
As I said before, I hope, for the sake of the country, that when the Democrat primary voting is done that the results between the first and second place candidate is not within 41 delegates, because at this point, I don’t think that anybody will truly trust the election results from Iowa.
Update – Saturday 2019 Feb 08
Candidates have until Monday noon to ask Iowa to recanvass the election results (validate what was submitted by precinct leaders against what was included in the final count).
As it stands right now, the national DNC has said that they want to do a recanvass of the election results, but the Iowa DNC has to give the Okay. The Iowa DNC has said that they will only to a full and complete recanvass, if and only if, one of the Presidential candidates specifically asks for a recanvass.
So far, none of the Demcoratic Presidential candidates has formally asked for recanvass. Not Pete Buttigieg, not Bernie Sanders, no Elizabeth Warren, not Joe Biden, not Amy Klobuchar, not Andrew Yang, not Tom Steyer, not Deval Patrick, not John Delaney, not Michael Bennet, not Michael Bloomberg, and not Tulsi Gabbard.
The Precinct Leader from DM 06 said that 185 people caucused, but only 92 votes were counted. Let’s do the math … 92 * 2 = 184. So how did they get 92, from 185? I do not think that it was purposeful “trying to steal the election”. I think it was another programming bug. Either one that always existed or else one that was introduced when trying to fix the original programming.
Scenario 3 is what I personally believe happened. That means that any precinct whose data was submitted via the app has lost 50% of their data. Not all precincts ended up submitting their data via the app, so not all of the precincts will have ended up with invalid data.
I believe the Precinct leader when he says that half of his votes are missing. When he submitted his voting results, that is equivalent to saying a statement under oath in a court of law. Lying on that document is a criminal offense. Why would he submit false data and then volunteer that he submitted false data? It makes no sense.
I also don’t think that it was a malicious attempt by the DNC at either the National or Iowa level to give an advantage to one candidate over another candidate. Why would the national DNC volunteer to do a recanvass? Why would the Iowa DNC volunteer to do a recanvass as soon as any Democratic presidential candidate requests it by Monday, Feb 08, 2020 at Noon?
At first, I thought this whole situation was hilarious. The Democrats basically shooting themselves in the foot by rushing to use a bug-ridden application to handle vote total submitting the day before the Senate was scheduled to vote to acquit Trump in their partisan impeachment trial.
But when the situation comes down all of the major players in the DNC knowing full well that their software is causing approximately 50% of the citizen’s votes to go to never-never land, the situation is no longer funny. 12 people, and only 12 people (Democrat Presidential Candidates), have the power to correct this wrong, and all 12 of them have stated publicly that no intention of correcting this wrong. They would rather put their political needs ahead of ensuring a correct voter count.
And yet all 12 of those people still believe that the American voting citizens should entrust them with nuclear launch codes. If the politicians don’t trust the voters why would the voters trust these 12 candidates?
There is a part of me that wants to say that the candidates are playing a game of roulette on Thunderbolt online casino website, but a more realistic comparison is to say that all of the candidates are playing Russian Roulette, but instead of the candidates getting the “grand prize” it is the voters.
Russian roulette is a deadly game played with a revolver. In the game, there is only one bullet in one of the six cylinder slots of the revolver. The person then closes the cylinder, spins it, places it against their head or sometimes inside their mouth and pulls the trigger.
50% of Iowa Votes not being counted – 12 people have the power to fix the problem. All 12 people (Democrat Presidential Candidates) refuse to fix the problem. Remember that when you cast your vote on election day.
Update – Monday February 10, 2020 – 12:00 noon
The DNC deadline for candidates to request a recanvass of the votes has been reached. “Iowa’s Democrats are still looking at 95 precincts where they saw some irregularities”. In other words, Iowa voting results are this point anything but settled. Let’s all hope that the difference between the first and second place person is large enough that the country does not end up in riots.