Electronic Voting Machines

It appears that some states are in for a lot of problems in the upcoming elections due to their mandated use of electronic voting machines. It is hard to believe that given the doubts and uncertainty about the reliability of these machines, states would mandate the use of them.

Being a former software engineer, I am skeptical about the reliability and accuracy of these devices. Why? Software is complicated. It is largely invisible. It is impossible to completely test every path of the logic. Also, most organizations process for software development is seriously lacking, which is in my opinion why so much of the software you use every day sucks.

A typical defect density for seriously good software is about 2 defects per 1000 lines of code. Average consumer software has around 12 defects per 1000 lines of code. I would hope that voting machine software is more toward the seriously good side of the defect curve, so lets assume 2 defects per 1000 lines of code. I would also assume that the critical logic of vote tallying, communication to other systems etc. is around 75,000 lines of code. This would lead one to believe that there is maybe somewhere around 150 defects in the critical logic of a voting machine. There could be more, there could be less, we will probably never know the truth.

I believe that there is a simple solution to the voting machine issue. All software used in electronic voting machines must be completely open source and open to inspection by the general public. Why voters do not demand this is beyond me. Obviously, the companies that develop these devices would not agree to this. But, as long as their competitors are held to the same standard, what do they have to complain about? If they don’t like it, tough shit, stick to making ATM machines (Diebold). This is too important an issue to be open to negotiation over commercial interests.

Leave a Reply