Open Source
Open Source
Why Open Source?

More minds, more eyes, and a much larger community to handle the workload.

To any professional programmer half worth their salt, an election system presents no challenge at all. In fact, such a system would be considered a very small compared to complex systems such as payroll or sales order entry.

Programmers have been sharing code with each other over the internet for decades. Long before there was a web, we used NNTP newgroups and ftp sites to post things we thought were useful to each other in our workaday lives. When the web hit and web aware development toolsets came online, sharing code moved from moderated news groups onto professionally managed development project management sites like sourceforge.net.

The number of programmers who contribute to a given project is determined by the extent to which it impacts their lives. A project like a standardized election system would attract programmers from all over the world. Where Diebold might have 20 to 50 engineers, the interrested programmer population could be in the thousands. That's a hundred or more times the eyes and minds that will peruse the code.

Also, because we draw an international community, getting i18N standards built in up front will be much easier. You can be certain that a localized version will exist shortly for every lingual community on the globe with an internet connection.

Security

If anyone can change the code, how can anyone know it hasn't been compromised?

The answer to security in any product is in the procedures. We don't use code that has been altered, but not validated. Validation is handled by a Quality Assurance test set. Verification of a program set is done using double key encryption.

Professional programmers use these practices to guarantee to their customers that any changes to the programs are limited to those intended and communicated. Shipping something that fails to work as expected causes customers to seek out other providers.

Everyone now understands 2.0. This is the first key to professionally managed QA. 2.0 means the first issue of a newly redone product. 2.0 is the id of all the files that comprise the product in a code file version management system. Every time anyone changes any code file, that file is checked into the version management system and the version number is changes. The differences between this new version and any of its predecessors can be viewed at any time in the future. This is true for any and all files kept in the version management system.

Next, it is important to note that QA tests are code files just like the program code files. They are also kept in a version management system. Therefore, I can get the QA files appropriate to any version of the code files at any time. I can also know if they have been changes.

Given that I can now know which version of code and test files, I can retest any version of the code at any time by just getting the appropriate versions of the files.

With Open Source the version management system is available for read access to anyone on the internet.