[QUOTE=Blaster Master]
Ok, this is just straight up BS. First of all, we’re talking multi-million dollar contracts with the government, and its somehow NOT a big project? Even on small projects, its TERRIBLE business practice to have only one programmer with a non-technical manager. You’re talking about a single point of failure. Do you really think they’d have one programmer do all the coding/testing, have it reviewed by a non-technical manager, and stick in a final product with no QC?
As a PhD student in Computer Science with a job working on a Government contract with many friends also working as programmers for various companies, I can assure that that is not how it is done. Are you familiar with how programmers work in the real world? Are you familiar with object oriented programming works?
[/QUOTE]
Gee, I’ve only been a professional programmer since 1977. How long did you say you’d been one? In fact, what year were you born?
Yes, a contract can be huge. But that doesn’t mean the *programming * job is big. As Giraffe stated, a program that tallies votes and produces totals is pretty darned trivial. Like one day for one programmer. The chances of a company hiring more than one programmer to do this job are very small. Why would they spend the money? After all, they have all those security measures in place!
It would be pretty easy to get around a testing issue. First of all, testers don’t go into the code. Managers don’t usually either - my sample dialog was a “just in case.” Testers look at functionality. So you write the version that does this thing the way it’s supposed to be. They test it. It works, but you’ve made some trivial cosmetic error. They hand it back to you. You fix it, only your fix does more than just clear up the cosmetic error. But they only look at it again to see if the cosmetic error is fixed; after all, they’ve already tested the rest.
Of course that’s the riskiest way to do it. People MIGHT decide to test it again fully (we call this regression testing). So you leave the good code in the right place until just before it’s downloaded to all the machines. You slip in your version at the last second. After the download is done, you switch back again. As I said, programmers are usually pretty lax about security procedures, as are IT personnel, at least wrt the programmers. After all, the programmers aren’t going to inadvertently blow away the corporate network, and that’s what they’re mostly worried about. The chances are good that you don’t have to do anything fancy to get access to the loading image. But if you do, well, $100K or $1M is a lot of money. I’m willing to bet on your creativity.
Lord Ashtar, I’d be shocked if they weren’t running it on Access or FoxPro or one of those other, small-scale, off-the-shelf db programs. We’re talking about a comparatively tiny amount of data here; there’s simply no need to spend money on database muscle, and you don’t want to THINK about what Oracle charges per user license! For that matter, it doesn’t even NEED to be on a database! This is about as simple functionality as it gets in the programming world.
I agree with you that the security OUGHT to be as tight as is humanly possible. But I’m guessing it’s not. The people who wrote the original specs were probably not computer people, and weren’t thinking in terms of problems; they were laying out the basic functionality. That’s how it usually works. Then we spend about 10% of our time doing the actual functionality, and 90% of our time doing error handling and such. (There’s a quote: it’s impossible to make something foolproof because it’s amazing how ingenious fools can be!). Again, here we’re talking about very limited user interface; that makes the job a LOT easier, because there just aren’t that many things the user can do that you weren’t expecting.
But no company is going to go looking to add additional work that isn’t specified. Remember, these specifiers are the same people to whom it apparently never occurred that a verifiable paper trail might be a good idea. If the customer doesn’t request tight security, he’s not going to get it.
We’re USED to thinking in terms of tight security when it comes to DoD work; my first four years of programming were working for TRW Aerospace division, developing a project for the US Navy. After all, weaponry can HURT somebody (although I worked on a telescope in a dome; the only way we could have hurt someone was to slew the telescope around and bop 'em on the head)!
But voting machines? Most people are honest; it probably wouldn’t occur to them that someone might not WANT to have a true tally. You can’t take them out of the polling place and hold up a convenience store or threaten a mass killing with one; it doesn’t work for holding hostages or threatening populations. It’s a big box to do a tiny function - count stuff as it’s entered, and entered slowly at that. It’s a freaking adding machine, for Pete’s sake! Who thinks of security for an adding machine? Accuracy, yes. But security?
Why have so many holes in security surfaced? My guess is because no one ever made an issue of tight security on these machines.